Author name: Martin Dwyer

Martin regularly contributes articles related to information technology, software, management, training and development. His background includes, among other things, over ten years in senior leadership of Fortune 100 companies. Martin has his Masters degree in Information Technology with emphasis in Software Engineering.

Scratch, Inheritance or Composition

This post offersadvantages and disadvantages of writing code from scratch versus using objectoriented techniques.    When approaching a softwareproject, the developer must determine the most appropriate method ofdevelopment.  This involves many choices,including what objects are relevant, the classes for those objects, and whetherto code those classes from scratch, or to utilize object-oriented techniqueslike inheritance or …

Scratch, Inheritance or Composition Read More »

Immutable Objects

This week’s post offers a review of theconcept of immutable classes, and suggestions for best practices inimplementation.  An immutable class is “aclass whose instances cannot be modified” (Bloch, 2018, p. 80) . There are many well-known immutable classes in the Java platformlibraries such as String and primitive classes like Integer and Double (Temre, 2015). To illustrateconsider …

Immutable Objects Read More »

Exceptions: Catch or Throw

This post addresses exception handling in a Java development environment, the catch-or-throw rule, and general guidelines for determination of which exceptions should be thrown as they occur.  Whenever a Java method could result in a processing exception, the method can either (a) catch the exception and handle it within, or (b) throw the exception back …

Exceptions: Catch or Throw Read More »

Ethics in Software Testing

This post provides an overview of software failure and ethical considerations.  Software failure is a common event with far reaching consequences.  After a comprehensive examination of English language news sources for the year 2017, software testing company Tricentis found 606 software failures reported by 314 companies, impacting 3.7 billion people, costing $1.7 trillion dollars (Tricentis, …

Ethics in Software Testing Read More »

Abstract Encapsulation

This article was originally written as part of a discussion with peers at Walden University.  It introduces the concepts of abstraction and encapsulation, subsequently offering illustrations as to how the concepts are used in software development. Abstraction is “the process of taking away or removing characteristics from something in order to reduce it to set …

Abstract Encapsulation Read More »

Abstract Classes and Interfaces

This post briefly describes the different roles played by abstract classesand interfaces in the Java programming environment.  An illustration is given for the use of aninterface, along with a justification as to why the interface approach is moreappropriate than using an abstract class. Anabstract class is a programming class with many of the same properties …

Abstract Classes and Interfaces Read More »

Process Engineering

Reference is made herein to an employee tracking application case study presented in a prior article. In prior reports, the employee tracking application was estimated to take 111 days and $428,000 in human resources. A sequential life cycle development model was constructed. However, risks associated with the sequential life cycle development included a lack of …

Process Engineering Read More »

Iterative Software Development

This article addresses risks in a typical waterfall, or sequential, software development life cycle model, which arise primarily from late stage testing and limited stakeholder feedback during development. To address these risks, this article introduces, recommends, and justifies the use of an iterative approach to development. Differences in work flow and documentation under the iterative …

Iterative Software Development Read More »

Sequential Software Development

This article summarizes the documents and artifacts as part of the project development of a waterfall software development life cycle. The article addresses each phase of the life cycle, the documents, artifacts, metrics and reports required at each point in the development from initiation to release and maintenance. Responsibilities and evaluation criteria are discussed for …

Sequential Software Development Read More »