Unified Process
   HOME

TheInfoList



OR:

The Unified Software Development Process or Unified Process is an iterative and incremental
software development process In software engineering, a software development process is a process of dividing software development work into smaller, parallel, or sequential steps or sub-processes to improve design, product management. It is also known as a software deve ...
framework. The best-known and extensively documented refinement of the Unified Process is the Rational Unified Process (RUP). Other examples are OpenUP and
Agile Unified Process Agile Unified Process (AUP) is a simplified version of the Rational Unified Process (RUP) developed by Scott Ambler. It describes a simple, easy to understand approach to developing business application software using agile techniques and concept ...
.


Overview

The Unified Process is not simply a process, but rather an extensible framework which should be customized for specific organizations or projects. The ''Rational Unified Process'' is, similarly, a customizable framework. As a result, it is often impossible to say whether a refinement of the process was derived from UP or from RUP, and so the names tend to be used interchangeably. The name ''Unified Process'' as opposed to '' Rational Unified Process'' is generally used to describe the generic process, including those elements which are common to most refinements. The ''Unified Process'' name is also used to avoid potential issues of trademark infringement since ''Rational Unified Process'' and ''RUP'' are trademarks of IBM. The first book to describe the process was titled ''The Unified Software Development Process'' () and published in 1999 by Ivar Jacobson, Grady Booch and
James Rumbaugh James E. Rumbaugh (born August 22, 1947) is an American computer scientist and object-oriented methodologistRational Software Rational Machines is an enterprise founded by Paul Levy and Mike Devlin in 1981 to provide tools to expand the use of modern software engineering practices, particularly explicit modular architecture and iterative development Iterative and in ...
have published books and articles using the name ''Unified Process'', whereas authors affiliated with
Rational Software Rational Machines is an enterprise founded by Paul Levy and Mike Devlin in 1981 to provide tools to expand the use of modern software engineering practices, particularly explicit modular architecture and iterative development Iterative and in ...
have favored the name ''Rational Unified Process''. In 2012 the
Disciplined Agile Delivery Disciplined agile delivery (DAD) is the software development portion of the Disciplined Agile Toolkit. DAD enables teams to make simplified process decisions around incremental and iterative solution delivery. DAD builds on the many practices esp ...
framework was released, a hybrid framework that adopts and extends strategies from Unified Process, Scrum, XP, and other methods.


Unified Process characteristics


Iterative and incremental

The Unified Process is an
iterative and incremental development Iterative and incremental development is any combination of both iterative design or iterative method and incremental build model for development. Usage of the term began in software development, with a long-standing combination of the two terms ...
process. The Elaboration, Construction and Transition phases are divided into a series of timeboxed iterations. (The Inception phase may also be divided into iterations for a large project.) Each iteration results in an ''increment'', which is a release of the system that contains added or improved functionality compared with the previous release. Although most iterations will include work in most of the process disciplines (''e.g.'' Requirements, Design, Implementation, Testing) the relative effort and emphasis will change over the course of the project.


Architecture-centric

The Unified Process insists that architecture sits at the heart of the project team's efforts to shape the system. Since no single model is sufficient to cover all aspects of a system, the Unified Process supports multiple architectural models and views. One of the most important deliverables of the process is the executable architecture baseline which is created during the Elaboration phase. This partial implementation of the system serves to validate the architecture and act as a foundation for remaining development.


Risk-focused

The Unified Process requires the project team to focus on addressing the most critical risks early in the project life cycle. The deliverables of each iteration, especially in the Elaboration phase, must be selected in order to ensure that the greatest risks are addressed first.


Project lifecycle (Phases of Unified Process)

The Unified Process divides the project into four phases: * Inception * Elaboration (milestone) * Construction (release) * Transition (final production release) Each phase will generally contain multiple iterations (named I1, E1, E2, C1, etc. in the UP phase illustration). The exact number of iterations in each phase depends on the scale and nature of the project. Note that the UP phase illustration here contains exactly 1, 2, 4 and 2 iterations in the four phases, but this is merely an example of how a specific project could look.


Inception phase

