The RAD (Rapid Application Development) model is based on prototyping and iterative development with no specific planning involved. RAD model is an incremental process model with a concise development cycle. RAD model is used when the requirements are fully understood, and the component-based construction approach is adopted. Various phases in RAD are Requirements Gathering, Analysis and Planning, Design, Build or Construction, and finally Deployment.
The critical feature of this model is the use of powerful development tools and techniques. A software project can be implemented using this model if the project can be broken down into small modules wherein each module can be assigned independently to separate teams. These modules can finally be combined to form the final product. Development of each module involves the various basic steps as in the waterfall model, i.e., analyzing, designing, coding, testing, etc.
Multiple teams work on developing the software system using the RAD model parallelly.
Using powerful developer tools such as JAVA, C++, Visual BASIC, XML, etc., is also an integral part of the projects.
This model consists of 4 primary phases:
Requirements Planning – It involves various techniques used in requirements elicitation like brainstorming, task analysis, form analysis, user scenarios, FAST (Facilitated Application Development Technique), etc. It also consists of a structured plan describing the critical data, methods to obtain it, and then processing it to form a final refined model.
User Description – This phase involves taking user feedback and building the prototype using developer tools. In other words, it includes re-examining and validating the data collected in the first phase. The dataset attributes are also identified and elucidated in this phase.
Construction – In this phase, the prototype and delivery are refined. It includes using powerful automated tools to transform processes and data models into the final working product. All the required modifications and enhancements are done in this phase.
Cutover – All the interfaces between the independent modules developed by separate teams must be appropriately tested. The use of powerfully automated tools and subparts makes testing easier. This is followed by acceptance testing by the user.
The process involves building a rapid prototype, delivering it to the customer, and taking feedback. After validation by the customer, the SRS document is developed, and the design is finalized.
When to use the RAD Model?
When the customer has well-known requirements, the user is involved throughout the life cycle, the project can be time-boxed, the functionality delivered in increments, high performance is not required, low technical risks are involved, and the system can be modularized. In these cases, we can use the RAD Model when it is necessary to design a system that can be divided into smaller units within two to three months when there is enough money in the budget to pay for both the expense of automated tools for code creation and designers for modeling.
Advantages:
The use of reusable components helps to reduce the cycle time of the project.
Feedback from the customer is available at the initial stages.
Reduced costs as fewer developers are required.
Using powerful development tools results in better quality products in comparatively shorter periods.
The progress and development of the project can be measured through the various stages.
It is easier to accommodate changing requirements due to the short iteration time spans.
Productivity may be quickly boosted with a lower number of employees.
Disadvantages:
The use of powerful and efficient tools requires highly skilled professionals.
The absence of reusable components can lead to the failure of the project.
The team leader must work closely with the developers and customers to close the project on time.
The systems which cannot be modularized suitably cannot use this model.
Customer involvement is required throughout the life cycle.
It is not meant for small-scale projects, as in such cases, the cost of using automated tools and techniques may exceed the project’s entire budget.
Only some applications can be used with RAD.
Rapid Application Development(RAD) is the parallel development of software functionality and then integrating those functions.
In Rapid Application Development(RAD) functions/components are developed in parallel into time-boxed cycle and then all these functions are assembled into a working prototype.
By Rapid Application development(RAD) customers gets something working very quickly and can provide feedback for the software or the future requirements. Since the customer gets early visibility in the software he can provide early feedback on the design and can decide whether to proceed with the development or not. Also he can suggest what functionality he needs in future releases.