Rational Unified Process
Rational Unified Process
• The Unified Process is a specific methodology that maps out when and how to use the various
Unified Modeling Language (UML) techniques for object-oriented analysis and design.
• The primary contributors were Grady Booch, Ivar Jacobsen, and James Rumbaugh.
• Whereas the UML provides structural support for developing the structure and behavior of an
information system, the Unified Process provides the behavioral support.
• The Unified Process is use-case driven, architecture-centric, and iterative and incremental.
• Furthermore, the Unified Process is a two-dimensional systems development process
described by a set of phases and workflows.
• The phases are: inception, elaboration, construction, and transition.
• The workflows include: business modeling, requirements, analysis, design, implementation, test,
deployment, configuration and change management, project management, and environment.
Phases
• It deals with:
• gathering the requirements,
• building the UML structural and behavioral models of the problem
domain, and
• detailing how the problem domain models fit into the evolving system
architecture.
• Developers are involved with all but the deployment engineering
workflow in this phase.
• As the developers iterate over the workflows, the importance of
addressing configuration and change management becomes
apparent.
Elaboration Phase
• Analysis Workflow:
• The analysis workflow primarily addresses the creation of an analysis
model of the problem domain.
• In the Unified Process, the analyst begins designing the architecture
associated with the problem domain;
• using the UML, the analyst creates structural and behavior diagrams that
depict a description of the problem domain classes and their interactions.
• The primary purpose of the analysis workflow is to ensure that both the
developer and user organizations understand the underlying problem
and its domain without overanalyzing.
Engineering Workflows
• Analysis Workflow:
• If they are not careful, analysts can create analysis paralysis, which
occurs when the project becomes so bogged down with analysis that
the system is never actually designed or implemented.
• A second purpose of the analysis workflow is to identify useful reusable
classes for class libraries.
• By reusing predefined classes, the analyst can avoid reinventing the
wheel when creating the structural and behavior diagrams.
• The analysis workflow is predominantly associated with the elaboration
phase, but like the requirements workflow, it is possible that additional
analysis will be required throughout the development process.
Engineering Workflows
• Design Workflow:
• The design workflow transitions the analysis model into a form that can
be used to implement the system: the design model.
• Whereas the analysis workflow concentrated on understanding the
problem domain, the design workflow focuses on developing a solution
that will execute in a specific environment.
• Basically, the design workflow simply enhances the description of the
evolving system by adding classes that address the environment of the
system to the evolving analysis model.
Engineering Workflows
• Design Workflow:
• The design workflow uses activities such as:
• detailed problem domain class design,
• optimization of the evolving information system,
• database design,
• user-interface design, and
• physical architecture design.
• The design workflow is associated primarily with the elaboration and
construction phases of the Unified Process.
Engineering Workflows
• Implementation Workflow:
• The primary purpose of the implementation workflow is to create an
executable solution based on the design model (i.e., programming).
• This includes not only writing new classes but also incorporating
reusable classes from executable class libraries into the evolving
solution.
• As with any programming activity, the new classes and their
interactions with the incorporated reusable classes must be tested.
• In the case of multiple groups performing the implementation of the
information system:
• the implementers also must integrate the separate, individually tested
modules to create an executable version of the system.
• The implementation workflow is associated primarily with the
elaboration and construction phases.
Engineering Workflows
• Testing Workflow:
• The primary purpose of the testing workflow is to increase the quality
of the evolving system.
• Testing goes beyond the simple unit testing associated with the
implementation workflow.
• In this case, testing also includes:
• testing the integration of all modules used to implement the system,
• user acceptance testing, and
• the actual alpha testing of the software.
Engineering Workflows
• Testing Workflow:
• Practically speaking, testing should go on throughout the development
of the system:
• testing of the analysis and design models occurs during the elaboration
and construction phases, whereas
• implementation testing is performed primarily during the construction and,
to some degree, transition phases.
• Basically, at the end of each iteration during the development of the
information system, some type of test should be performed.
Engineering Workflows
• Deployment Workflow:
• The deployment workflow is most associated with the transition phase
of the Unified Process.
• The deployment workflow includes activities such as software
packaging, distribution, installation, and beta testing.
• When actually deploying the new system into a user organization, the
developers might have to:
• convert the current data,
• interface the new software with the existing software, and
• train the end user to use the new system.
Supporting Workflows
• The supporting workflows include the project management,
configuration and change management, and environment
workflows.
• The supporting workflows focus on the managerial aspects of
information systems development.
Supporting Workflows