Inception is the smallest phase in the project, and ideally, it should be quite short. If the Inception Phase is long then it may be an indication of excessive up-front specification, which is contrary to the spirit of the Unified Process. Develop an approximate vision of the system, make the business case, define the scope, and produce a rough cost estimate and project schedule.


Elaboration phase

During the Elaboration phase, the project team is expected to capture a healthy majority of the system requirements. However, the primary goals of Elaboration are to address known risk factors and to establish and validate the system architecture. Common processes undertaken in this phase include the creation of use case diagrams, conceptual diagrams ( class diagrams with only basic notation) and package diagrams (architectural diagrams). The architecture is validated primarily through the implementation of an Executable Architecture Baseline. This is a partial implementation of the system which includes the core most architecturally significant components. It is built in a series of small time-boxed iterations. By the end of the Elaboration phase, the system architecture must have stabilized and the executable architecture baseline must demonstrate that the architecture will support the key system functionality and exhibit the right behavior in terms of performance, scalability, and cost. The final Elaboration phase deliverable is a plan (including cost and schedule estimates) for the Construction phase. At this point the plan should be accurate and credible since it should be based on the Elaboration phase experience and since significant risk factors should have been addressed during the Elaboration phase.


Construction phase

Construction is the largest phase of the project. In this phase, the remainder of the system is built on the foundation laid in Elaboration. System features are implemented in a series of short, time-boxed iterations. Each iteration results in an executable release of the software. It is customary to write full-text use cases during the construction phase and each one becomes the start of a new iteration. Common
Unified Modeling Language The Unified Modeling Language (UML) is a general-purpose, developmental modeling language in the field of software engineering that is intended to provide a standard way to visualize the design of a system. The creation of UML was originally m ...
(UML) diagrams used during this phase include activity diagrams, sequence diagrams, collaboration diagrams, State Transition diagrams and interaction overview diagrams. Iterative implementation for the lower risks and easier elements are done. The final Construction phase deliverable is software ready to be deployed in the Transition phase.


Transition phase

The final project phase is Transition. In this phase the system is deployed to the target users. Feedback received from an initial release (or initial releases) may result in further refinements to be incorporated over the course of several Transition phase iterations. The Transition phase also includes system conversions and user training.


Refinements and variations

