Rational_Unified_Process_(RUP)

advertisement
Rational Unified Process (RUP): A new way to look at Project
Development Life Cycle
Abstract:
The paper highlights the key concept of the iterative process of the software development
lifecycle- IBM Rational Unified Process (RUP) and the difference with Waterfall
methodology. Based on writer’s experiences with both of the Software development
lifecycle, the paper unfolds the basic difference of these methodologies along with
explaining RUP Iteration, which is time boxed mini Waterfall methodology, with the
chance of revisiting the methodology at the end of each cycle. The paper also moves
along explaining the description of the disciplines, artifacts with respective roles along
with what these artifacts capture as it progresses.
1
What is Project and how does the Project get started:
Project usually can be formulated by a company’s internal and external needs and
activities such as ‘Strategic Initiative’ which in other words part of Company’s Strategic
Plan, company’s business unit initiative, regulatory or compliance requirement,
information technology improvement and maintenance etc. There are several general
steps ‘an idea’ goes through prior it is being approved:
 Formulate an idea or concept
 Gain Management Support/Sponsorship
 Develop an appropriate Business Case
 Obtain resource commitments
 Begin project and follow chosen methodology
Software Project Life Cycle and difference between the methodologies:
“The Project Life Cycle refers to a logical sequence or stages of activities to accomplish
the project’s goals or objectives.” (Visitask, 2010) Waterfall and Rational Unified
Process (RUP) are two proven but very different methodologies for initiating and
managing projects in order to ensure successful on time implementation of a project
within budget and with expected functionality. The key difference between Waterfall
methodologies and RUP can be segmented in few practices.
2
RUP is an Iterative Development process where the team builds the system in smaller
portion focusing on the risk early. Each smaller portion which is called ‘iteration’ is a
mini-waterfall method resulting in an executable portion of the system. Waterfall on the
other hand focuses on to complete everything in succession. Finish the requirements, and
then design the system, then code and then test. Below figure shows how feedback loop
is confined to the previous step.
Figure 1 Disciplines in Waterfall model (Wapedia. 2011).
Also in RUP Risk management is critical to where as Risk Management minimally
influence the process in Waterfall method.
RUP also is a ‘Use Case driven’ methodology for capturing requirement where Use
Cases are usually description of the function in narrative, plain English of the primary
input and in Waterfall requirements often contain design and implementation
information and most cases requirement captured in declarative statement. (Idiom
Software Ltd .2011)
Also in Waterfall method requirement specs are very large and stand on its own. It is very
inefficient to track from lower to higher level of detail. In RUP details unfolds as
3
progressive level where successive level provides more depth than the previous level
.Also test cases can be traced to the requirements they validate.
What is RUP:
RUP is the short form of IBM Rational Unified Process which focuses on performing all
of the software development tasks in smaller time segment referred to as iterations. The
iterations move through phases that have specific goals. RUP is supported by the use of
the Rational tool set.
RUP is based on following practices:
 Develop software iteratively
 Manage Use Cases and requirements
 Use component based architecture
 Model software visually
 Verify software quality
 Control changes to software (IBM Developer Works.2004)
Below Figure 2 references Phases, Disciplines and Iterations within RUP. Each discipline
is expressed in terms of roles (who performs the task), activities (how they perform these
tasks), and artifacts (what the activity achieves). A role defines the behavior and
responsibilities of an individual, or a group of individuals, responsible for activities and
artifacts. (IBM Developer Works.2004)
4
Figure 2: Phases, disciplines and iterations in RUP (IBM Corporation.2007)
Disciplines:

Business Modeling: The modeling techniques which is used to define business
processes.

Requirements: The technique of eliciting stakeholder requests and transforming
them into set of requirements that provides the scope for the project the system to
be built and provide detailed requirements for what the system must do.

Analysis and design: The process of transforming Requirements into the
specifications for the design of the software the project will develop.

