|
The Rational Unified Process is a modern software development process that uses elements of all the process bases mentioned in the methodology section, as well as a series of best practices to obtain a quality product.
At Kynetia we use this process as the basis for all projects, although it is adapted to the characteristics of each, relaxing aspects that might cause excessive rigidity or bureaucracy.
The evolution of the process can be seen over the course of four phases, at the end of which well defined objectives are established following a series of iterations:
- Conception. The objective in this phase is to establish the business requirements to be covered by the system, identifying all entities who will interact with the system (people, systems, etc.) and assessing the viability of the project.
- Preparation. The objective in this phase is to understand the problem from the standpoint of the development team. This involves preparing the framework architecture for the system and designing the technical solution, as well as drawing up the project plan and identifying key risks.
The output obtained from this phase consists of the defined architecture, the model for systems requirements based on use cases specified in UML (Unified Modeling Language), the development plan, the quality standards for the project and the tools to be employed in the course of the work.
- Construction. This phase concentrates on the design of components and the addition of custom software functionalities through iteration as construction and testing go ahead, while allowing room for the inclusion of changes.
Deliveries can be planned at the end of each iteration, when the end user is asked to provide feedback and changes are proposed. After an analysis of the impact of the proposed changes, a decision is taken as to the best moment to include them in the system. The end result is a fully operational system with user documentation,
- Transition. The last phase of RUP is concerned with shifting the software from the development to production environments in which the end user will run the system. Depending on the type of project, it may be necessary to use intermediate environments (pre-production, user acceptance, etc.) for rigorous validation before moving on to the production phase.
Each phase ends with various iterations involving as series of activities. The RUP model classifies these into 9 disciplines, the importance of which changes as the project progresses towards its end.
- Business modeling. This set of activities seeks understanding of business needs. General and high level requirements documentation, business rules, glossaries and so on are used to help define the software product to be produced.
- Requirements. These activities translate the needs established in the business model to automated systems requirements of a more technical nature (UML use cases are employed here). The aim is for the development team members to achieve an in-depth understanding of the business model.
- Analysis and design. Based on requirements, these activities establish the most appropriate system architecture and the detailed design necessary for implementation.
- Implementation. These activities consist of coding the software based on the design and the system requirements.
- Testing. Verification of all of the elements produced (documents, designs and code) to ensure compliance with the requirements and quality standards defined for the project.
- Roll-out. These activities involve the installation of the system in the environments in which it will finally operate.
- Set-up management. Management of changes and other matters arising in the construction process.
- Project management. These activities are aimed to manage the development in terms of plans, resources, monitoring and risk control and management.
- Environment. These activities seek to provide the project with the hardware and software resources required to facilitate start-up and maintenance in the different development and test environments, as well as the production launch of the system.
RUP also establishes a series of best practices as a working method to ensure objectives are obtained and perfected. These are:
- Iterative development, which makes it possible to plan incremental developments and deliveries, prioritizing requirements to ensure that high priority needs are delivered to the user first.
- Requirements management. Document requirements and changes, and analyze the impact of changes before acceptance.
- Use components-based architectures to maximize the use of earlier developments or pre-fabricated components and cut costs.
- Visually model the software using the UML standard.
- Verify the quality of the software products, ensuring that they meet the company’s standards.
- Control changes to the software.
Finally, the model itself establishes that the process can be adapted to each development. For example, not all projects require the same level of documentation. Size, complexity and the number of participants involved are just three of the factors that must be taken into account to define how to adapt the process. Among other matters, adaptation touches on the artifacts to be produced and the level of detail, the roles involved and their tasks in the project.
At Kynetia we define the necessary processes and adaptations in the initial phase of our products, preparing a project quality assurance plan. |