Unified Software Process
Summary
History
In 1997, Rational defined 6 best practices for software engineering:
- Developer iteratively, focusing on risk as a driver
- Manage requirements
- Employ a component-base architecture
- Model software visually
- Continuously verify quality
- Control changes
Key Features
Software process model
- Order of phases
- Transition criteria
Component based
- Software components
- Well-defined interfaces
Tightly related to UML
- Notation
- Basic principles
Distinguishing aspects
- Use-case driven
- Architecture-centric
- Iterative and incremental
Use Case Driven
A system performs a sequence of actions in response to user input
Use cases capture this interaction and answer the question, “What is the system supposed to do for each user?”.
Architecture-centric
Use cases define the function, architecture defines the form.
- Create rough outline of system
- Key use-cases turn into subsystems
- Refine architecture using additional use cases
Iterative and Incremental
The end of each cycle has it’s own product release
Phases within a cycle
Iterations
- Identify relevant use cases
- Create design
- Implement
- Verify code against use cases
- Release a product
- Doesn’t have to be an external release
Inception
From idea to vision of end product
Delimit project scope
Business case for product represented
- What are the major users/actors and what will the system do for them?
- Simplified use-case model
- What could be an architecture for the system?
- Tentative architecture
- What is the plan and how much will it cost?
- Main risks identified, rough planning
Deliverables
- Vision Document
- General vision of core project’s requirements, key features, main constraints
- Initial Use case model
- Project Glossary
- Business Case
- Project Plan and risk assessment
- [Optionally] one or more prototypes
Criteria
Stakeholder concurrence
on scope, definition, and cost/schedule estimates
Requirements understanding
as evidenced by the fidelity of primary uses cases
Credibility
of the cost/schedule estimates, priorities, risks, and
development process
Depth and breadth
of any prototype that was developed
Project may be canceled or considerably re-thought if it fails to pass this milestone.
Elaboration
Analyze problem domain
Establish architectural foundation
Eliminate highest risk elements
- Address most critical use cases
Refine plan of activities and estimates
Deliverables
Almost complete use-case model
Supplementary requirements, including non-functional
Complete Software architecture
Design model, test cases, executable prototype
Revised project plan
Preliminary user manual
Criteria
Are vision and architecture stable?
Does the prototype show that the major risks have been addressed/resolved?
Is the plan sufficiently detailed and accurate?
Do all stakeholders agree that the vision can be achieved with the current plan?
Is the actual resource expenditure vs planned expenditure acceptable?
Project may be canceled or considerably reworked if it fails to pass this milestone.
Construction
All features are considered developed
All features are thoroughly tested
Shift from intellectual property development to product development
Deliverables
All use cases have been realized, with traceability information.
Software product integrated on adequate platforms.
Complete system test results
Complete user manual
Complete set of artifacts
- Design
- Code
- Tests
Criteria
Is the product stable/mature enough to be deployed to users?
Are the stakeholders ready for the transition into the user community?
Are the actual resources expenditures vs planned expenditures still acceptable?
Transition may be postponed by one release if the project fails to pass this milestone.
Transition
Issues after deployment
- New release
- Corrective maintenance
- Perfective maintenance
- Adaptive maintenance
Training customer service and providing help-line assistance
A new cycle may start
Deliverable
Project completed
Product in use
Lessons learned / post-mortem
Plan for next release
Criteria
Is the user satisfied?
Are actual resourced expenditures vs planned expenditures still acceptable?