Implementation: The process of developing, organizing, and unit testing and
integrating the components implemented based on design specifications.
5

Test: The process of evaluating and assessing the product quality.

Deployment: The activities associated with ensuring that the software product is
available for its users.

Configuration and change management: The process of controlling and
synchronizing the creation of the set of work products composing a software
system.

Project Management: Activities that focus on project planning, risk management,
monitoring progress and metrics.

Environment: The management of the software development environment that
supports the development team, including both processes and tools.
Phases and Iterations:
RUP is composed of four phases. Inception, Elaboration, Construction and Transition.
Since RUP follows an iterative approach, a phase may consist of one or more iterations.
Inception:
Inception is Lifecycle Objective Milestone of the project where project team and stake
holders agree on scope via Vision & Outlined Use Cases, Use Case Prioritization Matrix
have been drawn where roughly 20% of requirements have been detailed.
Goal: to achieve concurrence among all stakeholders on the objective of the project. The
phase is important for both new development and enhancements; however there is more
emphasis on this phase for new development efforts.
6
The major objectives of the Inception phase are –

Establishing the project’s software scope and boundary conditions,
including an operational vision, acceptance criteria and what is intended to
be the product and what is not.

Discerning the criteria use cases of the system: the primary scenarios of
the operation that will drive the outcomes of the project.

Estimating the overall cost and schedule for the project in high-level.

Estimating potential risk or sources of unpredictability.

Preparing the supporting environment for the project.
Elaboration:
Lifecycle Architecture Milestone of the project where candidate architecture has been
completed and technical risk mitigated. 80% to90% of requirements has been detailed in
this phase.
Goal: to baseline the architecture and design of the system to provide a stable basis for
the bulk of the development effort in the next phase, Construction.
The major objectives of this phase are –

To ensure that the architecture, requirements and plans are stable enough
and the risks sufficiently mitigated to be able to predictably determine the
cost and schedule for the completion of the development. For most
projects passing this milestone also corresponds to the transition from a
7
light-and-fast, low-risk operation to a high cost and high risk operation
with a substantial organizational inertia.

To address all architecturally significant risks of the project

To establish a base lined architecture which typically exposes the top
technical risks of the project.

To produce an evolutionary prototype of production quality components,
as well as possibly one or more exploratory, throw-away prototypes to
mitigate specific risks.

To demonstrate that the baselines architecture will support the
requirements of the system at a reasonable cost and in reasonable time.

To establish a supporting environment.
Construction:
This phase produces the product with Initial Operational Capability. Product is working
in this phase and system test completed.
Goal: to clarify the remaining requirements and completing the development of the
system based upon the base lined architecture.
The major objectives of this phase are –

To minimize development costs by optimizing resources and avoiding
unnecessary scrap and rework.

Achieve adequate quality as rapidly as practical.
8

Complete the analysis, design, development and testing of all required
functionality.

To iteratively and incrementally develop a complete product that is ready
to transition to its user community.

To decide if the software, the sites and the users are all ready for the
application to be deployed.
Transition:
In this phase Product is completed and waiting for release.
Goal: to ensure that the software is available to users.
The major objectives of this phase are –

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.

Tuning activities such as bug fixing, enhancement for performance and
usability.

