Software Development Process

Software is developed for any high integrity application in accordance with a documented and well-structured process. Indeed, this is a requirement for compliance with regulation in may areas. A process is followed to ensure that all necessary elements of development are undertaken in an orderly and demonstrably complete fashion. Without the clarity offered by a well-structured process the risk of omission or incorrect addition is raised.

A software development process recognises that a number of distinct activities are employed in the creation of software. These include requirements engineering, analysis of specifications, design, implementation, verification and testing and validation. The activities may be undertaken by one or more specialists and typically flow from one to another. However, it must be recognised that software is often complex and that the problems being addressed do not lend themselves to complete specification without uncertainty at the outset of a project. Experimentation and evaluation of potential solutions may be essential components of development.

Our development work is based upon the USDP. Our customised implementation is defined through a formal specification that can be traced to a parent standard to ensure compliance with that standard. We have developed the TraceIT® Quality Process for Medical Devices to achieve complete and provable compliance with the requirements of ISO EN-62304.

Our paper on Development Process, which considers this topic in more detail is available on request.

Background

Informal methods were employed until the 1970s. The so-called software crisis recognised that engineering method needed to be brought to bear on quality issues with software. Royce described the Waterfall approach in a seminar. However, he had used it to highlight the inherent problems with poorly structured processes, and in particular the need to address development risk to avoid problems only being identified at a late stage. Inadvertently the Waterfall process was widely adopted.

Structured iterative methods were proposed by Boehm in the early 1980s. His development cycle acknowledged both the need for experimentation and the essential requirement for process structure, through iteration. Each iteration of a system's development included review, during which the targets for the next iteration would be established. Crucially the review phase permits project managers to establish whether the approach being followed is viable. The risk of development problems is thus identified throughout the project to enable properly informed decisions to be made.

The Unified Software Development Process USDP was created in the mid 1990s to complete the (then new) Unified Modelling Language (UML). It was created as a foundation framework from which industrial-quality implementations could be developed using sound principles.