Refinements of the Unified Process vary from each other in how they categorize the project ''disciplines'' or ''
workflows A workflow consists of an orchestrated and repeatable pattern of activity, enabled by the systematic organization of resources into processes that transform materials, provide services, or process information. It can be depicted as a sequence o ...
''. The Rational Unified Process defines nine disciplines:
Business Modeling Business process modeling (BPM) in business process management and systems engineering is the activity of representing processes of an enterprise, so that the current business processes may be analyzed, improved, and automated. BPM is typically ...
, Requirements, Analysis and Design, Implementation,
Test Test(s), testing, or TEST may refer to: * Test (assessment), an educational assessment intended to measure the respondents' knowledge or other abilities Arts and entertainment * ''Test'' (2013 film), an American film * ''Test'' (2014 film), ...
,
Deployment Deployment may refer to: Engineering and software Concepts * Blue-green deployment, a method of installing changes to a web, app, or database server by swapping alternating production and staging servers * Continuous deployment, a software e ...
,
Configuration Configuration or configurations may refer to: Computing * Computer configuration or system configuration * Configuration file, a software file used to configure the initial settings for a computer program * Configurator, also known as choice bo ...
and
Change Management Change management (sometimes abbreviated as CM) is a collective term for all approaches to prepare, support, and help individuals, teams, and organizations in making organizational change. It includes methods that redirect or redefine the use ...
,
Project Management Project management is the process of leading the work of a team to achieve all project goals within the given constraints. This information is usually described in project documentation, created at the beginning of the development process. T ...
, and
Environment Environment most often refers to: __NOTOC__ * Natural environment, all living and non-living things occurring naturally * Biophysical environment, the physical and biological factors along with their chemical interactions that affect an organism or ...
. The
Enterprise Unified Process The Enterprise Unified Process (EUP) is an extended variant of the Unified Process and was developed by Scott W. Ambler and Larry Constantine in 2000, eventually reworked in 2005 by Ambler, John Nalbone anMichael Vizdos EUP was originally introduc ...
extends RUP through the addition of eight "enterprise" disciplines. Agile refinements of UP such as OpenUP/Basic and the
Agile Unified Process Agile Unified Process (AUP) is a simplified version of the Rational Unified Process (RUP) developed by Scott Ambler. It describes a simple, easy to understand approach to developing business application software using agile techniques and concept ...
simplify RUP by reducing the number of disciplines. Refinements also vary in the emphasis placed on different project artifacts. Agile refinements streamline RUP by simplifying workflows and reducing the number of expected artifacts. Refinements also vary in their specification of what happens after the Transition phase. In the Rational Unified Process the Transition phase is typically followed by a new Inception phase. In the
Enterprise Unified Process The Enterprise Unified Process (EUP) is an extended variant of the Unified Process and was developed by Scott W. Ambler and Larry Constantine in 2000, eventually reworked in 2005 by Ambler, John Nalbone anMichael Vizdos EUP was originally introduc ...
the Transition phase is followed by a Production phase. The number of Unified Process refinements and variations are countless. Organizations utilizing the Unified Process invariably incorporate their own modifications and extensions. The following is a list of some of the better known refinements and variations. *
Agile Unified Process Agile Unified Process (AUP) is a simplified version of the Rational Unified Process (RUP) developed by Scott Ambler. It describes a simple, easy to understand approach to developing business application software using agile techniques and concept ...
(AUP), a lightweight variation developed by Scott W. Ambler *
Basic Unified Process The Open Unified Process (OpenUP) is a part of the Eclipse Process Framework (EPF), an open source process framework developed within the Eclipse Foundation. Its goals are to make it easy to adopt the core of the Rational Unified Process (RUP) ...
(BUP), a lightweight variation developed by IBM and a precursor to OpenUP *
Enterprise Unified Process The Enterprise Unified Process (EUP) is an extended variant of the Unified Process and was developed by Scott W. Ambler and Larry Constantine in 2000, eventually reworked in 2005 by Ambler, John Nalbone anMichael Vizdos EUP was originally introduc ...
(EUP), an extension of the Rational Unified Process * Essential Unified Process (EssUP), a lightweight variation developed by Ivar Jacobson * Open Unified Process (OpenUP), the Eclipse Process Framework software development process * Rational Unified Process (RUP), the IBM /
Rational Software Rational Machines is an enterprise founded by Paul Levy and Mike Devlin in 1981 to provide tools to expand the use of modern software engineering practices, particularly explicit modular architecture and iterative development Iterative and in ...
development process *
Oracle Unified Method The Oracle Unified Method (OUM), first released by Oracle Corporation in 2006, is a standards-based method with roots in the Unified Process (UP). OUM is business-process and use-case driven and includes support for the Unified Modeling Language ...
(OUM), the
Oracle An oracle is a person or agency considered to provide wise and insightful counsel or prophetic predictions, most notably including precognition of the future, inspired by deities. As such, it is a form of divination. Description The word ...
development and implementation process * Rational Unified Process-System Engineering (RUP-SE), a version of RUP tailored by
Rational Software Rational Machines is an enterprise founded by Paul Levy and Mike Devlin in 1981 to provide tools to expand the use of modern software engineering practices, particularly explicit modular architecture and iterative development Iterative and in ...
for System Engineering


References

* Kroll, Per; Kruchten, Philippe (2003). ''The Rational Unified Process Made Easy: A Practitioner's Guide to the RUP''. . * Kruchten, Philippe (2004). ''The Rational Unified Process: An Introduction'' (3rd Ed.). . * * Scott, Kendall (2002). ''The Unified Process Explained''. . * Bergstrom, Stefan; Raberg, Lotta (2004). ''Adopting the Rational Unified Process: Success with the RUP''. . * * Larman, Craig (2004). ''Agile and Iterative Development: A Manager's Guide''. . {{Software engineering Software development process de:Unified Process