Unified Process
Encyclopedia
The Unified Software Development Process or Unified Process is a popular iterative and incremental
Iterative and incremental development
Iterative and Incremental development is at the liver of a cyclic software development process developed in response to the weaknesses of the waterfall model...

 software development process
Software development process
A software development process, also known as a software development life cycle , is a structure imposed on the development of a software product. Similar terms include software life cycle and software process. It is often considered a subset of systems development life cycle...

 framework. The best-known and extensively documented refinement of the Unified Process is the Rational Unified Process
IBM Rational Unified Process
The Rational Unified Process is an iterative software development process framework created by the Rational Software Corporation, a division of IBM since 2003...

 (RUP).

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
Rational Unified Process
The Rational Unified Process is an iterative software development process framework created by the Rational Software Corporation, a division of IBM since 2003...

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
IBM
International Business Machines Corporation or IBM is an American multinational technology and consulting corporation headquartered in Armonk, New York, United States. IBM manufactures and sells computer hardware and software, and it offers infrastructure, hosting and consulting services in areas...

. The first book to describe the process was titled The Unified Software Development Process (ISBN 0-201-57169-2) and published in 1999 by Ivar Jacobson
Ivar Jacobson
Ivar Hjalmar Jacobson is a Swedish computer scientist, known as major contributor to UML, Objectory, RUP and aspect-oriented software development.- Biography :...

, Grady Booch
Grady Booch
Grady Booch is an American software engineer. Booch is best known for developing the Unified Modeling Language with Ivar Jacobson and James Rumbaugh. Grady is recognized internationally for his innovative work in software architecture, software engineering, and collaborative development environments...

 and James Rumbaugh
James Rumbaugh
James E. Rumbaugh is an American computer scientist and object methodologist who is best known for his work in creating the Object Modeling Technique and the Unified Modeling Language .- Biography :...

. Since then various authors unaffiliated with Rational Software
Rational Software
Rational Machines was 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...

 have published books and articles using the name Unified Process, whereas authors affiliated with Rational Software
Rational Software
Rational Machines was 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...

 have favored the name Rational Unified Process.

Iterative and Incremental


The Unified Process is an iterative and incremental development
Iterative and incremental development
Iterative and Incremental development is at the liver of a cyclic software development process developed in response to the weaknesses of the waterfall model...

 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.

Use Case Driven

In the Unified Process, use case
Use case
In software engineering and systems engineering, a use case is a description of steps or actions between a user and a software system which leads the user towards something useful...

s are used to capture the functional requirements and to define the contents of the iterations. Each iteration takes a set of use cases or scenarios
Scenario (computing)
In computing, a scenario is a narrative describing foreseeable interactions of types of users and the system. Scenarios include information about goals, expectations, motivations, actions and reactions...

 from requirements all the way through implementation, test and deployment.

Architecture Centric

