Rational Unified Process

The Rational Unified Process(RUP) is an iterative software design method created by the Rational Software Corporation, now a division of IBM. It describes how to deploy software effectively using commercially proven techniques. It is not a rigid process but a process framework or meta-model. It encompasses a large number of different activities, and is designed to be tailored, in the sense of selecting only the needed features suited for a particular software project, considering its size and type. It is recognized to be particularly applicable to larger software development teams working on large projects.

Contents

Background of the Rational Unified Process

The writers or developers of this software engineering process focused on diagnosing the characteristics of different software projects that failed; by doing this they tried to recognize what the common aspects were that made these software projects fail. They also looked at the existing software engineering processes and their solutions for these symptoms that caused the failure of these projects.

The symptoms are:

  • Ad hoc requirements management
  • Ambiguous and imprecise communication
  • Brittle architecture
  • Overwhelming complexity
  • Undetected inconsistencies in requirements, designs, and implementations
  • Insufficient testing
  • Subjective assessment of project status
  • Failure to attack risks
  • Uncontrolled change propagation
  • Insufficient automation

Project failure is caused by a combination of several symptoms, though each project fails in a unique way. The outcome of their study was a system of software best practices they named the Rational Unified Process. Since knowing these problems will not guarantee a successful software product unless the solutions are also considered, they went on to create the Ration Unified Process Product (RUPP).

The Process was designed with the same techniques the team used to design software; it has an underlying object-oriented model, using Unified Modeling Language UML.


Overview of the Rational Unified Process

Missing image
Overview.jpg
Overview of the RUP


Looking at the Overview screen on the RUPP shows you a high level view of the Process. The chart identifies which disciplines are the most active during each phase of the process. For example, the red shape labeled Business Modeling shows heavy activity only in the Inception and Elaboration phases, where as the blue shape representing Project Management shows a more graduated activity over the life of the Process.


The Rational Unified Process overview shows the process structure from two viewpoints:

  • The vertical axis of the picture on the right frame represents the static aspects of the RUP. From this view the process is described in activities, artifacts, workers and workflows.
  • The horizontal axis represents time and the dynamic aspects of the RUP. From this point of view the process is described in cycles, phases, iterations, and milestones.

Using the RUP, software product lifecycles are broken into individual development cycles. These cycles are further broken into their main components, called phases. In RUP, these phases are called:

  • Inception
  • Elaboration
  • Construction
  • Transition


The Inception Phase

Missing image
Inception.JPG
The inception phase

In this phase the business case which includes business context, success factors (expected revenue, market recognition, etc), and financial forecast is established. To complement the business case, a basic use case model, project plan, initial risk assessment and project description (the core project requirements, constraints and key features) are generated. After these are completed, the project is checked against the following criteria:

  • Stakeholder concurrence on scope definition and cost/schedule estimates.
  • Requirements understanding as evidenced by the fidelity of the primary use cases.
  • Credibility of the cost/schedule estimates, priorities, risks, and development process.
  • Depth and breadth of any architectural prototype that was developed.
  • Actual expenditures versus planned expenditures.

If the project does not pass this milestone, called the Lifecycle Objective Milestone, it can either be cancelled, or can repeat this phase after being redesigned to better meet the criteria.


The Elaboration Phase

Missing image
Elaboration.JPG
Elaboration phase

The Elaboration phase is where the project really starts to take shape. In this phase the problem domain analysis is made and the architecture of the project gets its basic form.

This phase must pass another Lifecycle Architecture Milestone by meeting the following criteria:

  • A use-case model in which the use-cases and the actors have been identified and most of the use-case descriptions are developed. The use-case model should be 80% complete.
  • A description of the software architecture in a software system development process
  • Architecture prototype, which can be executed.
  • Business case and risk list which are revised.
  • A development plan for the overall project.

If the project cannot pass this milestone, there is still time for it to be cancelled or redesigned. After leaving this phase, the project transitions into a high-risk operation where changes are much more difficult and detrimental when made.


The Construction Phase

Missing image
Construction.JPG
Construction phase

In this phase the main focus goes to the development of components and other features of the system being developed. This is the phase when the actual coding takes place.

This phase produces the first release of the software which serves as its milestone.


The Transition Phase

Missing image
Transition.JPG
Transition phase

In the transition phase the product has moved from the development organization to the end user. The activities of the phase include: Training of the end users and maintainers, Beta testing of the system to validate it against the end users expectations. The product is also checked against the quality level set in the Inception phase. If it does not meet this level, or the standards of the end-users, the entire cycle begins again.


