CS427 2-3
Rational Unified Process (RUP)
• Iterative• Incremental• Object oriented (OO)• Commercial, popular• Developed by Rational Software, now
IBM
Best practices in RUP
• Develop software iteratively• Manage requirements• Use component-based architectures• Visually model software• Verify software quality• Control changes to software
4
CS427 2-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
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
CS427 2-7
Artifacts
• Vision statement• Iteration plan• Use-case model (UML)• Software architecture document (UML)• Design model (UML)• Component• Integration build plan• …
CS427 2-8
Roles
• Project manager• Architect• Systems analyst• Use-case specifier• Designer• Implementer• Tester• Configuration and change manager• …
CS427 2-9
Kinds of roles
• Manager• Architect (technical lead)• Business experts
– Systems analyst, use case specifier• Developers
– Designer, developer, tester, CM manager
CS427 2-10
Activities
• Plan subsystem integration• Implement classes• Fix a defect• Perform a unit test• Review code• Integrate subsystem• …
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
CS427 2-12
Workflows
• Project management • Business modeling• Requirements• Analysis and design• Implementation• Test• Configuration and change management• Deployment• Environment
CS427 2-13
Implementation workflow
A r c h i t e c t
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
P l a n S y s t e mI n t e g r a t i o n
D e f i n eO 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 nS u b s y s t e mI n t e g r a t i o n
I m p l e m e n tC 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 tT e s t
R e v i e w c o d e
I n t e g r a t es u b s y s t e m
I n t e g r a t es y s t e m
CS427 2-14
Four phases• Inception
– Get the idea, initial planning• Elaboration
– Create the architecture – Build skeleton system– Detailed planning
• Construction– Build the rest of the system
• Transition
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.
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.
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.• …
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.
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.
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.
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.
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.
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.
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.
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
Transition Goals (Cont.)
• Achieving user self-supportability • Achieving stakeholder concurrence
that deployment baselines are complete
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
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.
CS427 2-29
Iterations
Preliminary It. Iter. 1 Iter. 2 Iter. 3 Iter. 7 Iter. 8 Iter. 9
ElaborationInception Construction Transition
Rational Unified Process (RUP)
Project ManagementEnvironment
Supporting WorkflowsConfiguration & Change Mgmt
Business Modeling
Implementation
Test
Analysis & Design
Process Workflows
Deployment
Requirements
Preliminary Iteration(s)
Iter.#1
Phases
Iterations
Iter.#2
Iter.#n
Iter.#n+1
Iter.#n+2
Iter.#m
Iter.#m+1
Elaboration TransitionInception Construction
time
con
ten
t
CS427 2-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-33
An iteration workflow
• Each iteration uses some of the standard workflows– Requirements, design, implementation,
test• Workflows can run in parallel• Early iterations
– Much project management– Much business modeling– Little implementation
CS427 2-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-35
Summary of RUP principles
• Develop software iteratively• Manage requirements• Use component-based architectures• Visually model software• Verify software quality• Control changes to software
Top Related