Obtaining acceptance of the final product from the stakeholders through
methods such as User Acceptance Testing (UAT).
Iterations:
The iterations are set period of time within a project in which the project team produces
a stable, executable portion of the project’s scope. Iterations are ‘time boxed’ which
9
means the schedule for an iteration should be regarded as fixed, and the scope of the
iterations content will be actively managed to meet that schedule. The number of
iterations will be determined by what is required within each phase to reach the life cycle.
Content management is mostly iteration based also early and continuous risk mitigation is
a big priority in all iteration. Iteration generally ranges from one week to three months.
Iteration also accommodate changing requirements, product improvement and refinement
facilitated in iteration, increased learning and product improvement and increased
reusability are few usability of iterations.
Artifacts:
“Artifacts are either final or intermediate work products produced and used during a
project. Artifacts capture and convey project information, and may take various shapes or
forms.” (Rational Software Corporation. 2003) To make developing a complete software
system manageable, the artifacts are organized into sets. Several artifacts can be used in a
number of disciplines. There are several Artifacts or work products required to produce
throughout the stages in Project Life Cycle. Below are the few.
Vision:
This artifact provides a high-level basis for the more detailed technical requirements that
are visible to the Stakeholders. It is written from the customers' perspective, focusing on
the features of the system and acceptable levels of quality (non-functional requirements)
Basically the Vision Work Product is the mechanism in RUP to capture the project’s
scope.
10
There are 4 key areas of the Vision:
●
Problem Statement
●
Stakeholder and User Descriptions
●
Stakeholder Needs
●
System Features
Use Case Diagram – Use Case
A Use Case is a textual specification describing the interaction between actors and the
system. The Use Case diagram provides an overview of the system's intended behavior
and intended functionality for the system. It is a visual representation of how the users of
a system interact with it.
Figure: 3 shows how Use Case diagrams receive input from Vision doc and also Use
Case diagrams contain Use Cases. (Rational Software Corporation. 2003)
11
Figure 3: Use Case Diagram (Rational Software Corporation. 2003)
Referring to figure 3 , Use Case diagram ‘the stick figure’ refers as Actor and the ‘ovals’
refer use case model element. There will be one use case model element for each
identified Use Case.
An Actor is a role that a person, another system, device, and time or clock plays when
directly interacting with the system. The Use Case is written from the Actors point of
view which describes what the system must do, not ‘how’ it will be implemented in the
system.
Supplementary Spec:
Supplementary Spec captures the system requirements that are not readily captured in the
Use Cases of the Use Case model.
Quality attributes of the system to be captured through Supplementary Specs, including:
•
Usability requirements
•
Performance requirements
•
Reliability requirements
•
Supportability requirements
Below figure 4 refers to the Supplementary Specification which captures the Technical
requirement that did not get captured in Use Case.
12
Figure 4: Supplementary Specification
Use Cases and Supplementary Specs are basically the detailed requirement for the
project. In most cases Functional and Business Rules were separated from detailed
requirement document of Waterfall model and translated into Use Case Models and
Specifications. System-wide Non Functional requirement, System-Wide Business Rules
and Design Constraints are translated into Supplementary Specifications.
The Requirements Prioritization Matrix:
The Requirements Prioritization Matrix is an Excel base Spreadsheet tool used to rank all
identified and outlined Use Cases and/or other requirements to enable iteration planning.
It has several color coded categories where it ranks the issues on the basis how much the
issues impact Use Cases/or other key requirements.
13
There are 4 categories in the Matrix:
Critically Ranked : Use Cases and/or other requirements have one or more attributes:
technical risk, domain contribution, non-functional issues, and business value.
Secondarily Ranked : Use Cases and/or other requirements support the Critical ones and
have a modest impact on architecture.
Ancillary Ranked : Use Cases and/or other requirements are of have no impact on
architecture and are of least importance to the project.
Out of Scope : Use Cases and/or other requirements are functionality that has been taken
out of scope through negotiation if trivial or a change management process if material.
The Master Test Plan and Strategy:
This Artifact facilitates the planning, control and strategic approach of the test effort. It
defines the general approach that will be employed to test the software and to evaluate
the results of that testing, and is the top-level plan that will be used by managers to
govern and direct the detailed testing work. Apart from helping to estimate the project
testing resource it also provides the visibility to the stakeholders the test effort to gain the
approval.
There are 9 key areas of the Master Test Plan and Strategy•
Purpose, Intended Audience and Scope- The purpose of this document is
to recommend and describe the testing strategies to be employed; intended
Audience is Stakeholders both internal and external and the scope such as
the functionality and usability of the intended project.
14
•
Governing Evaluation Mission : To ensure that a delivered solution meets
the business needs on an ongoing basis.
•
Target Test Items : Which parts of the project need to be tested.
•
Test stages: Type of tests needs to occur-Unit, integration, User
Acceptance, Regression etc.
•
Test Approach: How to measure the extent of testing. When to stop testing
along with test exclusion.
•
Technique: Objective of each test, required tool, success criteria, special
considerations etc.
•
Support tools, Environment: Supporting tools and the test environment
such as Database name, QA repository, End User Views.
•
Master Test Plan and Strategy Risks, Assumptions, Constraints, and
Dependencies: The Risk of every single test criteria may occur; mitigation
technique and their contingencies will be tallied in a spread sheet.
Development Case:
This Artifact is an Excel spread sheet which helps team efficiently apply RUP to their
project by making sure the project produces only Artifacts that are required and add
value. Development Case tally up the team resources’ and time required for the project
on RUP measurement that best meet their needs. RUP has different lifecycle of the
project structure that requires the deliverables and Artifacts depending on the resources
15
and time frame-Maintenance, Lite, or Full. The Development Case also associates roles
to Artifacts including sign-off and review.
Development Case captures
Which Artifacts (work products) will be used and which will not for a certain
Discipline.

