Open main menu
Home
Random
Recent changes
Special pages
Community portal
Preferences
About Wikipedia
Disclaimers
Incubator escapee wiki
Search
User menu
Talk
Dark mode
Contributions
Create account
Log in
Editing
Rational unified process
(section)
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
== Rational unified process topics == === RUP building blocks === RUP is based on a set of building blocks and content elements, describing what is to be produced, the necessary skills required and the step-by-step explanation describing how specific development goals are to be achieved. The main building blocks, or content elements, are the following: * Roles (who) β A role defines a set of related skills, competencies and responsibilities. * Work products (what) β A work product represents something resulting from a task, including all the documents and models produced while working through the process. * Tasks (how) β A task describes a unit of work assigned to a Role that provides a meaningful result. Within each iteration, the tasks are categorized into nine disciplines: * Six "engineering disciplines" ** Business modelling ** Requirements ** Analysis and design ** Implementation ** Test ** Deployment * Three supporting disciplines ** [[Software configuration management|Configuration and change management]] ** [[Software project management|Project management]] ** [[Environment discipline|Environment]] === Four project life-cycle phases === [[Image:Development-iterative.png|thumb|320px|RUP phases and disciplines.]] The RUP has determined a project life-cycle consisting of four phases. These phases allow the process to be presented at a high level in a similar way to how a 'waterfall'-styled project might be presented, although in essence the key to the process lies in the iterations of development that lie within all of the phases. Also, each phase has one key objective and milestone at the end that denotes the objective being accomplished. The visualization of RUP phases and disciplines over time is referred to as the [[RUP hump]] chart. ==== Inception phase ==== The primary objective is to scope the system adequately as a basis for validating initial costing and budgets. 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 (corporate)#In management|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. * Establishing a baseline by which to compare actual expenditures versus planned expenditures. If the project does not pass this milestone, called the life cycle objective milestone, it either can be cancelled or repeated after being redesigned to better meet the criteria. ==== Elaboration phase ==== The primary objective is to mitigate the key risk items identified by analysis up to the end of this 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. The outcome of the elaboration phase is: * 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. * An [[Executable Architecture|executable architecture]] that realizes architecturally significant use cases. * Business case and risk list which are revised. * A development plan for the overall project. * Prototypes that demonstrably mitigate each identified technical risk. * A preliminary user manual (optional) This phase must pass the lifecycle architecture milestone criteria answering the following questions: * Is the vision of the product stable? * Is the architecture stable? * Does the executable demonstration indicate that major risk elements are addressed and resolved? * Is the construction phase plan sufficiently detailed and accurate? * Do all stakeholders agree that the current vision can be achieved using current plan in the context of the current architecture? * Is the actual vs. planned resource expenditure acceptable? If the project cannot pass this milestone, there is still time for it to be canceled or redesigned. However, after leaving this phase, the project transitions into a high-risk operation where changes are much more difficult and detrimental when made. The key domain analysis for the elaboration is the system architecture. ==== Construction phase ==== The primary objective is to build the software system. In this phase, the main focus is on the development of components and other features of the system. 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 to produce demonstrable prototypes. ==== Transition phase ==== The primary objective is to 'transit' the system from development into production, making it available to and understood by the end user. The activities of this phase include training the end users and maintainers and beta testing the system to validate it against the end users' expectations. The system also goes through an evaluation phase, any developer which is not producing the required work is replaced or removed. The product is also checked against the quality level set in the Inception phase. If all objectives are met, the product release milestone is reached and the development cycle is finished. === The IBM Rational Method Composer product === The IBM Rational Method Composer product is a tool for authoring, configuring, viewing, and publishing processes. See [[IBM Rational Method Composer]] and an open source version [[Eclipse process framework]] (EPF) project for more details. === Certification === In January 2007 the new RUP certification examination for ''IBM Certified Solution Designer - Rational Unified Process 7.0'' was released which replaces the previous version of the course called ''IBM Rational Certified Specialist - Rational Unified Process''.<ref name='rupcert'>{{cite web|url=http://www.ibm.com/developerworks/rational/library/jan07/krebs/ |title=The value of RUP certification |access-date=2014-05-05 |last=Krebs |first=Jochen |date=2007-01-15 |publisher=[[IBM]] }}</ref> The new examination will not only test knowledge related to the RUP content but also to the process structure elements.<ref name='rup7'>{{cite web|url=http://www-03.ibm.com/certify/certs/38008003.shtml |archive-url=https://web.archive.org/web/20070108125343/http://www-03.ibm.com/certify/certs/38008003.shtml |url-status=dead |archive-date=January 8, 2007 |title=Spacer IBM Certified Solution Designer - IBM Rational Unified Process V7.0 |access-date=2008-05-13 |publisher=[[IBM]] }}</ref> To pass the new RUP certification examination, a person must take IBM's ''Test 839: Rational Unified Process v7.0''. You are given 75 minutes to take the 52 question exam. The passing score is 62%.<ref name='test389'>{{cite web |url=http://www-03.bm.com/certify/tests/ovr839.shtml |title=Test 839: Rational Unified Process v7.0 |access-date=2008-05-13 |publisher=[[IBM]] }}{{Dead link|date=July 2022 |bot=InternetArchiveBot |fix-attempted=yes }}</ref> === Six best practices === Six best [[software engineering]] practices are defined for software projects to minimize faults and increase productivity. These are:<ref>Stephen Schach (2004). ''Classical and Object-Oriented Software Engineering''. 6/e, WCB McGraw Hill, New York, 2004.</ref><ref>[http://www.augustana.ab.ca/~mohrj/courses/2000.winter/csc220/papers/rup_best_practices/rup_bestpractices.html Rational Unified Process white paper] {{webarchive|url=https://web.archive.org/web/20090501034302/http://www.augustana.ab.ca/~mohrj/courses/2000.winter/csc220/papers/rup_best_practices/rup_bestpractices.html |date=2009-05-01 }}</ref> ; Develop iteratively:It is best to know all requirements in advance; however, often this is not the case. Several software development processes exist that deal with providing solutions to minimize cost in terms of development phases. ; Manage requirements: Always keep in mind the requirements set by users. ; Use components: Breaking down an advanced project is not only suggested but in fact unavoidable. This promotes ability to test individual components before they are integrated into a larger system. Also, code reuse is a big plus and can be accomplished more easily through the use of [[object-oriented programming]]. ; Model visually: Use diagrams to represent all major components, users, and their interaction. "UML", short for [[Unified Modeling Language]], is one tool that can be used to make this task more feasible. ; Verify quality: Always make testing a major part of the project at any point of time. Testing becomes heavier as the project progresses but should be a constant factor in any software product creation. ; Control changes: Many projects are created by many teams, sometimes in various locations, different platforms may be used, etc. As a result, it is essential to make sure that changes made to a system are synchronized and verified constantly. (See [[Continuous integration]]).
Edit summary
(Briefly describe your changes)
By publishing changes, you agree to the
Terms of Use
, and you irrevocably agree to release your contribution under the
CC BY-SA 4.0 License
and the
GFDL
. You agree that a hyperlink or URL is sufficient attribution under the Creative Commons license.
Cancel
Editing help
(opens in new window)