Rational Unified Process (RUP) is an object-oriented methodology for system development and is suitable for different team sizes that are participating in development. RUP is structured in two dimensions (figure below).
Time dimension shows how the process evolves in time. This view of the process shows us: phases and iterations (Phases, Iterations on image shown). The second dimension represents division of tasks with respect to the type of work to be done (Disciplines on image shown). Starting system architecture often contains missed key customer requirements. If we don’t want that to happen in the last stage, we take the system development process through a series of iterations. The central part of the analysis and design of RUP methodology boils down to defining the architecture, therefore, in the first iterations those activities receive the most of our attention. A strong emphasis on the importance of the system architecture and object-oriented development approach allows that we build the system from already made components.
Also, RUP methodology recommends using UML language for visual modeling so other project participants can understand customer requirements. UML diagrams are recommended as the primary means of communication among all participants in development.
The time dimension describes the system development process through a series of phases. RUP uses iterative model of system life cycle. The product is developed through a series of iterations, each of which has the shape of a small waterfall, and contains all the disciplines from analysis to testing. With regard to the position within the development cycle some disciplines are more represented than others.
RUP maintains the advantages of waterfall model and its sequencing tasks in a logical order. Iteration with respect to the main focus can be divided into phases. Each phase may have one or more iterations. Completion of each stage means that the product has met certain requirements to proceed to a new level
The life cycle begins with the initial phase. The main objective of this phase is to determine the feasibility of the project, i.e. whether it is possible to meet customer requirements. This phase is performed through one, sometimes two iterations. As part of this phase there are preparatory activities carried out: preparation of working environment, members training…
After the requirements are described, and we determinate that it is possible to make a system that fulfills them, elaboration phase appearances. The main objective of this phase is to establish stable system architecture and drafting a detailed plan of the project flow. Phase is often done in a few iterations. We conduct them until we know that the system architecture is stable.
The main objective of this phase is to complete the already started work on defining the requirements, analyze in detail the use of the remaining use cases, include them in the system and in the end, testing all of that. Phase ends with production of beta version which is ready for testing in user environment.
Transition phase is the last phase. The objective of this phase is to allow system use to the end users and final testing. At the end of this phase, the project objectives should be met and in some cases, by ending this phase, a new life cycle of creating the next built up system generation is started.