INTRODUCTION
A software development process describes an approach to building, deploying and possibly maintaining software.
RequirementsRequirements
DesignDesign
ImplementationImplementation
TestingTesting
MaintenanceMaintenance
This course is about object-oriented software development. In particular, it focuses on the Unified Process (UP).
UP is a software development process framework which combines commonly accepted best practices into a cohesive and well-documented description.
The Rational Unified Process (RUP) is a detailed refinement of the UP. It is a process product developed and maintained by IBM.
This chapter is an introduction to the UP which covers the following: Iterative Development Embracing Change Phases Disciplines
ITERATIVE DEVELOPMENT
A very important "best practice" promoted by the UP is the iterative and incremental development approach to software development.
In this approach, development is organized into a series of short, fixed-length iterations.
The outcome of each iteration is a tested, integrated, and executable system.
Each iteration is a "mini-project"; it includes its own requirement analysis, design, implementation and testing activities.
The iterative lifecycle is based on the successive enlargement and refinement of a system through multiple iterations, with cyclic feedback and adaptation as core drivers to converge upon a suitable system.
The system grows incrementally over time, iteration by iteration.
Requirements
Design
Implementation &Test & Integration & More Design
Final Integration & System Test
Requirements
Design
3 weeks (for example)The system grows incrementally.
Feedback from iteration N leads to refinement and adaptation of the requirements and
design in iteration N+1.
Iterations are fixed in length, or timeboxed.
Time
Implementation &Test & Integration & More Design
Final Integration & System Test
Each iteration tackles a small subset of requirements. The output of an iteration is an executable but incomplete system. It is not an experimental or throw-away prototype. It is also not ready to deliver into production but it is a production-grade subset of the final system.
Note that it is also possible for an iteration to improve existing software instead of handling new requirements. For example, an iteration may focus on the performance of a subsystem.
EMBRACING CHANGE
Reality: Change is inevitable in software development. Normally, clients are not clear about what they really want.
UP balances the need to agree upon and stabilize a set of requirements with the reality of changing requirements.
In the UP, each iteration results in an executable release developed based on a small subset of requirements.
Using that release, early feedback can be obtained through users, stakeholders, developers and tests. From the feedback, requirements can be clarified, corrected or even added. Risky and critical design decisions can be resolved early rather than late.
Early iterations are farther from the "true path" of the system. Via feedback and adaptation, the system converges towards the most appropriate requirements and design.
In late iterations, a significant change in requirements is rare, but can occur. Such late changes may give an organization a competitive business advantage.
one iteration of design, implement, integrate, and test
ITERATION LENGTH
The length of an iteration is important. The UP recommends an iteration length of between two and six weeks.
Iteration length too short => can be difficult to obtain meaningful throughput and feedback.
Iteration length too long => increases complexity and feedback is delayed which defeats the purpose of iterative development.
The length for each iteration is fixed. Date slippage is discouraged.
ADVANTAGES OF ITERATIVE DEVELOPMENT Early rather than late mitigation of high risks
(technical, requirements, objectives, usability, etc) Early visible progress Early feedback, user engagement, and adaptation,
leading to a refined system that more closely meets the real needs of the stakeholders.
Managed complexity The learning within an iteration can be methodically
used to improve the development process itself, iteration by iteration.
PHASES IN UNIFIED PROCESS
Inception Approximate vision, business case, scope, vague
estimates This phase is like a feasibility phase. Adequate
investigation is done to support a decision to continue or stop
Elaboration Refined vision, iterative implementation of the core
architecture, resolution of high risks, identification of most requirements and scope, more realistic estimates.
In this phase, the core architecture is iteratively implemented, and high risk issues are mitigated.
Construction Iterative implementation of the remaining lower
risk and easier elements, and preparation for deployment.
Transition Beta tests, deployment.
inc. elaboration construction transition
iteration phase
development cycle
release
A stable executablesubset of the finalproduct. The end ofeach iteration is aminor release.
increment
The difference(delta) between thereleases of 2subsequent
iterations.
final productionrelease
At this point, thesystem is releasedfor production use.
milestone
An iteration end-point when some
significant decisionor evaluation occurs.
DISCIPLINES IN UNIFIED PROCESS In the UP, an artifact is the general term for
any work product: code, Web graphics, database schema, text documents, diagrams, models, etc.
In the UP, a discipline is a set of activities (and related artifacts) in one subject area. For example, the Requirements discipline refers to the set of activities and artifacts within requirements analysis.
DISCIPLINES AND PHASES
During one iteration, work goes on in most or all disciplines. However, the relative effort across these disciplines changes over time.
Sample
UP Disciplines
Business Modeling
Requirements
Design
Implementation
...
The relative effort in
disciplines shifts
across the phases.
This example is
suggestive, not literal.
incep-
tionelaboration construction
transi-
tion
...
Iterations
SampleUP Disciplines
Business Modeling
Requirements
Design
Implementation
Test
Deployment
Configuration & ChangeManagement
Project Management
Environment
Focusof thisbook
Note thatalthough an
iteration includeswork in most
disciplines, therelative effort and
emphasis changeover time.
This example issuggestive, notliteral.
A four-week iteration (for example).A mini-project that includes work in mostdisciplines, ending in a stable executable.
DISCIPLINES AND PHASES
Top Related