Software Process Model: Unified Process Models

I’ve already shared to you about the Linear Models and the Spiral Model, so now, let me share to you my notes on another iterative model of software development — the Unified Process Model or Unified Process.

A Unified Process is an iterative model of software development where its basic structure is to work in a series of phases which get repeated until the final phase is complete. How are phases deemed complete? In this software development process, the development happens in small iterations until a phase is deemed complete or when a milestone is reached. According to Miriam-Webster, an iteration is a repetition of a process. So here, each phase is being repeated within until a work product is provided for the next phase to work on. Note, however, that the unified process also allows the tasks done in one phase to overlap with another task. This is referred to as parallel development.

The Unified Process. Screenshot from the video: Unified Process under the Coursera Course
Software Processes and Agile Practices

As we can see on the photo, the unified process has 4 phases namely 1) inception phase, 2) elaboration phase, 3) construction phase and 4) transition phase. Let’s look at each phase:

  1. Inception Phase – during this phase, the team creates the basic use cases. Use cases outline the main user interaction with the product, and here, the project scope and potential risks are identified. This is the only phase where development does not happen in iteration. In this phase, the main goal is to see if there’s a strong enough business case to continue development and financial reason to build the product. At the end of this phase, the life cycle objective milestone is achieved.
  2. Elaboration Phase – in this phase, the small iterations to create the model or prototype of the product will be implemented. The requirements for the system architecture are laid out like the use case diagrams and high level class diagrams. Since this phase undergoes iteration, there will be redesign of the system requirements and architecture before the development becomes complete. This is also where the process of several activities are done in parallel.
  3. Construction Phase – this phase is just a continuation of the elaboration phase, but the emphasis is now more on testing and programming of the codes of the system. Whatever was completed in elaboration phase, this phase builds on it and thorough use cases are developed to drive product development. These use cases are more specified, developed and tested iteratively until the product is ready for release.
  4. Transitioning Phase -Once the development is complete and product is ready to be released, this is the phase when the team will start preparing documentation and implementation requirements for your client and the users.

So, in other models, all the software product requirements are narrowed down and polished at the beginning of the process. However, in the unified process, the development team can both design the product architecture while developing the tests at the same time. Its focus is on developing the design models along with the software product itself.

References:

University of Alberta (2020). Software Processes and Agile Practices. [Coursera Course] under the Software Product Management Specialization. Taken November 2020.

Poulette, B. (2020). Unified Process. [Video]. Embedded under the course study videos under the Week 2 of the Software Processes and Agile Practices Coursera Course. Taken November 21, 2020.