Key Concepts

Topics: Basic Concepts in the Rational Unified Process > Software Engineering Process

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:

  • Have you created an executable architectural baseline?

  • Is it resilient and robust?
  • Can it evolve over the life of the product?
  • Have you identified and mitigated the major risks to the point of assuring that they will not upset the project plan?
  • Have you developed a project plan to a level necessary to support a realistic bid covdring schedule, cost, and quality?
  • Will the project, as now planned band bid, provide an adequate return on investment?
  • Have you obtained the stakeholders concurrence?

 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.

Basic Concepts

The basic concepts of the Rational Unified Process and typical software engineering process are now presented.

The Rational Unified Process (RUP) Top

[Images give more information on that key RUP concept.]

 

The Software Engineering Process Top

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).


 

Rational Unified Process