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.