The Unified Process insists that architecture sit 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
Executable Architecture
An Executable Architecture , in general, is the description of a system architecture in a formal notation together with the tools that allow the automatic or semi-automatic generation of artifacts An Executable Architecture (EA), in general, is the description of a system architecture (including...

 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

The Unified Process divides the project into four phases:
  • Inception
  • Elaboration
  • Construction
  • Transition

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.

The following are typical goals for the Inception phase.
  • Establish a justification or business case
    Business case
    A business case captures the reasoning for initiating a project or task. It is often presented in a well-structured written document, but may also sometimes come in the form of a short verbal argument or presentation. The logic of the business case is that, whenever resources such as money or...

     for the project
  • Establish the project scope and boundary conditions
  • Outline the use cases and key requirements that will drive the design tradeoffs
  • Outline one or more candidate architectures
  • Identify risks
  • Prepare a preliminary project schedule and cost estimate

The Lifecycle Objective Milestone marks the end of the Inception phase.

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
Use case diagram
A use case diagram in the Unified Modeling Language is a type of behavioral diagram defined by and created from a Use-case analysis. Its purpose is to present a graphical overview of the functionality provided by a system in terms of actors, their goals , and any dependencies between those use...

, conceptual diagrams (class diagrams
Class diagram
In software engineering, a class diagram in the Unified Modeling Language is a type of static structure diagram that describes the structure of a system by showing the system's classes, their attributes, operations , and the relationships among the classes.- Overview :The class diagram is the main...

 with only basic notation) and package diagrams
Package diagram
A package diagram in the Unified Modeling Language depicts the dependencies between the packages that make up a model.- Overview :In addition to the standard UML Dependency relationship, there are two special types of dependencies defined between packages:...

 (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, timeboxed 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 in 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, timeboxed 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 UML (Unified Modelling Language) diagrams used during this phase include Activity, Sequence, Collaboration, State (Transition) and Interaction Overview diagrams.

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. The Rational Unified Process
IBM Rational Unified Process
The Rational Unified Process is an iterative software development process framework created by the Rational Software Corporation, a division of IBM since 2003...

 defines nine disciplines: Business Modeling
Business process modeling
Business Process Modeling in systems engineering is the activity of representing processes of an enterprise, so that the current process may be analyzed and improved. BPM is typically performed by business analysts and managers who are seeking to improve process efficiency and quality...

, Requirement
Requirement
In engineering, a requirement is a singular documented physical and functional need that a particular product or service must be or perform. It is most commonly used in a formal sense in systems engineering, software engineering, or enterprise engineering...

s, Analysis and Design
Object-oriented analysis and design
Object-oriented analysis and design is a software engineering approach that models a system as a group of interacting objects. Each object represents some entity of interest in the system being modeled, and is characterised by its class, its state , and its behavior...

, Implementation
Implementation
Implementation is the realization of an application, or execution of a plan, idea, model, design, specification, standard, algorithm, or policy.-Computer Science:...

, Test
Test (assessment)
A test or an examination is an assessment intended to measure a test-taker's knowledge, skill, aptitude, physical fitness, or classification in many other topics . A test may be administered orally, on paper, on a computer, or in a confined area that requires a test taker to physically perform a...

, Deployment
Software deployment
Software deployment is all of the activities that make a software system available for use.The general deployment process consists of several interrelated activities with possible transitions between them. These activities can occur at the producer site or at the consumer site or both...

, Configuration and Change Management, Project Management
Project management
Project management is the discipline of planning, organizing, securing, and managing resources to achieve specific goals. A project is a temporary endeavor with a defined beginning and end , undertaken to meet unique goals and objectives, typically to bring about beneficial change or added value...

, and Environment
Environment variable
Environment variables are a set of dynamic named values that can affect the way running processes will behave on a computer.They can be said in some sense to create the operating environment in which a process runs...

. The Enterprise Unified Process
Enterprise Unified Process
The Enterprise Unified Process is an extended variant of the Rational Unified Process and was developed by Scott W. Ambler and Larry Constantine in 2000, eventually reworked in 2005 by Ambler, John Nalbone and ....

 extends RUP through the addition of eight "enterprise" disciplines. Agile refinements of UP such as OpenUP/Basic
OpenUP/Basic
The OpenUP/Basic is the most agile and lightweight form of OpenUP, an open source software development process developed as part of the Eclipse Process Framework ....

 and the Agile Unified Process
Agile Unified Process
Agile Unified Process is a simplified version of the IBM Rational Unified Process developed by Scott Ambler. It describes a simple, easy to understand approach to developing business application software using agile techniques and concepts yet still remaining true to the RUP...

 simplify RUP by reducing the number of disciplines.

Refinements also vary in the emphasis placed on different project artifacts
Artifact (software development)
An artifact is one of many kinds of tangible by-product produced during the development of software. Some artifacts help describe the function, architecture, and design of software...

. Agile refinements streamline RUP by simplifying workflows and reducing the number of expected artifacts
Artifact (software development)
An artifact is one of many kinds of tangible by-product produced during the development of software. Some artifacts help describe the function, architecture, and design of software...

.

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
Enterprise Unified Process
The Enterprise Unified Process is an extended variant of the Rational Unified Process and was developed by Scott W. Ambler and Larry Constantine in 2000, eventually reworked in 2005 by Ambler, John Nalbone and ....

 the Transition phase is followed by a Production phase.

The number of Unified Process refinements and variations is 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
    Agile Unified Process is a simplified version of the IBM Rational Unified Process developed by Scott Ambler. It describes a simple, easy to understand approach to developing business application software using agile techniques and concepts yet still remaining true to the RUP...

     (AUP), a lightweight variation developed by Scott W. Ambler
  • Basic Unified Process (BUP), a lightweight variation developed by IBM
    IBM
    International Business Machines Corporation or IBM is an American multinational technology and consulting corporation headquartered in Armonk, New York, United States. IBM manufactures and sells computer hardware and software, and it offers infrastructure, hosting and consulting services in areas...

     and a precursor to OpenUP
    OpenUP
    The Open Unified Process is a part of the Eclipse Process Framework , an open source process framework developed within the Eclipse Foundation...

  • Enterprise Unified Process
    Enterprise Unified Process
    The Enterprise Unified Process is an extended variant of the Rational Unified Process and was developed by Scott W. Ambler and Larry Constantine in 2000, eventually reworked in 2005 by Ambler, John Nalbone and ....

     (EUP), an extension of the Rational Unified Process
  • Essential Unified Process
    Essential Unified Process
    The Essential Unified Process for software development, or EssUP, was invented by Ivar Jacobson as an improvement on the Rational Unified Process. It identifies practices, such as use cases, iterative development, architecture driven development, team practices and process practices, which are...

     (EssUP), a lightweight variation developed by Ivar Jacobson
    Ivar Jacobson
    Ivar Hjalmar Jacobson is a Swedish computer scientist, known as major contributor to UML, Objectory, RUP and aspect-oriented software development.- Biography :...

  • Open Unified Process (OpenUP), the Eclipse Process Framework software development process
  • Rational Unified Process
    IBM Rational Unified Process
    The Rational Unified Process is an iterative software development process framework created by the Rational Software Corporation, a division of IBM since 2003...

     (RUP), the IBM
    IBM
    International Business Machines Corporation or IBM is an American multinational technology and consulting corporation headquartered in Armonk, New York, United States. IBM manufactures and sells computer hardware and software, and it offers infrastructure, hosting and consulting services in areas...

     / Rational Software
    Rational Software
    Rational Machines was 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...

     development process
  • Oracle Unified Method
    Oracle Unified Method
    The Oracle Unified Method , first released by Oracle Corporation in 2006, is a standards-based method with roots in the Unified Process . OUM is business-process and use-case driven and includes support for the Unified Modeling Language , though the use of UML is not required...

     (OUM), the Oracle
    Oracle Corporation
    Oracle Corporation is an American multinational computer technology corporation that specializes in developing and marketing hardware systems and enterprise software products – particularly database management systems...

     development and implementation process
  • Rational Unified Process-System Engineering (RUP-SE), a version of RUP tailored by Rational Software
    Rational Software
    Rational Machines was 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...

     for System Engineering

-----------------------------------------------------------------------
The source of this article is wikipedia, the free encyclopedia.  The text of this article is licensed under the GFDL.
 
x
OK