Unified Software Development Process
The Unified Software Development Process (USDP) was defined in a book by Jacobson in 1999. It was created to complement the then new Unified Modelling Language (UML). Jacobson's book defines the essential requirements for a process that is based upon sound engineering:
- The USDP recognises the need to develop models of systems, which explore a number of aspects of the system's behaviour, structure and implementation.
- The models are used to experiment with the system's behaviour to explore requirements and solutions at an early stage of development. Development is iterative and incremental. This means that the system's functionality is progressively built and that any necessary experiments may be undertaken in a structured manner. The experimental system components may be tested and reviewed as they are developed. The risks of the development failing may thus be assessed at the earliest opportunity.
- Decisions are taken about the architecture of the system at an early stage, to provide the framework around which the system shall be developed. This means that development activity has a clear model for its subsequent construction.
- The process employs "Use Case" specification. These greatly help in creating concise specifications for software, which may be understood without complex analysis by the system's target users. Crucially, Use Cases provide clear means for identifying how their requirements structure may be modelled using UML diagrams. Using this technique greatly facilitates the task of ensuring complete and correct coverage of the system's specifications. This sort of assurance is critical for high integrity applications and where standards compliance is required.
As was noted, the USDP defines the foundations of a Software Development Process. It has been implemented in various ways, including the Rational Unified Process (RUP). The RUP is effectively targeted at the development of commercial and business systems. It is available as a packaged product with its own supporting documentation and guidance tools.
We have used the USDP since its publication for system development both as a process for the successful development of commercial software and in training in systems development.
TraceIT® Quality Process
We have developed the TraceIT® quality process as a specific instance of the USDP for application in high integrity applications. Its first implementation has been created with demonstrable compliance with the ISO EN-62304 standard, which defines the requirements for a process for software development for Medical Devices. The TraceIT® Quality Process is linked to the standard to ensure that all the standard's requirements are met. It supplements the workflows defined in the USDP with a number of additional items that are required to meet quality and process demands. As it was created from the USDP it has built-in resilience and a business risk reduction strategy. Together, these factors enable the development of reliable systems with minimised regulatory burden and risk.
Our paper on Development Process, which considers this topic in more detail is available on request.