RUP Based Project Process
August 14, 2007 – 4:22 pmThe 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:
- Title: Vision Document.
Summary: A document template outlined by the RUP. - Title: Initial Exploration of Customer Requirements.
Summary: Non formal requirements solicitation. - Title: First Draft of Project Glossary.
Summary: Listing of domain specific terms. - Title: Business Case.
Summary:- Success Criteria.
- Financial Forecast.
- Estimate of ROI.
- Title: Initial Risk Assessment.
Summary: Determine feasability of the project. - 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:
- Title: Use Case Brainstorm.
Summary: Use a workshop style meeting. - Brainstorm all possible actors.
- Brainstorm all possible Use Cases.
- After complete brainstorm, justify each Use Case as a group by producing a one line/paragraph description.
- Capture them on the model
- Title: Short Use Cases.
Summary: Satisfy a goal for the actor. The brief description should contain:
- Use Case Name.
- Short Description.
- Actors.
- Cross Reference to Requirements.
- Rank
- High ranking cases are listed below:
- Risky Use Cases.
- Major Archictectural Use Cases.
- Use Cases exercising large areas
of system functionality. - Use Cases requiring extensive research,
or new technologies. - Quick Wins.
- Large payoffs for the customer.
- High ranking cases are listed below:
- Title: Find the Concepts.
Summary:- Find the concepts. Use the below as a guide. User interaction is critical here. We can start by using the requirements document.
- Physical or tangible objects.
- Places.
- Transactions.
- Roles of People.
- Containers for other Concepts.
- Other Systems external to the system (eg Remote Database).
- Abstract Nouns.
- Organisations.
- Event.
- Rules/Policies.
- Records/Logs.
- Find the Attributes.
- Determine Associations and Cardinality.
- Fix one concept and compare it with each other concept.
- Decide Cardinality.
- Name the association.
- Find the concepts. Use the below as a guide. User interaction is critical here. We can start by using the requirements document.
- 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. - Title: Throw away prototypes.
Summary: Use to get a finer requirements understanding
and to check feasability. - 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:
- Title: Syncronize.
Summary: The code and the model should be syncronized.
- Title: Analysis.
Summary: Full Use Cases ( For this Iteration ).- Still not focusing on the implementation.
- Get the problem defined clearly.
- Use Cases should now add:
- Pre-Condition(s).
- Post-Condition(s).
- Main Flow.
- Use A1 and E1 to denote Alternative and Exception Flow(s).
- Describe in a numbered step fashion.
- Alternate Flow(s).
- Exception Flow(s).
- Segment Large Use cases into Versions.
- Produce Sequence Diagram(s) to help describe the main flow.
- Title: Design.
Summary: When performing the following
steps keep patterns in mind.- Gang of 4 patterns. ( Design Patterns by Gamma, Helm, Johnson, and Vlissides )
- GRASP patterns.
- Expert.
- Creator.
- High Cohesion, each class should not do too much work.
- Low Coupling, keep dependencies to a minimum
- Controller, Provides interface from Actor to the class
- Interaction Diagrams ( Sequence and Collaboration Diagrams ).
- Keep the diagram simple.
- Start with conceptual model.
- Don’t try to capture every scenario.
- Avoid creating classes whos name contains "controller", "handler",
"manager" or "driver". - Avoid God classes.
- Design Class Diagrams.
- Add Operations.
- Add Navigability.
- Enhance Attributes, choose Data Types.
- Determine Visibilty.
- Look for aggregations, one object that can be built from other
objects. - Look for compositions, the whole cannot exist without the
parts. - Look for inheritance.
- Package Diagrams ( for large systems ).
- State Diagrams.
- Title: Code.
Summary: Coded Use Cases ( Running and Unit Tested ). Don’t forget the comments ( use a self documenting tool such as Doxygen )! - Title: Test.
Summary: Integration and system testing.
PHASE 4 :: TRANSITION
Summary:
Delivering the product to the customer.
Estimated Overall Time:
10%
Deliverables:
- Title: Beta Release.
Summary: Initial client release. - Title: User training.
Summary: End user training, via live or documentation ( eg. users manual ).
- Title: Marketing, Distribution, Sales.
Find out more about the RUP here.
One Response to “RUP Based Project Process”
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