Description of customized use of RUP disciplines and associated Work Products

Which Life Cycle (Inception, Elaboration, Construction, Implementation) the
Artifacts will be needed.
-When work products will be started and substantially complete

Status in terms of completion for each Artifact.

Responsibility Charting
-Responsible, Accountable, Consulted, and Informed
The Development Case helps teams avoid:
− Sacrificing quality by missing needed artifacts.
− Sacrificing cross-project communications.
− Taking unapproved shortcuts.
How to Measure Progress:
16
At the end of Inception phase the main goal is to give the Vision document a sense of
stability. The Vision document translates problem statement, stakeholder & user profiles,
stakeholder needs and the system features. To complete the Vision document all
stakeholders of the project for have to be identified, all perspectives have to be
considered and have to make sure all the features captured which solves the problem
stated. By getting Stakeholders signoff proves scope has been agreed upon.
The Requirements Prioritization Matrix prioritizes the Use Cases and Requirements. At
the end of Inception phase requirement matrix has to be in an order, all identified Use
Cases are outlined and also all Use Cases and/or other Requirements have to be ranked
based on risk. By ranking Use Cases and/or other Requirements based on risk project
manager can tally up the requirement to give the project a sense of direction and
identifies which requirement is out of scope.
To move to the next phase, project manager measures whether the first iteration for
‘Elaboration’ was planned correctly. Objectives has to be set, Milestones has to be agreed
upon by the project team, Work Products needs to be identified, Assignments has to be
Made and also Evaluation Criteria has to be Understood. That means Next iteration is
planned and project team ready to move forward.
Figure 5 shows how resource allocation inside the projects gets adjusted as the project
moves on to the next phase.
17
Figure 5: Resource under the discipline as Phases of the Project progress
After the Inception Phase, the measurement should show demonstrable progress in:

What percentage of the Use Case Scenarios has been realized?

How many planned vs. executed Test Cases are there?

