movie rental service

RUP Based Project Process

August 14, 2007 – 4:22 pm

The Rational Unified Process (RUP) is a good methodology to keep your projects in order. This guideline is meant to be complete; however, not all items will apply to your project. The first step should be a quick review of the entire process with respect to your project and eliminate all unnecessary steps.

PROJECT PROCESS OVERVIEW

Summary:

This process model is an overview of the steps that should be used when creating a project. It is meant to be a step by step template.


PHASE 1 :: INCEPTION

Summary:

Establish the scope of the project.

Estimated Overall Time:

10%

Deliverables:

  1. Title: Vision Document.
    Summary: A document template outlined by the RUP.
  2. Title: Initial Exploration of Customer Requirements.
    Summary: Non formal requirements solicitation.
  3. Title: First Draft of Project Glossary.
    Summary: Listing of domain specific terms.
  4. Title: Business Case.
    Summary:

    1. Success Criteria.
    2. Financial Forecast.
    3. Estimate of ROI.
  5. Title: Initial Risk Assessment.
    Summary: Determine feasability of the project.
  6. Title: Project Plan.

    Summary: Outline of overall project.


PHASE 2 :: ELABORATION

Summary:

Analyze the problem, develop the project plan further, and eliminate riskier areas.

Estimated Overall Time:

30%

Deliverables:

  1. Title: Use Case Brainstorm.
    Summary: Use a workshop style meeting.
    1. Brainstorm all possible actors.
    2. Brainstorm all possible Use Cases.
    3. After complete brainstorm, justify each Use Case as a group by producing a one line/paragraph description.
    4. Capture them on the model
  2. Title: Short Use Cases.

    Summary: Satisfy a goal for the actor. The brief description should contain:

    1. Use Case Name.
    2. Short Description.
    3. Actors.
    4. Cross Reference to Requirements.
    5. Rank
      1. High ranking cases are listed below:
        1. Risky Use Cases.
        2. Major Archictectural Use Cases.
        3. Use Cases exercising large areas
          of system functionality.
        4. Use Cases requiring extensive research,
          or new technologies.
        5. Quick Wins.
        6. Large payoffs for the customer.
  3. Title: Find the Concepts.
    Summary:

    1. Find the concepts. Use the below as a guide. User interaction is critical here. We can start by using the requirements document.
      1. Physical or tangible objects.
      2. Places.
      3. Transactions.
      4. Roles of People.
      5. Containers for other Concepts.
      6. Other Systems external to the system (eg Remote Database).
      7. Abstract Nouns.
      8. Organisations.
      9. Event.
      10. Rules/Policies.
      11. Records/Logs.
    2. Find the Attributes.
    3. Determine Associations and Cardinality.
      1. Fix one concept and compare it with each other concept.
      2. Decide Cardinality.
      3. Name the association.
  4. Title: Analysis Class Diagram ( Conceptual or Domain
    Model ).
    Summary: What concepts are important to our system.
    DO NOT THINK ABOUT THE CODE DESIGN HERE!
    The customer should understand the concepts.
  5. Title: Throw away prototypes.
    Summary: Use to get a finer requirements understanding
    and to check feasability.
  6. Title: Review.
    Summary: Go/No Go decision.

PHASE 3 :: CONSTRUCTION

Summary:

Build the project in iterations. The following steps represent one iteration. Typically we build a few Use Cases each iteration.

Estimated Overall Time:

50%

Deliverables:

  1. Title: Syncronize.

    Summary: The code and the model should be syncronized.

  2. Title: Analysis.
    Summary: Full Use Cases ( For this Iteration ).

    1. Still not focusing on the implementation.
    2. Get the problem defined clearly.
    3. Use Cases should now add:
      1. Pre-Condition(s).
      2. Post-Condition(s).
      3. Main Flow.
        1. Use A1 and E1 to denote Alternative and Exception Flow(s).
        2. Describe in a numbered step fashion.
      4. Alternate Flow(s).
      5. Exception Flow(s).
      6. Segment Large Use cases into Versions.
      7. Produce Sequence Diagram(s) to help describe the main flow.
  3. Title: Design.
    Summary: When performing the following
    steps keep patterns in mind.

    1. Gang of 4 patterns. ( Design Patterns by Gamma, Helm, Johnson, and Vlissides )
    2. GRASP patterns.
      1. Expert.
      2. Creator.
      3. High Cohesion, each class should not do too much work.
      4. Low Coupling, keep dependencies to a minimum
      5. Controller, Provides interface from Actor to the class
    3. Interaction Diagrams ( Sequence and Collaboration Diagrams ).
      1. Keep the diagram simple.
      2. Start with conceptual model.
      3. Don’t try to capture every scenario.
      4. Avoid creating classes whos name contains "controller", "handler",
        "manager" or "driver".
      5. Avoid God classes.
    4. Design Class Diagrams.
      1. Add Operations.
      2. Add Navigability.
      3. Enhance Attributes, choose Data Types.
      4. Determine Visibilty.
      5. Look for aggregations, one object that can be built from other
        objects.
      6. Look for compositions, the whole cannot exist without the
        parts.
      7. Look for inheritance.
    5. Package Diagrams ( for large systems ).
    6. State Diagrams.
  4. Title: Code.
    Summary: Coded Use Cases ( Running and Unit Tested ). Don’t forget the comments ( use a self documenting tool such as Doxygen )!
  5. Title: Test.

    Summary: Integration and system testing.


PHASE 4 :: TRANSITION

Summary:

Delivering the product to the customer.

Estimated Overall Time:

10%

Deliverables:

  1. Title: Beta Release.
    Summary: Initial client release.
  2. Title: User training.

    Summary: End user training, via live or documentation ( eg. users manual ).

  3. Title: Marketing, Distribution, Sales.

Find out more about the RUP here.

  1. One Response to “RUP Based Project Process”

  2. Some of your readers (like me) are experts and mentors on software process, especially the Unified Process and Agile. I’m glad to provide tips or additional information if anybody is interested. Just drop me an email at DanielBMarkham@Hotmail.com

    By Daniel Markham on Aug 14, 2007

Post a Comment