In this topic, we described about the below sections -
Why RAD model?
There are some scenarios whre developers realized the traditional waterfall model development was not very effective. The very frequent one of them is, the major design gaps can found only during the testing and it is very late to start the design changes during the changes. These type of drawbacks increases the project cost and requires more time as well. RAD is designed to fulfil these type of issues or gaps.
What is RAD model?
The RAD model was introduced in 1980s as an alternative solution to the traditional waterfall SDLC model. The initial solution was developed by barry boehm and was known as spiral model. Taking inspiration from barry work, RAD model was introduced by James Martin through his book "Rapid Application Development" published in 1991.
RAD Model is abbrevated as Rapid Application Development Model. It is a type of Incremental Model. The RAD model is based on prototyping and iterative model with no or less planning. RAD model would focus on gathering the customer requirements through focus groups, workshops, early testing of the prototypes using iterative model, continuous integration, reusing the existing prototypes and rapid delivery.
Rapid model less focus on long-term planning involved in the process and mainly focus on the adaptability of the development workflow. i.e. RAD does not allocate more time or resource on planning and instead of the planning, focus on the method of prototyping to introduce the product. RAD Model works well when the user-interface is important than the non-GUI programs. With RAD, developers involves in multiple iterations and applies updates to software rapidly without required to start a development schedule from scratch each time.
The functional modules would be developed in parallel to prototypes and integrated in order to complete the product for faster delivery. A prototype is a working model that is functionally equivalent to a component of the product. As there is no detailed preplanning, it makes easier to incorporate the changes within the development process.
RAD projects are based on incremental and iterative models. They consist of small teams consists of domain experts, developers, other IT resources and customer representatives who works continuously on their prototype or component.
The client can review the prototype and gives feeback after each iteration in the development process. RAD model is more practical and end-users are more happy with final product as they are all participate in all the phases of development.
When to use RAD model?
RAD model uses when -
- A system should be developed in a short span of 2 to 3 months of time.
- Complete requirements are known and needs a faster development.
- The user/client want to involve through out the life cycle.
- Developing system that can be converted into modules in 2 to 3 months of time.
- Technical risk is less.
- Budget is high enough to afford the designers for modeling along with the cost of automated tools to generate code.
RAD model would distribute the Analysis, Design, Build and Test phases into a series of iterative and short development life cycles. Let us now learn about various phases of RAD model -
- Business Modeling - The business model for the developing product is designed in terms of information flow and distribution between several channels. A complete business analysis is performed to find important information such as how it can be obtained, what are the factors that drive successful flow of information, when and how is the information processed etc.
- Data Modeling - Information gathered in Business Modeling phase would be reviewed and analyzed to create group of data objects which are important for business. Attributes of all the data sets would be identified and defined. Relation between these data objects are established and defined in detail that is relevant to the business model.
- Process Modeling - The data object-sets that has been defined in the Data Modeling phase would be converted to establish the business information flow that is needed to attain specific business objectives based on the Business model. The process model for any modifications and enhancements to the data object-sets defined in this phase.
- Application Generation - The actual system built and coding done by using automation tools to convert process and data models into actual prototypes.
- Testing and Turnover - The overall testing time reduced in the RAD model as the prototypes are tested independently during every iteration. However, the data flow and interfaces between all the components tested thoroughly with a complete test coverage. As most of the programming components are already tested, it would reduce the risk of any major issues.
- Quick initial reviews.
- Encourages customer feedback.
- Flexible for change.
- Changes are adaptable.
- Reduces the development time.
- Increases reusability.
- Every phase brings highly important functionality.
- With less number of resources, productivity increases in short span.
- Due to its prototyping nature, occurrence of defects would be low.
- Due to the usage of code generators and code reuse, manual coding is reduced.
- Devlivers scripts easily.
- Integration solves many issues from initial stages itself.
- Useful for large projects.
- Requirements can be changed at any time.
- Time between prototypes and iterations are short.
- Rapid iteration.
- Not suitable for small projects.
- Not compatible for all the applications.
- Not suitable when technical risk is high.
- Fails if developers are not committed to deliver the software on time.
- Reduces the features because of time boxing.
- Occurs scalability reduction.
- Progress and problems are usual and are difficult to track.
- Needs highly skilled developers or designers.
- High dependency on modeling skills.
- Cost of modeling and automated code generation is high.
- Unknown cost of the product.
- Helpful only if the system can be modularized.