Rational Unified Process (
RUP) is the general
framework that can be used to describe specific
development process.
The Three Amigos (Grady Booch, Ivar Jacobson and James Rumbaugh) are the primary authors of the Rational Unified Process. They created/reformulated UML (Unified Modeling Language) as a single complete notation for describing object models, thus the birth of RUP.
In the
Unified Software Development Process, the three stated that every software life cycle is a cycle over four phases in the following order:
Inception,
Elaboration,
Construction and
Transition.
Phases of RUP in a Nutshell
The Inception Phase must contain whatever workflows necessary to get your clients to agree (keyword: agree, and not "to have sure knowledge") on the rough schedule of the project, rough architecture and on the objectives. If your clients really know how the process works, then little analysis will be required; if they need further orientation about the plan, then most probably you'll need more time for the analysis. Also, during this stage you will gather a significant fraction of the use cases; you need to focus on the central or the key.
Question answered in this phase: Do you and your client share the same idea with regards to the system?
The
Elaboration Phase of the Rational Unified Process focuses primarily on establishing and strengthening the
software architecture. This often consists between 2-4 iterations (I recommend 2-6 weeks per iteration, depending on the size of the team). In addition, during this phase the
development team isn't only creating single-use
prototypes but rather the
code and
design are already part of the production- considerable portions of the final system. And since this is already part of the production subset of the final system, this is also treated the
core architecture of the system- resolving the high-risk elements, defining mostly what is needed and forecasting the overall schedule and resources of the project. This is also known as the
executable architecture or
architectural baseline.
Question answered in this phase:Do you have the architecture to construct the system?
The second to the last part, the Construction Phase is where you will push things up by giving the client the minimum system they need. Also during this phase, the use cases will be altered a little bit because the client already have an idea what the system look like and has provided the necessary inputs/feedback. Iterations won't change that much and the main focus is still on the identification of the smallest possible deliverable that can be incorporated during the first prototype to meet and accomodate some of the client's needs.
Question answered in this phase: Are you constructing the system?
The last one,
Transition Phase is where you will apply and incorporate all the feedbacks, inputs, comments and suggestions of the client to the system. Like in the Construction Phase, iterations won't change much but the system you are building for your client will surely undergo drastic changes because this is the part where your client is
actually using the system with the realization that it still needs more polishing (or worse, they may actually think that the system you built isn't really what they need).
Question answered in this phase: Are you attempting to get your client to take control of the system?
A thing or two about the Rational Unified Process:
* In RUP, you really don't have to do all the artifacts (documentations). You can choose artifacts that you deem necessary in your project.
* The essence of RUP is iterative development- every artifact/s always undergo a series of changes, whether it is brought about by your client's request or by the groups decision.
* The main idea behind RUP is build small, change small
That's all.