In this section we will discuss the properties that define
the different phases of UP. We will leave the workflows to subsequent articles.
It is worth mentioning that each phase has a set of
deliverables and a milestone indicating its finalization with respect to a
specific iteration.
Inception
The purpose of
the inception phase is to "kick off" the project. As you can see from
figure 1, it mostly involves gathering requirements and initiating the project.
Goals
·
Feasibility study: Determines the overall technical feasibility
of the project. May involve some basic prototyping to validate the
requirements.
·
Capturing essential requirements: Help in defining the overall
scope of the system.
·
Identifying risks
Milestone
UP focuses on achieving multiple goals as an indicator of
achieving the milestone in any phase, rather than creation of key artifacts, as
many SEP's do. The milestone in the inception phase is the Life
Cycle Objectives. Certain conditions must be attained in order to
achieve this milestone. These are listed in the table given below.
Table 1: Life Cycle Objectives milestone
Condition
|
Deliverable
|
Stakeholders agree on project objectives and scope
|
Vision document, initial use case model
|
Key requirements captured
|
Use case model, SRS
|
Cost and schedule estimates agreed upon
|
Initial project plan
|
Risk assessment conducted
|
Risk assessment document
|
Feasibility confirmed
|
One or more throw away prototypes
|
Architecture has been outlined
|
Initial Architecture document
|
Note that the key point is that you only create a document
if you deem it useful to your project. Never write any document for the sake of
documentation itself. If it has no use, do not create it.
Elaboration
The primary purpose of the Elaboration phase is to create an
architectural base. This is a real system built on the actual specification and
not a prototype which is a throwaway system. This is the first executable
version of the system. The base system produced here is built upon in later
phases, until the project terminates. So, this is the most crucial phase of the
UP.
Goals
·
Create an architectural baseline.
·
Refine the risk assessment.
·
80% of the use cases of must be captured. Details of requirements
gathering will be discussed in upcoming articles.
·
Plan for the construction phase (development) is put in place.
·
Project plan produced.
The following
activities are done in the Elaboration phase in each of the five core
workflows:
·
Requirements: Refines scope and overall
use cases of the system.
·
Analysis: Establishes detailed system
requirements.
·
Design: Creates stable baseline
architecture.
·
Implementation: Code the architecture
outlines in the design phase.
·
Test: Tests the system built in the
implementation phase.
Milestone
The milestone for the Elaboration phase is the Life Cycle Architecture. As before, the conditions that have
to be met are outlined in Table 2.
Condition
|
Deliverable
|
Robust Architectural baseline has been developed
|
Executable architecture
Software Architecture Document
|
Risks identified fully
|
UML static, use case and dynamic diagrams
|
Vision of the product has been stabilized
|
Vision document
|
Business case of the project stabilized
|
Vision document
|
Project Plan agreed upon, stake holders are on board with
the project plan
|
Project Plan
|
Agreement with stake holders to continue the project
|
Sign-off document
|
Construction
Goals
The primary purpose of this phase is to completely finalize
the requirements, analysis and design of the system. This involves transforming
the architectural design, placed and worked on in the pervious phases, to the
final workable system. The utmost important issue of this phase is to maintain the integrity and uniformity of the architectural design.
It is a very crucial issue to resist the deadline pressure, and to maintain
this integrity. If this concept is not followed, a collapse of the
architectural vision will take place, leading to a system with low quality and
high maintenance costs.
Milestone
The milestone of the Construction phase is Initial
Operational Capability. In essence this milestone is very simple: the
software is operational and ready for beta testing at the user site. The
conditions to achieve this milestone are outlined in table 3.
Table 3: Initial Operational Capability milestone
Condition
|
·
Deliverable
|
The software is of enough quality to be deployed at the
user site and beta tested
|
The software product
Testing platform
The UML model
|
Stake holders ready for the beta deployment at their site
|
User manuals
Description of the release
|
Cost analysis
|
Project plan
|
Transition
This phase is the last phase in an UP lifecycle. It starts
when the beta testing of the software ends at the end of the previous phase,
and the software is finally deployed. This involves taking care of any bugs
that came out of the beta testing, and rolling out the software to all the user
sites.
Goals
·
Fixing defects.
·
Create user manuals, guides and any end user documentation.
·
Prepare the user sites for the rollout.
·
Provide support and consultancy (as per the agreement signed).
·
Conduct a post project analysis.
As you can see from figure 1, the emphasis in this phase is
on the implementation and test workflows. Sufficient time is considered in the
design work flow to correct any last minute design flaws. Having stated that,
these corrections should be kept down to a minimum at this stage.
·
The following activities are done in the Elaboration phase in
each of the five core workflows:
·
Requirements: not applicable.
·
Analysis: not applicable.
·
Design: minor design changes to include
bug fixes that were done during beta testing.
·
Implementation: minor user
customizations and bug fixes.
·
Test: beta testing and user acceptance
testing at the user site.
Milestone
The milestone of this phase is the Product
Release. As the name says, this is basically the Go-Live of the final
production system at the user site. After this phase the support contract that
you have with your customer kicks in. The conditions to achieve this milestone
are stated in table 4.
Table 4: Product Release milestone conditions
Condition
|
Deliverable
|
Project closure document
|
Beta
testing finished, necessary changes to the system have been made, and
agreement is reached among the stake holders that the system has been
successfully deployed.
|
Updated user manuals
|
Product support strategies, pipelines and contracts are
agreed upon and signed by both parties. Final updated user manuals are
delivered.
|