Iterations

A typical project using the RUP will go through several iterations of the four phases. Dividing the project into iterations has advantages, such as risk mitigation, but is also needs more guidance and effort that the traditional sequential approach. The RUP defines a Project Management Workflow and sub-workflows that guide the project manager through iteration management. Using iterations, a project will have one overall phase plan, but multiple iteration plans.

The example below depicts the difference between the traditional sequential waterfall method and the smaller steps in the iteration model.


Missing image
Iterative.JPG
R: Requirements analysisD: DesignC: Coding, Unit testingT: Integration, Test


Milestones

In RUP there are four major milestones that correspond to the four phases. If the milestone criteria are not met the project can be stopped or run in a new iteration to revisit the bottlenecks.

This meta-model of a milestone emphasizes the links between phases, iterations and milestone completion.

Missing image
Meta3.JPG
Milestones


Static aspects of the RUP

The static aspect of the Process describes who is doing what, when, and how they are doing it.

  • Workers are who – a worker is the behavior and responsibilities of a person or team, not the person themselves.
  • Artifacts are what – they are the outcome of activities, including all the documents and models produced while working through the process.
  • Workflow is when – it is a sequence of activities or the design of processes that must be completed.
  • Activity is how – it is the actual tasks a worker performs.

This side of the process is called static because it describes how things are done. It is not dependent on the project at hand. For example, the description of the tasks and deliverables of a use-case designer is the same for each project.


Workflows

A workflow can be any sequence of activities. The RUP organizes workflows in to three types:

  • Core workflows
  • Workflow details
  • Iteration plans

In RUP all workers and activities are divided into nine Core workflows by type:

Engineering

  • Business Modeling Workflow
  • Requirements Workflow
  • Analysis & Design Workflow
  • Implementation Workflow
  • Test Workflow
  • Deployment Workflow

Supporting

  • Configuration and Change Management Workflow
  • Project Management Workflow
  • Environment Workflow


The following illustration shows two sequences of activities as workflows. The arrows depict the dependencies between the two workflows.

Missing image
Workflow.JPG
Workflow


Business Modeling workflow

The aim of business modeling is to establish a better understanding and communication channel between business engineering and software engineering. Understanding the business means that software engineers must understand the structure and the dynamics of the target organization (the client), the current problems in the organization and possible improvements. They must also ensure a common understanding of the target organization between customers, end users and developers.

The RUP's business modeling workflow explains how to describe a vision of the organization in which the system will be deployed and how to then use this vision as a basis to outline the process, roles and responsibilities.

Why Business Modeling?

Organizations are becoming more and more dependent on IT systems, making it imperative that information system engineers know how the applications they are developing fit into the organization. Businesses invest in IT when the understand the competitive advantage and value added by the technology.

The internet hype is driving the importance of business modeling when developing software products. Thanks to the internet it is now possible for companies to offer their products and services to markets without geographical obstacles. Companies that want to take advantage of these opportunities must automate their business process. (Companies purchasing raw materials and parts on the internet or those trying to sell their products through e-commerce are examples.)

Best Practices of RUP

  1. Develop software iteratively
  2. Manage requirements
  3. Use component based architecture
  4. Visually model software
  5. Verify software quality
  6. Control changes to software

Develop software iteratively

Given the time it takes to develop large sophisticated software systems it is not possible to define the problem and build the solution in a single step. Requirements will often change throughout a project's development, due to architectural constraints, customer's needs or a greater understanding of the original problem. Iteration allows the project to be successively refined and addresses a project's highest risk items as the highest priority task. Ideally each iteration ends up with an executable release – this helps reduce a project's risk profile, allows greater customer feedback and helps developers stay focused.

The RUP uses iterative and incremental development for the following reasons:

  • Integration is done step by step during the development process, limiting it to fewer elements.
  • Integration is less complex, making it more cost effective.
  • Parts are separately designed and/or implemented and can be easily identified for later reuse.
  • Requirement changes are noted and can be accommodated.
  • Risks are attacked early in development since each iteration gives the opportunity for more risks to be identified.
  • Software architecture is improved by repeated scrutiny.

Manage requirements

Requirements Management in RUP is concerned with meeting the needs of end users by identifying and specifying what they need and identifying when those needs change. Its benefits include the following:

  • The correct requirements generate the correct product; the customer's needs are met.
  • Necessary features will be included, reducing post-development cost.