What percentage of the Test Cases has been passed?
Iteration plan communicates and keeps track of the phases. The basic iteration plan
focuses on the Key Milestones of the projects, Key Objectives, Key Work Products, and
Product Planning & Assignments along with Evaluation Criteria.
1. Key Milestones: Key milestones of an iteration like iteration start and end date, dates
for to complete, reference architecture etc are tabulated in an excel sheet.
2. Key objective of the iteration: key objectives of iteration and the priority based on the
importance. Objectives such as ‘Successfully transition from inception to Elaboration18
focusing on training and mentoring sessions to meet the iteration goal’, ‘Validate
reference architecture will work as planned and Realize top ranked “critical” Use Case
scenarios’ can all have 1st priority opposed to ‘Address usability issues via user interface
prototype with User subject matter expert’ which can have lower priority.
3. Key work products: Work product like the Artifacts will get produced and maintained
in a project such as Use Cases, Supplementary Specs, and Use Case Prioritization matrix
etc will be shown in a matrix stating the current state of the documents in terms of
completeness. Notes also point out in terms of how much key elements these documents
provide.
4. Product Planning & Assignments:
Work Product Planning & Assignment provides and collects the information of the name
and description of the actual work and ‘who’ the work is assigned to, ‘what’ is the
priority level, estimated effort hours, start and end date of the task. If an assignment has a
higher priority and some other assignment is depending on the finished product of
assignment, the matrix clearly identifies the bottleneck .
5. Evaluation Criteria: Evaluation Criteria provides the percentage of the Test Cases
passed, whether the Reference Architecture been validated, Use case scenario for Plan
and design created and validated and Stake holder’s concurrence on the proto type along
with the priority.
Resource management in RUP:
19
In RUP phases (Inception, Elaboration, Construction and Transition) limit and regulate
the involvement of the project team keeping the project under a sizable budget. Since
RUP follows an iterative approach, a phase may consist of one or more iterations. Most
Cases whole project team has some part of involvement depending on what iteration and
phase the project in.
Below figure shows Team Resource distribution in different phases of the project.
Figure6: Resource distribution
Chart gives a descent idea on the Technical and Business Team involvement citing
Project Management and Analyst role as business team and Software Architect,
Developer and Tester as Technical Team. Most cases project manager has to weigh in
20
both roles. Y axis of the graph depicts the head count showing amount of involvement of
each team in a single phase of the project.
In Inception phase a significant amount of Project Manager and Analyst role can be seen
opposed to the technical roles as the work mostly emphasizes on establishing the projects
scope and building operational Vision. Most of the work at this point is due to analyzing
business side of the project. As project moves along to Elaboration and Construction
phase, more and more technical involvement (such as Software Architect, Developer and
Tester) reduces the business roles. In Transition phase Technical involvement
significantly gets reduced (apart from where End User and Beta testing takes presence) as
project waits for the release.
Conclusion:
RUP is a unique Software development process developed by Rational Corporations
which is eventually bought by IBM. Later, IBM rolled out the methodology to their
clients in different industries (such as healthcare industry) where in-house software
development needed a boost. This Iterative software development methodology also
comes with a package of software to support it. Rational Software tools (such as Rational
Clear Quest, Rational Clear Case, Test Manager) created on account of supporting the
methodology to keep this whole methodology as a single package to standardize it and to
make it a consistent approach to project development. It is grounded on current best
practices and industry standards across the application development life cycle. RUP is on
the way to replace traditional waterfall method.
21
References:
Visitask. (2010).Project Life Cycle-Project Cycle Management Retrieved June 12, 2011
from Visitask group website: http://www.visitask.com/project-life-cycle.asp
IBM Corporation (2007). IBM Rational Unified Process. Retrieved June 8, 2011, from
ftp://public.dhe.ibm.com/software/rational/web/datasheets/RUP_DS.pdf
Idiom Software Ltd (2011). Idiom and Rational Unified Process. Retrieved June 4, 2011,
from http://www.idiomsoftware.com/pdfs/IDIOM%20and%20RUP.pdf
IBM Developer Works (2004). Software Project Management -- A Mapping between
RUP and the PMBOK. Retrieved June 03, 2011 from
http://www.ibm.com/developerworks/rational/library/4721.html
Rational Software Corporation (2003). Rational Unified Process: Artifacts. Retrieved
June 14, 2011, from http://rup.hops-fp6.org/process/artifact/ovu_arts.htm
Wapedia (2011). Wiki: Waterfall model. Retrieved June 14, 2011, from
http://wapedia.mobi/en/Waterfall_model
22
Download