The Unified Process (UP),
or Unified Software Development Process, is an iterative and incremental
software development framework from which a customized process can be defined.
The key characteristics of the Unified Process are:
- It is an iterative and incremental
development framework
- It is architecture-centric
with major work being done to define and validate an architectural design
for most coding is done
- It is risk-focused and
emphasizes that highest-risk factors be addressed in the earliest
deliverables possible
- It is use-case and UML driven
with nearly all requirements being documented in one of those forms
The Unified Process is a design framework which guides
the tasks,people and products of the design process. It is a framework because
it provides the inputs and outputs of each activity, but does not restrict how
each activity must be performed.
It is comprised of a number of different hierarchical elements (See above
Fig.).
- The Unified Process actually comprises low-level activities (such as finding classes).
- Activities are combined together into disciplines (formerly known as workflows) which describe how one activity feeds into another.
- These disciplines are organized into iterations. Eachiteration identifies some aspect of the system to be considered.
- Iterations themselves are organized into phases. Phases focus on different aspects of the design process, for example requirements, analysis, design and implementation.
- In turn phases can be grouped into cycles. Cycles focus on the generation of successive releases of a system (for example, version 1.0, version 1.1 etc.).
Characteristics of UP
There are four key characteristics behind the Unified
Process. They are:
- Iterative and incremental
- Use case-driven
- Architecture-centric
- Acknowledge risks
An iterative approach advocates an increasing
understanding of the problem through successive refinements and an incremental
growth of an effective solution over multiple cycles. Built into the iterative
approach is the flexibility to accommodate new requirements or tactical changes
in business objectives. It also allows the project to identify and resolve
risks sooner rather than later.
Use case-driven
The Unified Process is also use case-driven. The use cases help to identify who uses the
system and what they need to do with the system (i.e. the top-level
functionality). Thus use cases help identify the primary requirements of the
system. In the Unified Process use cases are used to ensure that the evolving
design is always relevant to what the user required.
Architecture - Centric
One problem with having an iterative and incremental
approach is that while one group may be working on part of the implementation
another group may be working on part of the design. To ensure that all the
various parts fit together there needs to be something. That something is an
Life Cycle Phases
The Unified Process is composed of four distinct phases.
These four phases focus on different aspects of the design process. The four
phases are:
- Inception
- Elaboration
- Construction and
- Transition.
Inception Phase
The Inception Phase is the
part of the framework. This phase defines:
- Scope of the project.
- Defining the business case
- Establishes the feasibility of the system to be built.
- Creating a vision document with core requirements, features, and constraint
- Creating an initial risk assessment.
- Creating early use cases (10-20% complete, mostly use-case models).
- Creating a initial project plan and
- Creation of one or more prototypes (especially architectural prototypes)
Elaboration Phase
This phase captures the functional
requirements of the system. It should also specify any non-functional
requirements to ensure that they are taken into account. The other primary task
for this phase is the creation of the architecture to be used throughout the
remainder of the Unified Process.
Construction Phase
This
phase concentrates on completing the analysis of the system, performing the
majority of the design and the implementation of the system. That is, it
essentially builds the product.
The specific activities of this phase
include:
- The software is built, integrated, and tested.
- The user manuals have been created (or updated).
- The details of the software developed are documented and ready to be provided to end users or support staff (including changes, etc.)
The
transition phase moves the system into the user’s environment. This involves
activities such as deploying the system and maintaining it.
The specific activities of
this phase include:
- “beta testing” or “user acceptance testing” by end users to validate the new software against user expectations
- Users and maintainers of the software are fully trained.
- The software is fully rolled-out.
Milestones
Each phase has a set of major milestones that are used to
judge the progress of the overall Unified Process. A milestone is the conclusion
of a phase and comprises a set of artifacts
which are the product of the disciplines in that phase.The primary
milestones (or products) of the four phases are illustrated in Figure.
- Inception. The output of this phase is the vision for the system. This includes a very simplified use case model and a very tentative architecture, and the most significant risks are identified and the elaboration phase is planned.
- Elaboration. The primary output of this phase is the architecture, along with a detailed use case model and a set of plans for the construction phase.
- Construction. The end result of this phase is the implemented product which includes the software as well as the design and associated models. The product may not be without defects, as some further work has yet to be completed in the transition phase.
- Transition. The transition phase is the last phase of a cycle. The major milestone met by this phase is the final production-quality release of the system.
0 Comments