Information AboutRup |
| CATEGORIES ABOUT IBM RATIONAL UNIFIED PROCESS | |
| ibm software | |
| rational clearquest | |
| project management | |
|
The Rational Unified Process ('''RUP''') is an Iterative Software Development Process framework created by the Rational Software Corporation, a division of IBM since 2002. RUP is not a single concrete prescriptive process, but rather an adaptable process Framework , intended to be tailored by the development organizations and software project teams that will select the elements of the process that are appropriate for their needs. The Rational Unified Process is also a software process product, originally developed by Rational Software, and now available from IBM. The product includes a hyperlinked knowledge base with sample Artifacts and detailed descriptions for many different types of activities. RUP is included in the IBM Rational Method Composer (RMC) product which allows customization of the process. The Unified Process was designed from the start to include both a generic, public domain process (known as the Unified Process ), and a more detailed specification known as the ''Rational Unified Process'' which could be marketed as a commercial product. BACKGROUND History of RUP The roots of Rational Process go back to the original Spiral Model of Barry Boehm . The Rational Approach was developed at Rational Software in the 1980s and 1990s. In 1995 Rational Software acquired the Swedish Company Objectory AB . The Rational Unified Process was the result of the merger of the Rational Approach and the Objectory process developed by Objectory founder Ivar Jacobson . The first results of that merger was the Rational Objectory Process , designed to an Objectory-like process, but suitable to wean Objectory users to the Rational Rose tool. When that goal was accomplished, the name was changed. The first version of the Rational Unified Process, version 5.0, was released in 1998. The chief architect was Philippe Kruchten . The latest version of RUP (7.0) was released with the announcement {Link without Title} of the IBM Rational Method Composer in November 2005. Design The creators and developers of the process focused on diagnosing the characteristics of different failed software projects; by doing so they tried to recognize the root causes of these failures. They also looked at the existing software engineering processes and their solutions for these symptoms. A representative list of failure causes includes the following:
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 Practice s they named the Rational Unified Process. 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). 6 KEY PRINCIPLES OF BUSINESS-DRIVEN DEVELOPMENT RUP is based on a set of six key principles for business-driven development : # Adapt the process # Balance stakeholder priorities # Collaborate across teams # Demonstrate value iteratively # Elevate the level of abstraction # Focus continuously on quality Adapt the process A project or organization must right-size the process to their needs. For example, governance, size of the project, regulations etc, drive the degree of formality used in a project. RUP provides pre-configured process templates for small, medium and large projects, which can be used for easier adoption. The ceremony of the process should reflect the goals of the RUP phases. Adapting a process also encourages the continuous improvement of a process in an organization. Balance stakeholder priorities This key principle widens the discussion from a pure software requirements point of view, to a higher discussion. This includes business goals and stakeholder needs. Often, they compete and conflict, which needs to be balanced out between the parties involved. Collaborate across teams Software engineering is a team effort. With a broad variety of stakeholders, all voices need to be heard. With the increasing demand of globally distributed development, collaboration is enabled through modern communication tools. The collaboration is not limited to requirements, but includes exchange of metrics, test results, release management and project plans. That is especially true for RUP projects which are executed in an iterative-incremental approach. Demonstrate value iteratively Projects are delivered, even though often only internally, in increments in an iterative fashion. The increment, which includes the value of the past iteration, is used to measure the progress of the project. That increment is also used to encourage feedback from stakeholders about the direction of the project. This allows projects to adjust to changed situations based on the feedback. The stakeholders on the other side, can influence the shape of the development effort while the project is executed. The combination of the iterative development and the focus on risks in RUP, allows projects an iterative risk-assessment. Elevate the level of abstraction This key principle motivates the use of reusable assets such as Software Pattern , 4GL or Framework to name a few. This prevents software engineers going directly from the requirements to custom-made software code. A higher level of abstraction also allows discussions on different architectural levels. These can be accompanied by visual representations of the architecture, for example using UML . Focus continuously on quality Quality checks are not only at the end of each iteration but a continuous ongoing activity in the software engineering project, often performed in a daily rhythm supported by the entire team. Automating test scenarios (scripts) helps in dealing with the increasing amount of tests due to iterative development.UML PROJECT LIFECYCLE The RUP lifecycle is an implementation of the Spiral Model . It has been created by assembling the content elements into semi-ordered sequences. Consequently the RUP lifecycle is available as a Work Breakdown Structure , which could be customized to address the specific needs of a project. The RUP lifecycle organizes the tasks into phases and iterations. A project has four phases:
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:
If the project does not pass this Milestone , called the Lifecycle Objective Milestone, it can either be cancelled or it can repeat this phase after being redesigned to better meet the criteria. Elaboration phase The elaboration phase is where the project 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 the Lifecycle Architecture Milestone by meeting the following criteria:
If the project cannot pass this milestone, there is still time for it to be canceled or redesigned. After leaving this phase, the project transitions into a high-risk operation where changes are much more difficult and detrimental when made. Construction phase In this phase, the main focus goes to the development of components and other features of the system being designed. This is the phase when the bulk of the coding takes place. In larger projects, several construction iterations may be developed in an effort to divide the Use Cases into manageable segments that produce demonstrable prototypes. This phase produces the first external release of the software. Its conclusion is marked by the Initial Operational Capability Milestone. Transition phase In the transition phase, the product has moved from the development organization to the end user. The activities of this phase include training of the end users and maintainers and 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 in this phase begins again. If all objectives are met, the Product Release Milestone is reached and the development cycle ends. DISCIPLINES AND WORKFLOWS RUP is based on a set of building blocks, or content elements, describing what is to be produced, the necessary skills required and the step-by-step explanation describing how specific development goals are achieved. The main building blocks, or content elements, are the following:
Within each iteration, the tasks are categorized into nine Disciplines: Engineering Disciplines:
Supporting Disciplines:
Business modeling discipline Organizations are becoming 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 they understand the competitive advantage and value added by the technology. The aim of business modeling is to first 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. Business modeling 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. Requirements discipline The goal of the Requirements discipline is to describe what the system should do and allows the developers and the customer to agree on that description. To achieve this, analysts elicit, organize, and document required functionality. Analysis and design discipline The goal of analysis and design is to show how the system will be realized in the implementation phase. The aim is to build a system that:
Analysis and design results in a design model and optionally an analysis model. The design model serves as an abstraction of the source code; that is, the design model acts as a 'blueprint' of how the source code is structured and written. The design model consists of design classes structured into packages and subsystems with well-defined interfaces, representing what will become components in the implementation. It also contains descriptions of how objects of these design classes collaborate to perform Use Cases . Implementation discipline The purposes of implementation are:
Systems are realized through implementation of components. The process describes how you reuse existing components, or implement new components with well defined responsibility, making the system easier to maintain, and increasing the possibilities to reuse. Test discipline The purposes of the Test discipline are:
The Rational Unified Process proposes an iterative approach, which means that you test throughout the project. This allows you to find defects as early as possible, which radically reduces the cost of fixing the defect. Tests are carried out along four quality dimensions: ''reliability, functionality, application performance, and system performance''. For each of these quality dimensions, the process describes how you go through the test lifecycle of planning, design, implementation, execution and evaluation. Deployment discipline The purpose of deployment is to successfully produce product releases, and deliver the software to its end users. It covers a wide range of activities including:
Although deployment activities are mostly centered around the transition phase, many of the activities need to be included in earlier phases to prepare for deployment at the end of the construction phase.The ''Deployment and Environment'' workflows of the Rational Unified Process contain less detail than other workflows. Configuration and Change management discipline The Change Management discipline in RUP deals with three specific areas:
Configuration management Configuration management is responsible for the systematic structuring of the products. Artifacts such as documents and models need to be 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. Rational also has a product to maintain change requests called ClearQuest . This activity has procedures to be followed. Project management discipline Project planning in the RUP occurs at two levels. There is a coarse-grained or Phase plan which describes the entire project, and a series of fine-grained or '''Iteration''' plans which describe the iterations. This discipline focuses mainly on the important aspects of an iterative development process:
However, this discipline of the Rational Unified Process (RUP) does not attempt to cover all aspects of project management. For example, it does not cover issues such as:
The project management discipline contains a number of other Plans and '''Artifacts''' that are used to control the project and monitoring its performance such Plans are:
Phase plan Each Phase is treated as a project, controlled and measured by the '''Software Development Plan''' which is grouped from a subset of monitoring plans:
Iteration plan The iteration plan is a fine-grained plan with a time-sequenced set of activities and tasks, with assigned resources, containing task dependencies, for the iteration. There are typically two iteration plans active at any point in time.
Therefore there are often two such plans: one for the current iteration and one under construction for the '''next iteration'''. To define the contents of an iteration you need:
These lists must be ranked. The objectives of an iteration should be aggressive so that when difficulties arise, items can be dropped from the iterations based on their ranks. Therefore there is a set of supported Artifacts that help in measuring and building each iteration plan Work Product (Artifact) IBM has replaced the term "artifact" with the term "work product". The work products used are:
Environment discipline The environment discipline focuses on the activities necessary to configure the process for a project. It describes the activities required to develop the guidelines in support of a project. The purpose of the environment activities is to provide the software development organization with the software development environment-both processes and tools-that will support the development team. The Environment discipline workflow is broken down into three main steps: Prepare Environment for Project Preparing the development environment for a project means turning the underlying development process into an enactable project-specific development process. This involves :
Prepare Environment for an Iteration The purpose of this workflow detail is to ensure that the project environment is ready for the upcoming iteration. This includes process and tools. This work is focused mainly on:
Support Environment During an Iteration support the developers in their use of tools and process during an iteration.This includes installation of required software, ensuring that the hardware is functioning properly and that potential network issues are resolved without delays. THE IBM RATIONAL METHOD COMPOSER PRODUCT The IBM Rational Method Composer (RMC) is a commercial product (built on top of Eclipse ) for authoring, configuring, viewing, and publishing processes. The RUP process framework within IBM Rational Method Composer includes:
RMC has two main purposes:
In additional to full RUP, RMC provides RUP plug-ins (extensions to the RUP content that can only be installed on top of RUP) for important areas such as service-oriented architectures (RUP for SOA), systems engineering (RUP SE), packaged application development ( RUP for COTS ), program and portfolio management, etc. New delivery processes are added frequently and are made available via the IBM developerWorks Website . There is an open source version of IBM RMC created as part of the Eclipse Process Framework (EPF) project. The EPF tool contains full process authoring and publishing capabilities. The main difference between EPF and the Rational Method Composer tool is the lack of integrations with other IBM Rational tools such as Rational Portfolio Manager and Rational Software Architect as well as lack of a migration capability from Rational Process Workbench. EPF comes with OpenUP/Basic , a new agile process for small teams applying RUP principles and practices. CERTIFICATION In January 2007, the new RUP certification examination for ''IBM Certified Solution Designer - Rational Unified Process 7.0'' was released which replaces the previously called ''IBM Rational Certified Specialist - Rational Unified Process''[http://www-128.ibm.com/developerworks/rational/library/jan07/krebs/index.html]. -save- The new examination will not only test knowledge related to the RUP content but also to the process structure elements[http://www-03.ibm.com/certify/certs/38008003.shtml] LIMITATIONS If the users of RUP do not understand that RUP is a process framework, they may perceive it as a weighty and expensive process. RUP was not intended, not envisioned and not promoted to be used straight “out of the box.” The IBM Rational Method Composer product has been created to address this limitation and help process engineers and project managers customize the RUP for their project needs. OpenUP/Basic , the lightweight and open source version of RUP, is another attempt to address this limitation. As the RUP must be customized for each project by a RUP process expert, the project's overall success is highly dependent on the abilities of this one person. SEE ALSO Refinements and variations
Alternative frameworks Alternate approaches within the field of software engineering include:
Software engineering
BOOKS
Ahmad Shuja, Jochen Krebs {Link without Title}
Per Kroll, Bruce MacIsaac {Link without Title}
Per kroll {Link without Title}
Ivar Jacobson , Grady Booch , and James Rumbaugh {Link without Title}
Philippe Kruchten {Link without Title} 2003: 3rd ed: {Link without Title} EXTERNAL LINKS
|
|
|