Software development processes have emerged as part of software engineering and help ensure quality in development. The functions of a software development process serve as a guide for the implementation of activities, define which products will be developed (and when will), ensure the quality and coordinate the necessary changes, and help monitor the software development progress.
Currently, there are several software development processes, among the best known are the Microsoft Solutions Framework (MSF) and the Extreme Programming (XP). However, most used software development process in the industry is the RUP.
The Rational Unified Process (RUP) is a software development process based on the work of Booch, Jacobson and Rumbaugh in the definition Unified Process. The main focus of RUP is to ensure the production of quality systems in a standardized way and to some extent, predictable. To achieve this goal, RUP is built on six good software development practices and can also be defined as a product or a framework.
RUP has several features in common with software products. As well as software products, RUP has been designed, developed, distributed, and receives maintenance. Regular updates are available – whose descriptions as well as examples of documents used and other information, are available through a Web system. This system can be obtained over the internet or CD-ROM and can be integrated with other software development tools. Furthermore, it is also a framework of software development processes. Companies that do not require any method or documents used in the development process proposed by OR can adapt it. It is possible to use only a subset of which is defined by RUP, it is also possible to extend the process by adding new methods, techniques, documents, etc.
A great number of software development projects fail. Systems that do not meet user needs, poorly documented, poor quality software, difficult to maintain and integrate with other systems, are some of the many problems that cause the failure of a software development projects. Therefore, the RUP uses six good development practices to ensure the success of projects using the process.
Good RUP practices are commercially proven approaches that, when combined, attack the source of the main problems that cause the failure of a software project, preventing such problems from occurring or anticipating them so that the project can be reassessed. The six best practices adopted by the ORs are:
- Developing software iteratively;
- Managing requirements;
- Using architectures based on components;
- Modeling the software visually;
- Checking the quality of continuously software;
- Controlling changes to the software.
As the main feature, RUP uses an iterative, incremental cycle life as a development model. In this approach, a set of activities in business modeling, requirements, analysis and design, implementation, testing, and deployment are developed sequentially in every interaction, but in different proportions depending on the project phase.
Using this approach, project risks are identified and then addressed early in the development lifecycle, for each iteration, a small part of the product will be produced and validated. This model has several advantages over the classic model because the risks are reduced earlier, the requirements are validated as they are developed, the improvement and refining of the product are facilitated and reusability increases.