The Rational Unified Process implemented a section about requirements management because they believe that managing requirements improves the chance of success of a software development project.

Use component based architecture

Component Based Architecture creates a system that is easily extensible, promotes software reuse and intuitively understandable. A component often relates to an object in Object-oriented programming.

Software Architecture is increasing in importance as systems are becoming large and more complex.. RUP focuses on producing the basic architecture in early iterations. This architecture then becomes a prototype in the initial development cycle. This architecture evolves with each iteration to become the final system architecture. RUP also asserts design rules and constraints to capture architectural rules. By developing iteratively it is possible to gradually identify components which can then be developed, bought or reused. These components are often assembled within existing infrastructures such as CORBA and COM, or J2EE.

Visually model software

Abstracting your programming from its code and representing it using graphical building blocks is an effective way to get an overall picture of a solution. Using this representation, technical resources can determine how best to implement a given set of inter-related logics. It also builds an intermediary between the business process and actual code through information technology. A model in this context is a visualization and at the same time a simplification of a complex design. RUP specifies which models are necessary and why.

The Unified Modeling Language (UML) which is also developed by Rational Software can be used for modeling Use-Cases, Class diagrams and other objects. RUP also discusses other ways to build models.

Verify software quality

Quality Assessment is the most common failing point of all software projects, since it is often an afterthought and sometimes even handled by a different team. RUP assists in planning quality control and assessment by building it into the entire process and involving all members of a team. No worker is specifically assigned to quality; RUP assumed that each member of the team is responsible for quality. The process focuses on meeting the expected level of quality and provides test workflows to measure this level.

Control changes to software

In all software projects, change is inevitable. RUP defines methods to control, track and monitor changes. RUP also defines secure workspaces, guaranteeing a software engineer's system will not be affected by changes in another system. This concept ties in heavily with component based architectures.

With the iterative approach, the need for change management is even more necessary because of the sheer volume of artifacts developed. These artifacts will also need to be updated as the iterations evolve. The Change Management workflow in RUP deals with three specific areas:

  • Configuration Management
  • Change Request Management
  • Status and Measurement Management

Configuration Management

Configuration management is responsible for the systematic structuring of the products. Artifacts such as documents and models need to be placed under version control and these changes must be visible. It also keeps track of dependencies between artifacts so all related articles are updated when changes are made.

Change Request Management

During the system development process many artifacts with several versions exist. CRM keeps track of the proposals for change.

Status and Measurement Management

Change requests have states such as new, logged, approved, assigned and complete. A change request also has attributes such as root cause, or nature (like defect and enhancement), priority etc. These states and attributes are stored in database so useful reports about the progress of the project can be produced.


Limitations

The RUP is an interesting process. It was one of the first mainstream iterative processes and legitimized the Unified Modeling Language, as a common way of describing applications in books and documents.

Rational Software has a business model to go with the process. To use RUP effectively, you needed to buy the RUP methodology and tools, including the Rational Rose design tool. Paying for consultancy was also encouraged. The RUP methodology itself was iterative: new versions come out regularly, with the appropriate upgrade costs.

As such, adopting RUP can be expensive and is generally used only by businesses with heavy software development budgets. It is most often seen with mission-critical software, such as aerospace, defense or telecomm software, or enterprise applications in which management has a significant fear of disaster. It is not often used for open source projects, fast moving teams, or organizations on a smaller budget.

RUP is also inordinately document centric. It may iterate, but there is still a considerable amount of up-front planning, designing, documenting. Many of the RUP artifacts are pieces of paper.

Alternate approaches within the field of software engineering include:

The Rational Unified Process Product

The Rational Unified Process Product(RUPP) is a web-enable set of tools that define the Process. The fundamentals of the Process are the implementation of the six best practices. By implementing iterative development, requirements management, component-based architecture, visual modeling software, software quality verification, and controlling software changes the RUP tries to prevent failure by attacking the root causes of project failure.

The RUPP documents process implementation for teams and project managers. It also outlines processes for the software engineers, describes which products (artifacts) should be produced and provides tools and templates to enhance the management process. In RUPP there are guidelines for all processes that lead to producing an artifact. With IBM's purchase of the company, IBM Global Services will sell the tools, now integrated with the [[Eclipse (computing)|Eclipse] IDE, and the consultancy. Tight integration with that Java development platform may make it a very effective development tool. Its pricing, however, will keep it beyond the reach of most developers.


