unified process software development core activities processes requirements design engineering construction testing debugging deployment maintenance paradigms and models agile cleanroom incremental prototyping spiral v model waterfall methodologies and frameworks asd devops dad dsdm fdd iid kanban lean sd less mdd msf psp rad rup safe scrum semat tsp up xp supporting disciplines configuration management documentation software quality assurance sqa project management user experience practices atdd bdd cco ci cd ddd pp standup tdd tools compiler debugger profiler gui designer modeling ide build automation release automation infrastructure as code testing standards and bodies of knowledge babok cmmi ieee standards iso 9001 isoiec standards pmbok swebok itil glossaries artificial intelligence computer science electrical and electronics engineering vte the unified software development process or unified process is an iterative and incremental software development process framework the bestknown and extensively documented refinement of the unified process is the rational unified process rup other examples are openup and agile unified process profile of a typical project showing the relative sizes of the four phases of the unified process 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 isbn0201571692 and published in 1999 by ivar jacobson grady booch and james rumbaugh since then various authors unaffiliated with rational software have published books and articles using the name unified process whereas authors affiliated with rational software have favored the name rational unified process in 2012 the disciplined agile delivery 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 diagram illustrating how the relative emphasis of different disciplines changes over the course of the project the unified process is an iterative and incremental development 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 eg requirements design implementation testing the relative effort and emphasis will change over the course of the project architecturecentric the unified process insists that architecture sit at the heart of the project teams 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 riskfocused 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 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 upfront specification which is contrary to the spirit of the unified process the following are typical goals for the inception phase establish prepare a preliminary project schedule and cost estimate feasibility buy or develop it the lifecycle objective milestone marks the end of the inception phase develop an approximate vision of the system make the business case define the scope and produce rough estimate for cost and 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 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 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 timeboxed iterations each iteration results in an executable release of the software it is customary to write fulltext use cases during the construction phase and each one becomes the start of a new iteration common unified modeling language 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 the rational unified process defines nine disciplines business modeling requirements analysis and design implementation test deployment configuration and change management project management and environment the enterprise unified process extends rup through the addition of eight enterprise disciplines agile refinements of up such as openupbasic and the agile unified process 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 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 aup a lightweight variation developed by scott w ambler basic unified process bup a lightweight variation developed by ibm and a precursor to openup enterprise unified process 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 development process oracle unified method oum the oracle development and implementation process rational unified processsystem engineering rupse a version of rup tailored by rational software for system engineering kroll per kruchten philippe 2003 the rational unified process made easy a practitioners guide to the rup isbn0321166094 kruchten philippe 2004 the rational unified process an introduction 3rd ed isbn0321197704 ambler scott 2002 agile modeling effective practices for extreme programming and the unified process j wiley isbn0471202827 scott kendall 2002 the unified process explained isbn0201742047 bergstrom stefan raberg lotta 2004 adopting the rational unified process success with the rup isbn0321202945 ambler scott constantine larry 2002 the unified process transition and production phases cmp books isbn157820092x larman craig 2004 agile and iterative development a managers guide isbn0131111558 vtesoftware engineeringfields computer programming requirements engineering software deployment software design software maintenance software testing systems analysis formal methods concepts data modeling enterprise architecture functional specification modeling language orthogonality programming paradigm software software archaeology software architecture software configuration management software development methodology software development process software quality software quality assurance software verification and validation structured analysis orientations agile aspectoriented object orientation ontology service orientation sdlc modelsdevelopmental agile eup executable uml incremental model iterative model prototype model rad up scrum spiral model vmodel waterfall model xp other spice cmmi data model er model function model information model metamodeling object model systems model view model languages idef uml usl sysml softwareengineers victor basili kent beck grady booch fred brooks barry boehm peter chen danese cooper ward cunningham tom demarco edsger w dijkstra delores m etter martin fowler adele goldstine margaret hamilton c a r hoare lois haibt mary jean harrold grace hopper watts humphrey michael a jackson ivar jacobson alan kay nancy leveson stephen j mellor bertrand meyer david parnas trygve reenskaug winston w royce james rumbaugh mary shaw peri tarr elaine weyuker niklaus wirth edward yourdon related fields computer science computer engineering project management risk management systems engineering category commons 