Key Concepts
INTRODUCTION
Making the Unified Process Work
The development of software at the
mission-critical systems level remains exceeding complex because of the
interlocking strands related to how the software works together. The Unified
Process helps people deal with this complexity. First of all, there are four
phases: inception, elaboration, construction, and transition. Beyond the
initial cycle phases, come further releases, major overhauls, and later
generations of the software system. Within these phases are the interlocking
workflows, architecture, risk management, iterations, and increments including:
- Software development driven by the use cases thought
the workflows; requirements, analysis, design, implementation, and test.
- Development guided by architecture which is the
skeleton of structural and behavioral elements that allow the system to
evolve gracefully.
- Development carried out through iterations and builds
within the iterations, resulting in incremental growth of the product.
- Development controlled with risks.
- Development visualized and recorded in the Unified
Modeling Language (UML).
- Development assessed at milestones.
The four milestones that anchor the process are: life
cycle objectives; live cycle architecture; initial operational capability; and
product release.
The Life Cycle Objectives: The first milestone
clarifies the objectives of the product live cylcle by raising the following
questions which are answered during the inception phase:
- Have you made the system scope clear?
- Have you established what is to be within the system
and what is outside of it?
- Have you reached agreement with the stakeholders on
the key requirements of the system?
- Is there an architecture that implements these
features in sight?
- Have you identified risks critical to the successful
execution of the project?
- Do you see a way to mitigate risks?
- Will the product in use generate values justifying the
investment to build it?
- Is it feasible for your organization to proceed with
the product?
- Do the stakeholders concur with the objectives?
The Life Cycle Architecture: The second milestone
clarifies the architecture for the product life cycle through the following
questions, which are answered during the elaboration phase:
Initial Operational Capability: The third milestone
establishes that the product has attained initial operational capability. The
key question, which is answered during the construction phase:
- Have you reached a level of production capability
suitable for initial operation in the user environment, particularly for
beta testing?
Prior to this milestone the project has:
- A baseline architecture
- Investigated the risks
- A project plan
- The Resources
Having satisfied these criteria we build the product. The
building process should proceed smoothly if the stakeholders have agreed on the
life cycle objectives and the life cycle architecture. Important in this phase
are the sequence of builds and a minimum of iterations. A sequence means that
the prerequisite for another iteration is will thought out, planned and no redo
is necessary because of later learned events.
Product Release: The fourth milestone establishes
that the product is ready for unrestricted release to the users. The key
question, which is answered during the transition phase:
- Can the product operate successfully in typical user
environments?
The work to be done during the initial operational
capability is beta testing, acceptance testing, and correction of problems and
defects arising from operating in the working environment. Once the users are
satisfied the product is delivered.
The basic concepts of the Rational Unified Process and typical
software engineering process are now presented.
[Images give more information on that key
RUP concept.]
A process is a set of partially ordered steps intended to reach a goal; in
software engineering the goal is to build a software product, or to enhance
an existing one; in process engineering, the goal is to develop or enhance a
process. In RUP, these are organized into a set of disciplines to further define
the workflows and other process elements.
Expressed in terms of business modeling, the software development process is
a business process; the Rational Unified Process (RUP) is a generic business
process for object-oriented software engineering. It describes a family of related
software engineering processes sharing a common structure, a common process
architecture. It provides a disciplined approach to assigning tasks and responsibilities
within a development organization. Its goal is to ensure the production of high-quality
software that meets the needs of its end users, within a predictable schedule
and budget. The RUP captures many of the best practices in modern software development
in a form that can be tailorable for a wide range of projects and organizations.
When a software system is developed from scratch, development is the process
of creating a system from requirements. But once the systems has taken form
(or in our terms, once the system has passed through the initial development
cycle), any further development is the process of conforming the system to the
new or modified requirements. This applies throughout the system's lifecycle.

The software-engineering process is the process of developing
a system from requirements, either new (initial development cycle) or changed
(evolution cycle).
|