See also

External links

pt:Rational Unified Process zh:Rational统一过程

Navigation

  • Art and Cultures
    • Art (https://academickids.com/encyclopedia/index.php/Art)
    • Architecture (https://academickids.com/encyclopedia/index.php/Architecture)
    • Cultures (https://www.academickids.com/encyclopedia/index.php/Cultures)
    • Music (https://www.academickids.com/encyclopedia/index.php/Music)
    • Musical Instruments (http://academickids.com/encyclopedia/index.php/List_of_musical_instruments)
  • Biographies (http://www.academickids.com/encyclopedia/index.php/Biographies)
  • Clipart (http://www.academickids.com/encyclopedia/index.php/Clipart)
  • Geography (http://www.academickids.com/encyclopedia/index.php/Geography)
    • Countries of the World (http://www.academickids.com/encyclopedia/index.php/Countries)
    • Maps (http://www.academickids.com/encyclopedia/index.php/Maps)
    • Flags (http://www.academickids.com/encyclopedia/index.php/Flags)
    • Continents (http://www.academickids.com/encyclopedia/index.php/Continents)
  • History (http://www.academickids.com/encyclopedia/index.php/History)
    • Ancient Civilizations (http://www.academickids.com/encyclopedia/index.php/Ancient_Civilizations)
    • Industrial Revolution (http://www.academickids.com/encyclopedia/index.php/Industrial_Revolution)
    • Middle Ages (http://www.academickids.com/encyclopedia/index.php/Middle_Ages)
    • Prehistory (http://www.academickids.com/encyclopedia/index.php/Prehistory)
    • Renaissance (http://www.academickids.com/encyclopedia/index.php/Renaissance)
    • Timelines (http://www.academickids.com/encyclopedia/index.php/Timelines)
    • United States (http://www.academickids.com/encyclopedia/index.php/United_States)
    • Wars (http://www.academickids.com/encyclopedia/index.php/Wars)
    • World History (http://www.academickids.com/encyclopedia/index.php/History_of_the_world)
  • Human Body (http://www.academickids.com/encyclopedia/index.php/Human_Body)
  • Mathematics (http://www.academickids.com/encyclopedia/index.php/Mathematics)
  • Reference (http://www.academickids.com/encyclopedia/index.php/Reference)
  • Science (http://www.academickids.com/encyclopedia/index.php/Science)
    • Animals (http://www.academickids.com/encyclopedia/index.php/Animals)
    • Aviation (http://www.academickids.com/encyclopedia/index.php/Aviation)
    • Dinosaurs (http://www.academickids.com/encyclopedia/index.php/Dinosaurs)
    • Earth (http://www.academickids.com/encyclopedia/index.php/Earth)
    • Inventions (http://www.academickids.com/encyclopedia/index.php/Inventions)
    • Physical Science (http://www.academickids.com/encyclopedia/index.php/Physical_Science)
    • Plants (http://www.academickids.com/encyclopedia/index.php/Plants)
    • Scientists (http://www.academickids.com/encyclopedia/index.php/Scientists)
  • Social Studies (http://www.academickids.com/encyclopedia/index.php/Social_Studies)
    • Anthropology (http://www.academickids.com/encyclopedia/index.php/Anthropology)
    • Economics (http://www.academickids.com/encyclopedia/index.php/Economics)
    • Government (http://www.academickids.com/encyclopedia/index.php/Government)
    • Religion (http://www.academickids.com/encyclopedia/index.php/Religion)
    • Holidays (http://www.academickids.com/encyclopedia/index.php/Holidays)
  • Space and Astronomy
    • Solar System (http://www.academickids.com/encyclopedia/index.php/Solar_System)
    • Planets (http://www.academickids.com/encyclopedia/index.php/Planets)
  • Sports (http://www.academickids.com/encyclopedia/index.php/Sports)
  • Timelines (http://www.academickids.com/encyclopedia/index.php/Timelines)
  • Weather (http://www.academickids.com/encyclopedia/index.php/Weather)
  • US States (http://www.academickids.com/encyclopedia/index.php/US_States)

Information

  • Home Page (http://academickids.com/encyclopedia/index.php)
  • Contact Us (http://www.academickids.com/encyclopedia/index.php/Contactus)

  • Clip Art (http://classroomclipart.com)
Toolbox
Personal tools