Harinya shall adopt Rational Unified Process (RUP) as standard approach to software development. RUP is a software development methodology based on UML (Unified Modeling Language).
Following diagram represents various RUP phases and workflow during these phases:

As the project matures, the emphasis on certain activities increases or decreases, but activities are allowed to execute, at any time throughout the lifetime of the project.
Phases
RUP organizes the development of software into four phases, each consisting of one or more executable iterations of the software
Inception
Activities under this phase are carried out by the client and the output of this phase is business case definition, statement of requirements and preliminary level project plan.
Elaboration
In this stage, the developers take a closer look at the project to determine its architecture foundation and to evaluate the architecture in relation to the project. This stage is important to the RUP because it is here that developers analyze the risks associated with changing the scope of the project or adding new technologies along the way.
The iterations in the Elaboration phase will:
- Establish a firm understanding of the problem to be solved.
- Establish the architectural foundation of the software
- Calibrate and support a detailed plan of subsequent iterations.
- Refine the process and gel the team.
- Eliminate high risks.
Each iteration should be adding new features to the growing body of software. Each iteration will also be adding new tests to the growing body of verification software.
High risk development items are tackled early in this phase. The goal is simply to address these risks up front so that they don’t catch the team later. Addressing the risky items up front also calibrates the estimates in a conservative manner.
The output of this phase is use case document that describes majority of the system behavior (URD – User requirement document), detailed project plan, test plan and prototypes (if applicable).
Construction
In this stage, the development of the project is completed. The application design is finished and the source code is written. It is in this stage that the software is tested to determine if the project has met its goal laid out in the inception phase. The iterations in the construction phase add features to the software. Use cases are added, iteration by iteration, to the software. This continues until the users can reasonably make use of the system.The artifacts that are produced during this phase are:
1. The software system
2. The test results
3. The user manual(s).
Transition
In this stage, any fine-tuning is performed. Any final adjustments can be based on user feedback, usability or installation issues.The iterations in this phase continue to add features to the software that improve and enhance the system towards the objectives set during the inception phase.
Iterations
A project governed by a RUP process moves forward in increments called iterations. The goal of each iteration is to develop some working software that can be demonstrated to the stakeholders.
The software developed by iteration should cut through all or most of the major subsystems of the project. It should not be concentrated into a single subsystem. Each iteration represents an effort by each member of the team to build a small part of their part of the project and integrate those parts together.
In iteration, all of the RUP activities are executed. There will be some business modeling in order to understand the needs of the business that will be fulfilled by that iteration. There will be some requirements analysis, to ensure we understand what behaviors the iteration must have. There will be some analysis, design, implementation, testing, etc. |