The Rational Unified Process
The Rational Unified Process
1
Abstract
It is claimed that only 26% of major IT projects are successful. There
are many reasons for this, but one way to make a project more likely to
succeed is to use a formal process for software development. The Rational
Unified Process (RUP) is such a process. RUP was developed by unifying
several object oriented development processes. The RUP has also formed
the basis for many variants including the Unified Process, an open initia-
tive and many commercial derivations. This report describes the process
model from analyzing, designing, implementing, testing and maintenance
to the final delivery of the product.
Keywords: RUP, UP, OPEN, software development, process phases,
workflow
2
Contents
1 Introduction 5
1.1 Problem area . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.2 Purpose . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
2 Process description 6
2.1 Static structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
2.1.1 Workers . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
2.1.2 Activities . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
2.1.3 Artifact . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
2.1.4 Workflows . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
2.2 Dynamic Structure: Iterative Development . . . . . . . . . . . . 8
2.2.1 The sequential process . . . . . . . . . . . . . . . . . . . . 8
2.2.2 Four process phases . . . . . . . . . . . . . . . . . . . . . 10
3 Process workflow 11
3.1 Project Management Workflow . . . . . . . . . . . . . . . . . . . 11
3.1.1 Project Risk . . . . . . . . . . . . . . . . . . . . . . . . . 12
3.2 Business and Requirements Modelling . . . . . . . . . . . . . . . 13
3.2.1 Business Modelling . . . . . . . . . . . . . . . . . . . . . . 13
3.2.2 Requirements Modelling . . . . . . . . . . . . . . . . . . . 14
3.3 The analysis and Design workflow . . . . . . . . . . . . . . . . . 14
3.3.1 Analysis versus design . . . . . . . . . . . . . . . . . . . . 15
3.3.2 The analysis model . . . . . . . . . . . . . . . . . . . . . . 15
3.3.3 The design model . . . . . . . . . . . . . . . . . . . . . . . 15
3.4 The implementation workflow . . . . . . . . . . . . . . . . . . . . 16
3.4.1 Builds . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
3.4.2 Integration . . . . . . . . . . . . . . . . . . . . . . . . . . 17
3.4.3 Prototypes . . . . . . . . . . . . . . . . . . . . . . . . . . 18
3.4.4 Workflow . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
3.5 Test workflow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
3.5.1 Testing in the iterative lifecycle . . . . . . . . . . . . . . . 19
3.5.2 Type of test . . . . . . . . . . . . . . . . . . . . . . . . . . 19
3.5.3 The test model . . . . . . . . . . . . . . . . . . . . . . . . 20
3.5.4 Workers and artifacts . . . . . . . . . . . . . . . . . . . . 21
3.5.5 The test workflow . . . . . . . . . . . . . . . . . . . . . . 21
3
4.3.2 The iteration plan . . . . . . . . . . . . . . . . . . . . . . 25
4.3.3 The architecture . . . . . . . . . . . . . . . . . . . . . . . 27
4.3.4 Building and testing products . . . . . . . . . . . . . . . . 27
4
1 Introduction
This chapter considers the purpose and limitations of the project and how the
Rational Unified Process(RUP) works in generall.
RUP is a software engineering process developed and marketed by Rational
Software. It is a disciplined approach to assigning and managing tasks and re-
sponsibilities in a development organization. The goal with this process is to
produce, within a predictable schedule and budget, high-quality software that
meets the needs of its end users. RUP is a process ”framework” for software
development, which covers the life cycle of a project and guides the development
team in the activities of project management as well as the technical activities.
The RUP has a solid structure; its description is coherent and uses in itself
an object-oriented approach. Its structure transcends the traditional model of
the development in cascade to offer a powerful software development frame-
work based on a controlled and optimized iterative cycle. The RUP proposes a
framework making it possible for an organization of software development of all
sizes to work, extend and improve its process according to its objectives. The
RUP is a rich base of knowledge of the best practices harvested by Rational
over the years. RUP captures many of the best practices in modern software
development and presents them in a tailorable form that is suitable for a wide
range of projects and organizations. RUP delivers these best practices to the
project team online in a detailed, practical form.
1.2 Purpose
The purpose with this project is to make research to see how the Rational
Unified Process (RUP) works.
5
2 Process description
2.1 Static structure
A model process describes who does what, how, and when. The Rational Unified
Process is represented with the use of four primary modeling elements, which are
workers, activities, artifacts, and workflows. A worker defines the behavior and
responsibilities of an individual or a group of individuals working as a team.
Workers represent a role played by individuals on a project, and define how
they carry out their work. Workers have activities, which define the work they
perform. An activity is something a worker does that provides a meaningful
result in the context of the project. Activities have input and output artifacts.
An artifact is a work product of the process; workers use artifacts to perform
activities, and produce artifacts in the execution of activities. Artifacts are
pieces of information that are produced, modified, or used by a process.
Core workflows, in the Rational Unified Process, represent a partitioning of
workers and activities into logical groupings called areas of concern or disci-
plines. The core process workflows are grouped into six engineering workflows:
Business Modeling, Requirements, Analysis and Design, Implementation, Test,
and Deployment; and three supporting workflows: Project Management, Con-
figuration and Change Management, and Environment.
Three individuals elements are shown in figure 1.
6
2.1.1 Workers
The worker is the core element in the whole process, as a result the workers
defined the behaviour and responsibilities of an individual or a group of indi-
viduals working together as a team. It is helpful to think of a worker as a hat
that an individual can put on during the project. One person may have on
many hats. This is important because it is common to think of a worker as the
individual or the group, but in the RUP the term worker refers to the roles that
classify how the individuals should do their work.
Some examples that a worker possibly will be take part in are:
It is essential to know that workers are not individuals. They explain that
an individual should conduct itself in the business and the responsibilities of
each individual.
2.1.2 Activities
Each worker has activities, which characterize the work they perform. An ac-
tivity is a unit of work that an individual in that role may be asked to perform,
and that produces a consequential result in the context of the project. The
purpose of the activity is to create or update artifacts such as a model, class
or a plan. Every activity may be frequently doing some operation on the same
artifact, particularly from one iteration to another as the system is refined and
expanded. Some instances of the activities:
• Plan an iteration: performed by the worker: Project Manager
• Find use cases and actors: performed by the Worker: System Analyst
• Review the design: performed by the Worker: Design Reviewer
• Execute a performance test: performed by the Worker: Performance
Tester
2.1.3 Artifact
Activities have input and output artifacts. An artifact is information that is
produced and modified or used by a process. Below is some examples of what
an artifact could looks like:
7
• A model, such as the use-case model or the design model
• A model element - an element within a model - such as a class , a use case,
or a subsystem
• A document, such as a business case or software architecture document
• Source code
• Executables
2.1.4 Workflows
A simple record of all workers, activities and artifacts does not quite represent
a process. We need a way to describe meaningful sequences of activities that
produce some important result and to show interactions between workers. A
workflow is a sequence of activities that produces a result of observable val-
ues. In UML terms, a workflow can be articulated as a sequence diagram, a
collaboration diagram, or an activity diagram.
The Rational Unified Process is organized to reach the goal using the fol-
lowing:
• Core workflows
• Workflow details
• Iteration plans
8
Figure 2: The sequential process
9
Figure 3: Difference between sequential and iterative approach
The Rational Unified Process consists of cycles that may repeat over the
long-term life of a system. The software lifecycle is based on four phases, through
which the project evolves linearly in time. The phases are: Inception Phase,
Elaboration Phase, Construction Phase, and Transition Phase. Each of these
phases is composed of one or more iterations and follows a waterfall pattern
containing requirement elicitation, analysis, design, implementation, test, and
10
deployment, and results in a release (either internal or external) of an executable
product, which grows incrementally from iteration to iteration to become the
final system. Each phase is concluded with a well-defined milestone - a point in
time at which a certain critical decisions must be made, and therefore key goals
must have been achieved.
Lets briefly review the four phases in a cycle: for example
• Inception Phase – During the inception phase the core idea is developed
into a product vision. In this phase, we review and confirm our under-
standing of the core business drivers. We want to understand the business
case for which the project should be attempted. The inception phase
establishes the product feasibility and delimits the project scope.
• Elaboration Phase – During the elaboration phase the majority of the Use
Cases are specified in detail and the system architecture is designed. This
phase focuses on the ”Do-Ability” of the project. We identify significant
risks and prepare a schedule, staff and cost profile for the entire project.
• Construction Phase – During the construction phase the product is moved
from the architectural baseline to a system complete enough for transition
to the user community. The architectural baseline grows to become the
completed system as the design is refined into code.
• Transition Phase – In the transition phase the goal is to ensure that the
requirements have been met to the satisfaction of the stakeholders. This
phase is often initiated with a beta release of the application. Other activ-
ities include site preparation, manual completion, and defect identification
and correction. The transition phase ends with a postmortem devoted to
learning and recording lessons for future cycles.
3 Process workflow
3.1 Project Management Workflow
The purpose of the Project Management Workflow is to provide a framework
for managing risks, by practical guidance on how to plan, execute and mon-
itor projects. The project plan encapsulates the process the project should
follow, divide the problem into sub-tasks, assigning tasks to teams and setting
a timescale for each task. The plan evolves during the project’s lifecycle due
11
to monitoring and measurements of the product so far. A project plan is di-
vided into two parts, the phase plan and the iteration plan. The phase plan is a
coarse-grained plan with overall information about each of the four phases, and
should contain date of major milestones, staffing estimates for each phase an
estimation of the numbers of iterations included in each phase. Iteration plan
is the detailed plan for each iteration and should describe that exact iteration.
Each iteration plan includes
• Requirements
• Analysis and Design
• Deployment
• Test and evaluation
In each iteration you should identify tasks, tasks and sub tasks, and establish
start and end dates for each task. Gannt charts are often used to show tasks
start and end date.
Each iteration also addresses three extra workflows items.
• Monitoring and Control Project – Checking that the project is on plan
• Plan for extra iteration – Develop the plan for the next iteration
• Manage iteration – Monitors progress of the project and plans for the next
iteration, deciding when to change iteration and whether the project still
is viable.
12
• Project organization and staffing
• Monitoring and control processes
• Plan phases and iterations
• Business modelling
• Requirements
• Analysis and Design
• Implementation
• Test
• Deployment
Core Supporting Workflows
• Configuration and Change Management
• Project Management
• Environment
The Core Supporting Workflows are the administrative parts of the projects,
how to communicate within the project, the project plan and which type of
environment we are developing for and which we are developing in.
13
milestones in the project there must be a check if the project is accurate to the
ROI stated in the Business Case and if the project should be continued.
One of the major problems that can occur in Business Modelling is lack of
communication between the business engineering team and the software engi-
neering team, thus the output from business engineering is not used properly
in the software development. The Rational Unified Process address this prob-
lem by providing a common language to communicate between teams and thus
preventing this problem from occuring. The output from this workflow is doc-
umented in a Business Object-model. Business Modelling is one of the first
things you do in the project since the result of Business Cases and Return On
Investment is the information stakeholders will use to decide if the project is
worth investing in. After the project is approved other activities can start.
14
design model, which can be abstracted using three architectural views. The log-
ical view presents the decomposition of the system into a set of logical elements,
e.g. classes, subsystems, packages and collaborations. The process view maps
those elements to the processes and threads in the systems. The deployment
view maps the processes to a set of nodes on which they execute.
15
Figure 5: RUPs four phases in the analysis workflow [6]
A class is further a description of a set of objects that share the same respon-
sibilities, relationships, operations, attributes and semantics. A package is a
logical grouping of classes, perhaps for organizational purposes that reduce the
complexity of the system. A subsystem is a kind of package consisting of a set
of classes that act as a single unit to provide specific behaviors [9].
The designer defines the responsibilities, operations, attributes and relation-
ships of one or several classes and determines how they should be adjusted to
the implementation environment. In addition, the designer may have respon-
sibility for one or more design packages or design subsystems, including any
classes owned by the packages or subsystems.
Design can optionally include the following workers:
• Database designer – the database designer is needed when the system
being designed includes a database.
• Capsule designer – the capsule designer is a kind of designer who focuses on
ensuring that the system is able to respond to events in a timely manner.
• Architecture reviewer and design reviewer – these specialists review the
key artifacts produced through this workflow.
16
1. To define the code in terms of implementation subsystems organized in
layers.
3.4.1 Builds
A build is a part of a system, e.g. a subsystem that demonstrates a subset of
capabilities to be provided in the final product. During the developing process
there will be numerous builds, each helping to recognize integration problems as
soon as they are introduced. Builds are an integral part of the iterative lifecycle.
Each build is placed under configuration control in case there is a need to roll
back to an earlier version when added functionality causes breakage. Projects
generally try to produce builds at regular intervals, up to one each day, but at
least one per week toward the end of an integration.
3.4.2 Integration
Integration refers to an activity in which separate software components are com-
bined into a whole. Integration is done at several levels of the implementation
for the following purposes:
• To integrate the work of a team working with the same subsystem before
the subsystem is released to system integrators.
• To integrate subsystems into a complete system.
17
• Some parts of the system are running earlier. It is better for the morale
of developers to see early results of their work instead of waiting until the
end to test everything.
[16]
3.4.3 Prototypes
Prototypes are used in a directed way to reduce risk. A prototype is a variant of
a real product and is used to show something concrete and executable to users,
customers and managers. You can view prototypes in two ways: by what they
explore and by how they evolve [18]. In the context of the first view, there are
two main kinds of prototypes:
• Behavioral prototype, which focuses on exploring specific behavior of the
system.
• Structural prototype, which explores architectural or technological con-
cerns.
In context of the second view, there are also two kinds of prototypes:
• Exploratory prototype, which is thrown away after it is finished and you
have learned whatever you wanted from it.
• Evolutionary prototype, evolves to become the final system.
3.4.4 Workflow
Implementation is tied closely to design, and there are clear tracing links from
design elements to implementation elements, for example classes to code. The
persons playing the role as designers and implementers can either modify the
design model and regenerate the corresponding code and then alter the design
to match the modification. This closes a gap in the process and helps avoid
errors in translating the design.
18
• Identifying and ensuring that all discovered defects are addressed before
the software is deployed.
When you talk about the quality in general it means principally the absence
of defects, but if the product does not reach the wished requirement, it is as
useless as the product with a defect.
The test workflow provides the feedback mechanism for the project, enabling
quality to be measured and defects to be identified. Testing activities begin early
in the project, with test planning and some assessment occurring even in the
inception phase, and continue throughout the project.
19
Figure 6: Testing during the software development lifecycle
20
tests themselves, as well as aspects of the target-of-test that are relevant to
the testing effort. It includes the group of the test cases, test procedures, test
scripts, and expected test results along with a description of their relationships.
• Test cases – the set of test data, execution conditions, and expected test
results developed for a specific test objective. Test cases can be derived
from use cases, design documents, or the software code.
• Test procedure – the set of detailed instructions for the setup, execution,
and evaluation of test results for test case.
• Test components – the classes and components that realize the test de-
signs, including drivers and stubs.
design test The purpose is to identify, describe, and generate the test model
and its reported artifact. The design is done to ensure that the test software
meets its requirements and is structured and organized well. In the design
activity, the test designer analyzes the target-of-test and develops the test model
and, in the case of performance test, the workload model.
implement test The purpose is to implement the test procedures that were
defined in the Design Test section. The creation of test procedures usually is
done in the contest of a test automation tool or programming environment. The
output artifact is a computer-readable version of the test procedure, referred to
as a test script. If special test code (e.g., a test harness, drivers, or stubs) is
needed to support or perform testing, the designer and the implementer work
with the test designer to design and implements the test code.
21
4 Project Planning with the Rational Unified
Process
In this chapter we will take a closer look into the project planning and what
the essentials are. To some of these essentials there are recommendations from
RUP on which are the key elements that should be in the documents [14].
4.1 Introduction
If the project is viable after the project start activities we will define the project
organizational structure based on the project characteristics and external con-
straints. The recommendations from the Rational Unified Process is to define
in terms of positions, teams, responsibilities and hierarchy. We will also define
staff requirements based on effort estimates, desired schedule, chosen organiza-
tional structure and mapping of roles, the RUP recommends that you define
staff required for the project by type (skills and the domain of the project),
experience and caliber, that you adjust the software development team from its
baseline during the project lifecycle, that is while the project moves forward
different staff members are required in different positions. For example:
• In the Inception Phase the focus will be on management functions. De-
veloping the Vision, etc.
• In the Elaboration Phase the focus will be on the architecure. The staff
will consist of more designers.
• In the Construction Phase the focus will be on developments. The staff
will consist of more developers.
• In The Transition Phase the focus will be on Quality Assurance / Software
Assessment.
22
3. Develop a financial forecast including projected revenues and costs for the
project
4. Describe the project constraints that could potentially impact risk and
cost
5. Describe the options that could impact the projects success
23
• Captures very high-level requirements
• Captures design constraints
• Provides input to the project-approval process – this part is closely related
to the Business Modelling
• Problem statement – What is to be done?
The Vision also identifies stakeholders, users and what their needs are.
24
in the project timeline. Its also very important that each team member knows
what have been delivered and what will be delivered. The plan must be up to
date.
The Project Plan, or the Software Development Plan as it is called in the
Rational Unified Process, contains all information to manage the project and is
maintained throughout the project to keep it updated as it changes. The Soft-
ware Development Plan contains the schedule for the project, the resource needs
for the project and compare progress against the schedule to update members
with the actual progress of the project. Here are a list of the content of the
Software Development Plan:
• Schedule – Project Plan, Iteration Plan, Resources and Tools
• Test Cases
• Evaluation Plan
• Product Acceptance Plan
In smaller projects each part can consist of just a couple of words briefly de-
scribing each part of the content.
The Software Development Plan is a very critical part of the project. The
major activities are defining the project structure and estimating the size of the
project. IBM Rational have made an estimation of the project time by earlier
experience in software development. By their estimations, about 10
25
Figure 7: A graph showing time for each phase for a typical RUP project [11]
Inception Phase delivers for example the Vision document. Associated with
each deliverable is a workflow template which contains important aspects such
as activities, resources and other deliverables required to complete this deliver-
able, and an artifact, the document produced by the project. RUP has provided
us with some sample deliverables based on a normal RUP project.
• Business Cases - information about cost and benefits of the product
• Vision - What the product does, the market for the product and the
product main features
• Use-Case Model - Defines the systems functional requirements
26
3. Define and communicate a procedure and report frequency for project
team members to report their status.
After each iteration assess success and failures, that is, compare results to
what was expected. For example functionality, performance, capacity and qual-
ity. Also you should check if the requirements are still valid, if the goals are too
high or too low and if the features of the product are still economically justified.
After this control you might need to make some changes to the Vision document
and the risk list.
27
Figure 8: An overview of the OPEN framework [12]
has a strong focus not only on software development but also on project man-
agement [20]. OPEN combines the adaptability to construct a process to the
specific needs of an individual domain and continually adapt the process to
particular projects. This enhances the incorporation of component-based devel-
opment architectural patterns that will be increasingly in demand.
28
Figure 9: Creation routes [15]
29
by the use of possibility matrices which assist the method engineering in tailor-
ing the most high quality software development in the most efficient manner.
OPEN also suggests that you define your own project charter which contains
an agreed statement on (1) Business Statement, (2) Problem Statement, (3)
Description, (4) Context Model, (5) Methodology, (6) Project Resource Esti-
mates and Schedules, (7) Quality Assurance, (8) Implementation Review and
(9) Risk Analysis [23]. This charter is an encapsulated agreed statement on the
constraints and resources available. In contrast, in RUP all of the project man-
agement elements are grouped together as a separate project management subset
supporting workflow, which operates in parallel to the other subset workflows
and across each iteration workflow. In addition, the actual depth of support for
project management is limited. And use of non-standard project management
terminology complicates the RUP model further – for instance the use of the
word activity to mean task, i.e. the smallest unit of work. There are many areas
in RUP that show difficulties from a project management viewpoint. Ambler [24]
identifies a number of weaknesses in RUP’s support for project management:
• The neglect of several aspects of the larger scale management issues, es-
pecially maintenance and support,
• The omission of any support for reuse and cross-project capability,
• The over-dependence on existing tools (of the vendor) leads to neglect of
areas that cannot be automated,
• Weakness in areas such as metrics management, reuse management, people
management and testing,
• The linking of prototypes linked to ends of iterations providing the ability
to make go/no go decisions,
• The serious investment in software tool support (RUP is after all a tool/product
itself).
30
requirements and some risks, design a little, implement a little, validate it, and
then take on more requirements, design some more, build some more, validate,
and so on, until you are finished. This is the iterative approach.
Another problem is that the technology is changing and also the market.
New software and hardware techniques and products become known, and you
want to use and exploit them, and the competition might introduce better
products. The sequential, or waterfall, process works somewhat well on the
small projects ranging from a few weeks to a few months. On a small project
it is always clear what would happen, and on projects in which all hard aspects
were well understood, but when you work on bigger problems the sequential or
waterfall method doesnt seem quite manageable as on small projects.
The content of the above mentioned is, a specific process model could never
suite for every software projects, e.g. software projects varies in both time and
quantity. The RUP, as described in this report, is suited for greater software
projects because it contains more extensive work that would be a waste of time
in smaller projects.
31
List of Figures
1 Static structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
2 The sequential process . . . . . . . . . . . . . . . . . . . . . . . . 9
3 Difference between sequential and iterative approach . . . . . . . 10
4 RUP four phases . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
5 RUPs four phases in the analysis workflow [6] . . . . . . . . . . 16
6 Testing during the software development lifecycle . . . . . . . . . 20
7 A graph showing time for each phase for a typical RUP project
[11] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
8 An overview of the OPEN framework [12] . . . . . . . . . . . . . 28
9 Creation routes [15] . . . . . . . . . . . . . . . . . . . . . . . . . 29
10 RUP phases and OPEN:s activities [17] . . . . . . . . . . . . . . 29
32
References
[1] http://businessweek.itpapers.com/abstract.aspx?&scid=445&docid=52444
[2] Identifying Extensions Required by RUP (Rational Unified Process)
http://mdh.lub.lu.se
[3] P. Kruchten, The Rational Unified Process An Introduction Second Edi-
tion, USA, 2000, p. 171-172
[4] http://mdh.lub.lu.se/cgi-bin/ftxt/ebsco/00985589 2003 29 2 181-
193/9108494
[5] P. Kruchten, The Rational Unified Process An Introduction Second Edi-
tion, USA, 2000, p. 171-172
[6] P. Kruchten, The Rational Unified Process An Introduction Second Edi-
tion, USA, 2000, p. 170-171
[7] http://www.softwaretesting.nildram.co.uk/cont542.htm
[8] http://www.awprofessional.com/article/printerfriendly.asp?p=30317
[9] P. Kruchten, The Rational Unified Process An Introduction Second Edi-
tion, USA, 2000, p. 174-175
[10] A. Cockbum, Selecting a projects methodology, IEEE Software 17 (4)
(2000) 84-85
[11] ”Planning Project with the Rational Unified Process”,
http://www.rational.com
[12] A. Cockbum, Selecting a projects methodology, IEEE Software, 2000, p.
68
[13] P. Kruchten, The Rational Unified Process An Introduction Second Edi-
tion, USA, 2000, p. 184
[14] ”The Ten Essentials of RUP”, http://www.rational.com
[15] B. H-Sellers, D.G Firesmith, I. Graham, A.J.H Simons, Instantiating the
process metamodel, 1999, p 53
[16] P. Kruchten, The Rational Unified Process An Introduction Second Edi-
tion, USA, 2000, p. 185
[17] H-Sellers, D.G Firesmith, I. Graham, A.J.H Simons, Instantiating the pro-
cess metamodel, 1999, p 56
[18] B. H-Sellers, D.G Firesmith, I. Graham, A.J.H Simons, Instantiating the
process metamodel, 1999 p 102
33
[19] A. Cockbum, Selecting a projects methodology, IEEE Software, 2000, p
64-71
34