The Rational Unified Process (RUP) is a software development process framework created by Rational Software. It consists of four phases: inception, elaboration, construction, and transition, with iterations and milestones within each phase. The RUP focuses on product quality and uses use cases to gather requirements and ensure they are realized in designs, models and tests.
The Rational Unified Process (RUP) is a software development process framework created by Rational Software. It consists of four phases: inception, elaboration, construction, and transition, with iterations and milestones within each phase. The RUP focuses on product quality and uses use cases to gather requirements and ensure they are realized in designs, models and tests.
The Rational Unified Process (RUP) is a software development process framework created by Rational Software. It consists of four phases: inception, elaboration, construction, and transition, with iterations and milestones within each phase. The RUP focuses on product quality and uses use cases to gather requirements and ensure they are realized in designs, models and tests.
The Rational Unified Process (RUP) is a software development process framework created by Rational Software. It consists of four phases: inception, elaboration, construction, and transition, with iterations and milestones within each phase. The RUP focuses on product quality and uses use cases to gather requirements and ensure they are realized in designs, models and tests.
Hanoi University Rational Unified Process • Created by Rational Software, an IBM’s branch. • RUP is a methodology while Unified Process (UP) is the general framework which RUP is based upon. • RUP has 4 phases: inception, elaboration, construction, transition. • Before software is built, thorough Business Modeling and Requirement Gathering should be done. – Business Modeling: in order to build the model, the Business Analyst (BA) has to know everything about the organization from its processes/functions to its revenues and expenses. • Focuses on product quality. RUP - Iterations • Each of the 4 phases may be repeated. An iteration is one time that a phase is repeated. • A phase/iteration contains several workflows. – E.g. requirements, analysis, design, test… • Each phase may be done in one or more iterations until a milestone is reached. – A milestone is when the deliverables of a particular phase are completed and have acceptable quality. RUP - Milestones • The RUP methodology defines 4 milestones and their evaluation criteria. • At the end of an iteration, a milestone’s criteria might be met or not. – If yes: move on to next phase. – If no: another iteration is needed. • Evaluation of a milestone’s criteria involves both developers and customers. – An important factor is the planned cost versus actual cost. Inception Phase • Initial project planning. • Business modeling. – The BA should first understand the customer’s business. • Product architecture. • Functional requirements (early work). – The software product is usually the simulation of the real business work. – Gathering requirements can often be synonymous to understanding customer’s business. • Cost estimation. • Milestone: Lifecycle Objectives. Use-case driven • Software projects may be complex. • Requirements maybe: – Missing – Understood differently between customer and developer. • RUP gather requirements as use cases. – The functional requirements from the users’ point of view. • The aim of designs and models is to realize use cases. • Testers verify that implementation follows established use cases. Inception Outcome • A general vision of the core project's requirements, key features, and main constraints. • Initial use-case model (10% - 20% complete). • An initial project glossary. • An initial business case, which includes business context, success criteria (revenue projection, market recognition…), and financial forecast. • An initial risk assessment. • A project plan, showing phases and iterations. • One or several prototypes. Lifecycle Objectives Milestone • Stakeholder agree on scope definition and cost/schedule estimates. • Developers understand requirements (well-written use cases). • Clearly identified cost/schedule estimates, priorities, risks, and development process. • A good architectural prototype was developed. • Actual expenditure matches planned expenditures to some extent. Elaboration Phase • Goals: – Lay the foundations of the project works. – Execute everything in the project on the surface (a breath-first approach). – Planning for estimated risks. • Detailed use cases. • Functional requirements (refined). • Non-functional requirements. • Milestone: Lifecycle Architecture. Elaboration Outcome • A use-case model (at least 80% complete) – All use cases and actors have been identified – Most use-case descriptions have been developed. • Supplementary requirements – Non functional requirements – Any requirements that are not associated with a specific use case. • A software architecture description. • An executable prototype. • A revised risk list and a revised business case. • An overall development plan, showing iterations and evaluation criteria for each iteration. • The process to be used. • A preliminary user manual (optional). Lifecycle Architecture Milestone • Is the vision of the product stable? • Is the architecture stable? • Have major risk elements been addressed? • Is the construction phase plan detailed, accurate and backed by a credible basis of estimates? • Do all stakeholders agree that the current vision can be achieved with the current plan? • Does the actual expenditure still match planned expenditure? Construction Phase • Implementation of agreed use cases. • Components and application features are developed and integrated into the product. • Product features are thoroughly tested. • Minimum outcomes: – The software product integrated on the adequate platforms (beta release). – The user manuals. – A description of the current release. Initial Operational Milestone Evaluation criteria • Is this product release stable and mature enough to be deployed in the user community? • Are all stakeholders ready for the transition into the user community? • Are the actual resource expenditures versus planned expenditures still acceptable? Transition Phase • Works done when delivering the software product to the customer. – Deployment & Beta testing. – Parallel operation with the old system. – Conversion to new database. – Customer training & Maintenance staff training. – Correcting defects. – Customer support. – Sales team establishment & operation. Product Release Milestone Evaluation criteria • Is the user satisfied? • Are the actual resources expenditures versus planned expenditures still acceptable? Failure action • Start another development cycle. RUP – Model Graph Core Engineering Workflows 1. Business modeling workflow – Problem: Software engineers and business engineers do not communicate properly with each other. – Solution: Use a common language and process for both business and engineers. 2. Requirements workflow – Identify actors, stakeholder needs, use cases. – Develop use-case descriptions. 3. Analysis & Design workflow – Goal: show how the system will be realized in the implementation phase. Core Engineering Workflows 4. Implementation workflow – Define the organization of the code. – Implement classes and objects. – Test the developed components as units. – Integrate components produced by individuals (or teams), into an executable system. 5. Test workflow – Verify the interaction between objects. – Verify the integration of components. – Verify that requirements are correctly implemented. – Identify and repair defects before deployment. Core Engineering Workflows 6. Deployment workflow – Producing external releases of the software. – Packaging the software. – Distributing the software. – Installing the software. – Providing help and assistance to users. – Planning and conduct of beta tests. – Migration of existing software or data. – Formal acceptance. Core Supporting Workflows 1. Project Management workflow – Balance competing objectives – Manage risks – Overcome constraints 2. Environment workflow – Provide development team with processes and tools. – Apply processes in a project context. Core Supporting Workflows Configuration and Change Management workflow • Challenges: – Simultaneous updates: many persons working on update the same component at the same time. – Limited notification: not everybody is informed of the change. – Multiple releases: One release could be in customer use, while another is in test, and the third is still in development. • Solution: – Use tools to manage changes, notifications and releases.