Unified Process
The Unified Software Development Process
or Unified Process is a popular iterative and incremental software development
process framework. The best-known and extensively documented refinement of the
Unified Process is the Rational Unified Process (RUP)
Profile of a typical project showing the
relative sizes of the four phases of the Unified Process.
Overview
The Unified Process is not simply a
process, but rather an extensible framework which should be customized for
specific organizations or projects. The Rational Unified Process is, similarly,
a customizable framework. As a result it is often impossible to say whether a
refinement of the process was derived from UP or from RUP, and so the names
tend to be used interchangeably.
The
name Unified Process as opposed to Rational Unified Process is generally used
to describe the generic process, including those elements which are common to
most refinements. The Unified Process name is also used to avoid potential
issues of trademark infringement since Rational Unified Process and RUP are
trademarks of IBM. The first book to describe the process was titled The
Unified Software Development Process and published in 1999 by Ivar Jacobson,
Grady Booch and James Rumbaugh. Since then various authors unaffiliated with
Rational Software have published books and articles using the name Unified
Process, whereas authors affiliated with Rational Software have favored the
name Rational Unified Process.
1. Unified Process Characteristics
Iterative
and Incremental
The
Unified Process is an iterative and incremental development process. The
Elaboration, Construction and Transition phases are divided into a series of
timeboxed iterations. (The Inception phase may also be divided into iterations
for a large project.)
Each iteration results in an increment,
which is a release of the system that contains added or improved functionality
compared with the previous release.
Although
most iterations will include work in most of the process disciplines (e.g.
Requirements, Design, Implementation, Testing) the relative effort and emphasis
will change over the course of the project.
Use
Case Driven
In
the Unified Process, use cases are used to capture the functional requirements
and to define the contents of the iterations. Each iteration takes a set of use
cases or scenarios from requirements all the way through implementation, test
and deployment.
Architecture
Centric
The
Unified Process insists that architecture sit at the heart of the project
team's efforts to shape the system. Since no single model is sufficient to
cover all aspects of a system, the Unified Process supports multiple
architectural models and views.
One
of the most important deliverables of the process is the executable
architecture baseline which is created during the Elaboration phase. This
partial implementation of the system serves and validate the architecture and
act as a foundation for remaining development.
Risk
Focused
The
Unified Process requires the project team to focus on addressing the most
critical risks early in the project life cycle. The deliverables of each
iteration, especially in the Elaboration phase, must be selected in order to
ensure that the greatest risks are addressed first.
Project
Lifecycle
The
Unified Process divides the project into four phases:
Inception
Elaboration
Construction
Transition
Inception
Phase
Inception
is the smallest phase in the project, and ideally it should be quite short. If
the Inception Phase is long then it may be an indication of excessive up-front
specification, which is contrary to the spirit of the Unified Process.
The
following are typical goals for the Inception phase.
Establish a justification or business case
for the project
Establish
the project scope and boundary conditions
Outline
the use cases and key requirements that will drive the design tradeoffs
Outline
one or more candidate architectures
Identify
risks
Prepare
a preliminary project schedule and cost estimate
The
Lifecycle Objective Milestone marks the end of the Inception phase.
Elaboration
Phase
During
the Elaboration phase the project team is expected to capture a healthy
majority of the system requirements. However, the primary goals of Elaboration
are to address known risk factors and to establish and validate the system
architecture. Common processes undertaken in this phase include the creation of
use case diagrams, conceptual diagrams (class diagrams with only basic
notation) and package diagrams (architectural diagrams).
The
architecture is validated primarily through the implementation of an Executable
Architecture Baseline. This is a partial implementation of the system which
includes the core, most architecturally significant, components. It is built in
a series of small, timeboxed iterations. By the end of the Elaboration phase
the system architecture must have stabilized and the executable architecture
baseline must demonstrate that the architecture will support the key system
functionality and exhibit the right behavior in terms of performance,
scalability and cost.
The
final Elaboration phase deliverable is a plan (including cost and schedule
estimates) for the Construction phase. At this point the plan should be
accurate and credible, since it should be based on the Elaboration phase
experience and since significant risk factors should have been addressed during
the Elaboration phase.
The
Lifecycle Architecture Milestone marks the end of the Elaboration phase.
Construction
Phase
Construction
is the largest phase in the project. In this phase the remainder of the system
is built on the foundation laid in Elaboration. System features are implemented
in a series of short, timeboxed iterations. Each iteration results in an
executable release of the software. It is customary to write full text use
cases during the construction phase and each one becomes the start of a new
iteration. Common UML (Unified Modelling Language) diagrams used during this
phase include Activity, Sequence, Collaboration
State (Transition) and Interaction
Overview diagrams. The Initial Operational Capability Milestone marks the end
of the Construction phase.
Transition
Phase
The final project phase is Transition.
In this phase the system is deployed to the target users. Feedback received
from an initial release (or initial releases) may result in further refinements
to be incorporated over the course of several Transition phase iterations. The
Transition phase also includes system conversions and user training. The
Product Release Milestone marks the end of the Transition phase.
Related Topics
Privacy Policy, Terms and Conditions, DMCA Policy and Compliant
Copyright © 2018-2023 BrainKart.com; All Rights Reserved. Developed by Therithal info, Chennai.