The rational unified process
CONTROL FOR AN iterative and incremental life cycle is supported by employing the Rational Unified Processan extensive set of guidelines that address the technical and organizational aspects of software development focusing on requirements analysis and design.
The Rational Unified Process is structured along two dimensions:
Timedivision of the life cycle into phases and iterations
Process componentsproduction of a specific set of artifacts with well-defined activities
Both dimensions must be taken into account for a project to succeed.
Structuring a project along the time dimension involves the adoption of the following time-based phases:
Inceptionspecifying the project vision
Elaborationplanning the necessary activities and required resources; specifying the features and designing the architecture
Constructionbuilding the product as a series of incremental iterations
Transitionsupplying the product to the user community (manufacturing, delivering, and training)
Structuring the project along the process component dimension includes the following activities:
Business Modelingthe identification of desired system capabilities and user needs
Requirementsa narration of the system vision along with a set of functional and nonfunctional requirements
Analysis and Designa description of how the system will be realized in the implementation phase
Implementationthe production of the code that will result in an executable system
Testthe verification of the entire system
Deploymentthe delivery of the system and user training to the customer
Figure 1-4 shows how the process components are applied to each time-based phase.
Figure 1-4 The Development Process
Each activity of the process component dimension typically is applied to each phase of the time-based dimension. However, the degree to which a particular process component is applied is dependent upon the phase of development. For example, you may decide to do a proof of concept prototype during the Inception Phase, and thus, you will be doing more than just capturing requirements (you will be doing the analysis, design, implementation, and test needed to complete the prototype). The majority of the analysis process component occurs during the Elaboration Phase. However, it is also advisable to complete the first few iterations of the system during this phase. These first few iterations typically are used to validate the analysis decisions made for the architecture of the system.
Hence, you are doing more than just analyzing the problem. During the Construction Phase of development, the system is completed as a series of iterations. As with any type of development structure, things always crop up as the system is built; thus, you are still doing some analysis.
The diagram is meant to be a guideline for the life cycle of your project. The main point is if you are still trying to figure out what you are supposed to be building as you are writing the code, you are probably in trouble. You should also note that testing is applied throughout the iteration processyou do not wait until all the code is done to see if it all works together!
This book uses a simplified version of the Rational Unified Process, which concentrates on the use of the UML to capture and document the decisions made during the Inception and Elaboration phases of development. The last few chapters lightly cover construction of the system. Although testing is a very integral part of system development, it is beyond the scope of this book.