3. Rational Unified Process (RUP)
• Iterative
• Incremental
• Object oriented (OO)
• Commercial, popular
• Developed by Rational Software, now
IBM
CS427 2-3
4. Best practices in RUP
• Develop software iteratively
• Manage requirements
• Use component-based architectures
• Visually model software
• Verify software quality
• Control changes to software
4
5. Components of RUP
• Artifacts – what
– Things people make
• Roles – who
– Roles people take
• Activities – how
– Tasks people do
• Workflows – when
– Order of steps people follow
CS427 2-5
6. Artifact
– Artifacts are either final or intermediate work products
that are produced and used during a project.
– Artifacts are used to capture and convey project
information.
– An artifact can be any of the following:
• A document, such as Business Case or Software Architecture
Document
• A model, such as the Use-Case Model or the Design Model
• A model element; that is, an element within a model, such as a
class, or a subsystem
7. Artifacts
• Vision statement
• Iteration plan
• Use-case model (UML)
• Software architecture document (UML)
• Design model (UML)
• Component
• Integration build plan
• …
CS427 2-7
9. Kinds of roles
• Manager
• Architect (technical lead)
• Business experts
– Systems analyst, use case specifier
• Developers
– Designer, developer, tester, CM
CS427 2-9
manager
10. Activities
• Plan subsystem integration
• Implement classes
• Fix a defect
• Perform a unit test
• Review code
• Integrate subsystem
• …
CS427 2-10
11. What is a workflow?
• A set of activities that is performed by
the various roles in a project
• Describes a meaningful sequence of
activities that produce a useful result (an
artifact)
• Shows interaction between roles
12. Workflows
• Project management
• Business modeling
• Requirements
• Analysis and design
• Implementation
• Test
• Configuration and change management
• Deployment
• Environment
CS427 2-12
13. Implementation workflow
I n t e g r a t e
s u b s y s t e m
CS427 2-13
A r c h i t e c t
P l a n S y s t e m
I n t e g r a t i o n
S y s t e m I n t e g r a t o r
I m p l e m e n t o r
C o d e r e v i e w e r
D e f i n e
O r g a n i z a t i o n
o f S u b s y s t e m
P l a n
S u b s y s t e m
I n t e g r a t i o n
I m p l e m e n t
C l a s s e s
F i x a d e f e c t
P e r f o r m U n i t
T e s t
R e v i e w c o d e
I n t e g r a t e
s y s t e m
14. Four phases
CS427 2-14
• Inception
– Get the idea, initial planning
• Elaboration
– Create the architecture
– Build skeleton system
– Detailed planning
• Construction
– Build the rest of the system
• Transition
15. Inception Goals
• Establishing the project's software scope and boundary
conditions, including:
– an operational vision
– acceptance criteria
– what is intended to be in the product
– what is not.
• Discriminating
– the critical use cases of the system
– the primary scenarios of operation that will drive the major
design trade-offs.
16. Inception Goals (Cont.)
• Estimating
– the overall cost
– and schedule for the entire project
– and more detailed estimates for the
elaboration phase that will immediately follow
• Estimating potential risks (the sources of
unpredictability)
• Preparing the supporting environment for
the project.
17. Inception Essential
Activities
• Formulating the scope of the project.
• Planning and preparing a business
case.
• Synthesizing a candidate
architecture.
• Preparing the environment for the
project.
• …
18. Inception Artifacts
• Vision: The project's core requirements, key features,
and main constraints are documented. Stakeholders …
• Glossary: defines important terms used by the project.
• Business Case: provides the necessary information
from a business standpoint to determine whether or not
this project is worth investing in.
• Software Development Plan: all information required to
manage the project. (Risk, time and durations, needed
tools, changes, documentations)
• Use-case model: a model of the system's intended
functions and its environment, and serves as a contract
between the customer and the developers.
19. Elaboration Goals (Cont.)
• To produce an evolutionary prototype
• Verify baseline architecture
– Demonstrate that the architecture will
support requirements of the system at a
reasonable cost and time.
• To establish a supporting
environment.
20. Elaboration Activities
• Defining, validating the baseline
architecture.
• Refining the Vision.
• Creating detail of iteration plans for the
construction phase.
• Refining the development case and putting in
place the development environment
• Refining the architecture and selecting
components.
21. Elaboration Artifacts
• Software Architecture Document: provides a
comprehensive architectural overview of the system,
using a number of different architectural views to
depict different aspects of the system.
• Prototypes: One or more executable architectural
prototypes have been created to explore critical
functionality and architecturally significant scenarios.
• Design model: an object model describing the
realization of use cases, and serves as an abstraction
of the implementation model and its source code.
• Data model: a subset of the implementation model
which describes the logical and physical representation
of persistent data in the system.
• Testing Mechanisms and refining previous Iteration’s
artifacts.
22. Construction Goals
• Completing the analysis, design, development and
testing of all required functionality.
• Achieving useful versions (alpha, beta, and other
test releases)
• Achieving adequate quality as rapidly as practical
• To decide if the software, the sites, and the users
are all ready for the application to be deployed.
• Minimizing development costs by optimizing
resources and avoiding unnecessary scrap and
rework.
• To achieve some degree of parallelism in the work
of development teams.
23. Construction Activities
• Resource management, control and
process optimization
• Complete component development and
testing against the defined
evaluation criteria
• Assessment of product releases
against acceptance criteria for the
vision.
24. Construction Artifacts
• The System: The executable system
itself, ready to begin "beta" testing.
• Training materials: the material that
is used in training programs or courses
to assist the end-users with product
use, operation and/or maintenance.
• Testing results and refining previous
Iteration’s artifacts.
25. Transition Goals
• Beta testing to validate the new system
against user expectations
• Beta testing and parallel operation relative
to a legacy system that it's replacing
• Training of users and maintainers
• Roll-out to the marketing, distribution and
sales forces
• Tuning activities such as bug fixing,
enhancement for performance and
usability
26. Transition Goals (Cont.)
• Achieving user self-supportability
• Achieving stakeholder concurrence
that deployment baselines are
complete
27. Transition Activities
• Executing deployment plans
• Finalizing end-user support material
• Testing the deliverable product at the
development site
• Creating a product release
• Getting user feedback
• Fine-tuning the product based on feedback
• Making the product available to end users
28. Transition Artifacts
• Product.
• Release Notes: identify changes and known bugs in a
version of a build or deployment unit that has been
made available for use.
• Installation Artifacts: refer to the software and
documented instructions required to install the
product.
• End-User Support Material: Materials that assist
the end-user in learning, using, operating and
maintaining the product.
• Testing results and refining previous Iteration’s
artifacts.
30. Rational Unified Process (RUP)
Process Workflows
Business Modeling
Requirements
Analysis & Design
Implementation
Test
Deployment
Supporting Workflows
Configuration & Change Mgmt
Project Management
Environment
Inception Elaboration Construction Transition
Preliminary
Iteration(s)
Iter.
#1
Phases
Iter.
#2
Iter.
#n
Iter.
#n+1
Iterations
Iter.
#n+2
Iter.
#m
Iter.
#m+1
time
conten
t
31.
32. Iteration plan
• What are we going to do this
iteration?
• Who is going to do it?
• What order are we going to do it?
• Do we have enough resources?
CS427 2-32
33. An iteration workflow
• Each iteration uses some of the
standard workflows
– Requirements, design, implementation,
CS427 2-33
test
• Workflows can run in parallel
• Early iterations
– Much project management
– Much business modeling
– Little implementation
34. Architecture
• Describes components and
connections
• Component is system/subsystem
• Architect responsible for
architecture
• Developers responsible for
components
• Elaboration phase writes code for
the architecture
CS427 2-34
35. Summary of RUP
principles
• Develop software iteratively
• Manage requirements
• Use component-based architectures
• Visually model software
• Verify software quality
• Control changes to software
CS427 2-35
36. RUP is a framework
• Complicated process
• Framework - you are not expected to
do everything
• Don’t focus so much on the process
that you forget the product!
CS427 2-36
Notas do Editor
Inception Defines the scope of the project. A business plan is often created to determine whether resources should be committed or not. The model is 20% complete.
Elaboration Plan project, specify features, baseline architecture. Requirements are firmed up, we’re now 80% complete. A detailed cost/resource estimation can be drawn up.
Construction Build the product. Several iterations.
Transition Move the product into and end user environment. Training, installation and support.
An iteration is a distinct sequence of activities based on an established plan and evaluation criteria, resulting in an executable release (internal or external)
A workflow shows all the activities you might go through to produce a particular set of artifacts – more later.