Understanding Rational Unified Process (RUP)
The Rational Unified Process (RUP) is an iterative, adaptable Software development method which was developed by the Rational Software Corporation, an IBM’s division since 2003. Any software development organization is at a liberty to select and tailor the fundamentals of the process that is appropriate for their requirements.
RUP is determined by a set of content elements or building blocks such as Roles, Work Products and Tasks. Roles define the skills, competencies and responsibilities or who part. The Work Products are the What part in the building block. It is created as a result of a task and is inclusive of the documents and models.
Tasks constitute the how part of the building blocks. It is a unit of work assigned to a role and contributed by it. Each of the iteration further categorizes the tasks into nine disciplines, six engineering and three supporting. The engineering disciplines are based on creating Business Models, Requirements, Analysis and Design, Implementation, Testing and Deployment. The supporting disciplines are Configuration and Change Management, Project Management and Environment.
The RUP is based on a project lifecycle consisting of four phases. Each of these phases consists of a key objective and milestone at the end signifying accomplishment of the objective. The four phases are the Inception phase, the Elaboration phase, Construction phase and Transition phase.
The primary objective of the Inception phase is to check the scope for validating costs and budgets. The artefacts generated are the Business Case, Use Case Model, Project Plan and other documents corresponding to core project requirements. The Milestone is called the Lifecycle Objective Milestone and is crucial to be passed for the project to be continued.
The Elaboration phase is when the project goes beyond initiation and leads to the formation of the architecture. Here the objective is to alleviate the key risk items identified. The Milestone is denoted as the Lifecycle Architecture Milestone and to be met, some important deliverables such as 80% complete use case model, an executable architecture, business case and risk list, development plan have to be in place.
The construction of the software system is the primary objective of Construction Phase. The major part of the coding is done in this phase and the first external release of the software is produced.
The Transition phase takes the system from development to production and makes it ready for the end user. The end user’s and support team who will be in charge of maintenance are given training. The end user’s expectations and quality of the system are also validated.
The Rational Unified Process describes certain best practices on deploying approaches to software development and which are generally used by successful organizations. Each team member is provided with guidelines, templates etc to exploit the best practices of following the methods such as Development of Software iteratively, Usage of component-based architecture, Management of requirements, Model software by Visual methods, Verify software quality and Control changes to software.
Iterative approach in Development is required to take the software through successive refinements by the process of repeating iterations. Since any high risk item is identified at each stage of iteration itself, this reduces the overall risk of the project. Since each iterative stage ends with a release the development team is enforced to stay on track and focus on production of results. Any changes in requirements are easier to accommodate.
The Manage Requirements practice as described by RUP is helpful to drive the design, implementation and testing of software by describing an effective process to obtain, organize, communicate and document the requirements through the usage of use case and scenarios.
The Use Component-based Architecture practice focuses on designing a resilient and flexible architecture. Here a systematic approach to define architecture from new and existing components is highlighted where components are sub systems that perform a clear function.
The Visually Model Software practice is used to do model visualization to capture the structure and essence of the architecture using Unified Modeling Language (UML). This aids in better communication and maintains consistency with code and implementation.
The Verify Software Quality Practice makes sure that quality assessment is built into the process and is not an afterthought. Performance, reliability and functionality should be inherent in quality assessment.
The Control Changes to Software practices enables the ability to manage changes by controlling, tracking and monitoring changes effectively in the iterative development environment. Guidance is also provided on how to have secure workspaces for individual developer by proper configuration management of artefacts.
Thus RUP provides a disciplined approach by enhancing team productivity. Rather than focusing on preparation of voluminous documents, emphasis is given on development of models. Also preparation of various artefacts is supported by tools that help in automation.
It is a configurable process with a development kit that provides support for configuration based on the organization’s needs. Deploying the fundamental best practices using RUP helps in the software development of a wide range of projects effectively.
| An Insight into Project Methodology - PRINCE2| An Insight into Project Methodology –Scrum| Overview and Benefits on ITIL | Overview of Rational Unified Process (RUP) | Significance of the Project Management Maturity Model |