Notes on the Rational Unified Process (RUP)

The Rational Unified Process (RUP) draws on many generations of software processes especially Barry Boehm's Spiral Model.

Recommended reading:

Click to read reviews or buy The Rational Unified Process The Rational Unified Process

Here's my list of the top salient points of RUP. You should buy the above book to get a detailed description.

  1. Software Best Practices
    1. Develop iteratively
    2. Manage requirements closely
    3. Use component-based architectures
    4. Model your code visually
    5. Verify software quality
    6. Control changes to software
  2. RUP has four primary modeling elements
    1. Workers - some examples:
      1. System Analyst - gets requirements, defines Use Cases and sets the boundaries of the system.
      2. Architect - defines the high level view of the system
      3. Designer - defines the interactions of classes
      4. Implementer - writes the code and associated tests
      5. Test Designer - defines the test environment
      6. Toolsmith - creates utility tools for the project
    2. Activities - things done by Workers, like code review, or designing
    3. Artifacts - these are any created object like test plans or code
    4. Workflows - sequences of activities performed by various workers which produce meaningful output RUP has 6 engineering workflows:
      1. Business modeling
      2. Requirements
      3. Analysis and design
      4. Implementation
      5. Test
      6. Deployment

      and 3 supporting workflows:

      1. Project management
      2. Configuration and change management
      3. Environment

      In addition four other process elements are helpful: Guidelines, Templates, Tool mentors and concepts

  3. Four phases of a software project
    1. Inception
    2. - write the business case and define scope. This phase concludes with the Life-Cycle Objective (LCO) milestone.
    3. Elaboration
    4. - plan the activities, detail the features and design architecture. This phase concludes with the Life-Cycle Architecture (LCA) milestone.
    5. Construction
    6. - implements the code and meets the Initial Operational Capability (IOC) milestone.
    7. Transition
    8. - releases the code to the users. This phase concludes with the product release milestone.
    Kruchten gives the following proportions as typical: Inception 10%, Elaboration 30%, Construction 50%, Transition 10%.
  4. RUP is Architecture Centric

    An architecture is a set of multidimensional views of the high level elements in a system. The RUP defines 4+1 Views of an architecture:

    1. Logical
    2. the functionality as seen by the end user
    3. Implementation
    4. the system as seen by the programmers
    5. Process
    6. view seen by system integrators
    7. Deployment
    8. view seen by system engineering to be used for installation and delivery
    9. Use-Case
    10. the high level use-cases that drive the architecture
  5. Requirements
    1. Requirements are typically divided into functional and non-functional. The functional requirements detail what the system should do. The non-functional requirements specify attributes like usability, reliability, performance, and supportability.
  6. Analysis and Design

    Analysis is a pure theoretical structure to solve the problem. The design adds more mundane factors like supportability and performance.