RUP Software Development Methodology
IBM Rational Unified Process® (RUP®) is a comprehensive process framework that provides industry-tested practices for software development and effective project management. It offers best practices guidance suited to particular custom software development or project need. Based on UML, RUP organizes the development of software into four phases, each consisting of one or more executable iterations of the software at that stage of development.
Rational Unified Process Phases
The Rational Unified Process (RUP) consists of cycles that may repeat over the long-term life of a system. A cycle consists of four phases: Inception, Elaboration, Construction and Transition. Each cycle is concluded with a release, there are also releases within a cycle. Let’s detailed review the four phases in a cycle:
Inception Phase
Briefly: In this stage, the project’s business case is stated and the team decides if the project is worth doing or if it is even possible. It is important to the process to first formulate the scope of the project and also determine what resources will be needed.
Each project begins with the first initial contact by our "Request for Services" form where you describe future project. Once we receive your request we contact you within one business day to clarify the set of requirements.
By result of the first communication we will prepare our proposal document for your project. The project proposal document is intended to describe to the customer our vision of software solution, technical and implementation side of the project development, preliminary project cost and duration. This proposal preparation can take 2-5 business days and is absolutely free.
From project proposal document you will find out:
|
General understanding of the project’s functionality and goals |
|
Technical details of project implementation |
|
Preliminary total cost of the project |
|
Project deliveries schedule |
Once we come to agreement with the project scope and costs it’s time to discuss contractual details and as a result finally sign a contract.
Elaboration Phase
Briefly: 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.
Since requirement gathering is the building stage for successful planning, this phase will include a lot of communication. Extensive interaction targeted at understanding detailed business requirements of future project. During this phase, we work very closely with our customers to specify product needs and the business objectives in more details.
By results of the requirements gathering we start business analysis of collected data. The goal of business analysis is to define in details how the project will be implemented including technical details and use-cases. During the elaboration phase the majority of the Use Cases are specified in detail and the system architecture is designed.
Upon the completion of the detailed project specification we allocate time for detailed planning. During this phase the scope and boundaries of software development work is defined along with project timelines and milestones. Project release schedule and major milestones are negotiated allowing our customers to keep their project within strict budget and time constraints.
The primary result of this phase are 2 documents:
|
Project specification document
Project specification gives developers and management clear outlines of how the features defined in the specifications would accomplish the project goals. The document is usually approved by customer before going to the next phase.
|
|
Project plan document
Project plan document contains detailed software development time frames, project milestones and exact cost estimate. The project plan is periodically updated during the software development phase allowing keep track of the project progress for internal management and customers.
|
Construction Phase
Briefly: 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.
|
GUI Prototyping
During this phase GUI templates will be generated using the design requirements. These templates define the basic look of the software/website in terms of color schemes, fonts, images etc. All the changes recommended by client are incorporated. The process continues till a final sign-off is obtained from the client.
The primary result is a proven basic look of future application.
|
|
Software Development
During this subphase all the software development work is carried out by our technical team. They work on the application and each feature will be implemented as approved in project specification. In the result of the phase a 'Beta Version' of the website/application is ready where all functionality of the application is implemented and thus all the coding work is completed and the application is ready for stabilization.
|
|
Quality assurance (testing)
Testing phase begins with the detailed planning where number and types of tests required for the project are defined. Application is tested in iterative manner parallel to software development. Once the software development is completed, the application is tested from scratch to make sure all modules are well integrated.
The testing process includes checking that all requirements have been fulfilled. Testing is performed on individual modules to locate any technical errors. A user acceptance testing is performed to ensure that the application users are able to use the application with ease.
|
Transition Phase
Briefly: in this stage, any fine-tuning is performed. Any final adjustments can be based on client’s feedback, usability or installation issues.
Stabilization
This phase starts once software development phase ends on all modules and beta version of project has been deployed on staging environment. Following are the activities that are carried out in this phase:
|
Integration of all the modules |
|
Continuous testing and reporting bugs and issues both by our QA team and customers |
|
Bugs and issues are resolved by software development team |
|
Performance testing is applied to define best production environment hardware configuration and find possible performance bottlenecks |
Deployment, Acceptance and Knowledge Transfer
This phase starts once the application is stabilized on the staging environment. Following activities take place in this phase:
|
Install the solution in customer’s business environment |
|
Cut-over. This is the activity of pushing the code into customers’ environment and making sure the application is setup properly |
|
End-user training may be provided to customer personnel |
|
Customer accepts the delivered software |
After that project is considered as completed.
Warranty
We are responsible for the quality of developed software. All our custom software is covered by a 3 months limited warranty. That means that we will fix bugs occurred after the project deployment for free during this period. The issue is considered as a bug if it causes incorrect application functioning according to the project specification document.
Product maintenance, enhancements and technical support.
Based on real-world feedback software products require continuous enhancements and technical support. We provide life cycle support for our products: product feature enhancements, fixes, tuning activities, migration and porting to newer or alternate platforms.
It is important to note that described software development methodology is the basic guideline to our business process but not the must for all the projects developed. Working together with each customer we can customize the software development to satisfy the needs of every concrete project.
|