Content
What is the RAD Model?
RAD stands for Rapid Application Development. RAD model is a software development life cycle model that is on based on prototyping and iterative development with minimal planning.
It focuses on a very short development cycle with faster delivery and reduced development costs compared to other traditional models. As mentioned earlier, the key objectives of the RAD model are high quality, high speed, and low cost.
Why use the RAD Model?
Traditional development lifecycles (for example, the waterfall model) usually involve the following steps-
- Requirements Gathering and Analysis
- Design
- Coding
- Testing
- Maintenance.
Once the requirements are frozen then the only coding process starts and once the coding is completed, the testing process starts. It becomes a long wait for the customer to be able to see the final product. It is quite possible that by the time the product is developed, the customer’s business needs could change.
To overcome such challenges, some solutions were proposed that included the spiral model and the RAD model, among others.
On the other hand, the RAD model starts with gathering and analyzing user requirements. In the next steps, designing the solution is carried out and a prototype of the solution is developed. This prototype is then sent to the user experts.
These users will then test this prototype and they will provide their reviews and suggest changes if any. Again, the same cycle is repeated until the desired final product is developed.
Phases of RAD Model
The following are the five main stages of the RAD model-
- Business Modeling – In this phase, business functions and product scope are decided during various meetings between the requirements planning team and the client team.
- Data Modeling – In the data modeling phase, all the information derived in the business modeling phase is analyzed and separated into different data elements important for the business.
- Process Modeling – In this phase, all the data objects gathered in the process modeling phase are transformed into required useful information.
- Application Generation – In this stage, the actual prototype is developed using different automated CASE tools.
- Testing and Turnover – In this stage, all the modules and interfaces of the prototype are tested.
Essential Aspects of RAD
It is important to ensure that each of the aspects of RAD is adequate for the high-speed development process. The following are the four essential aspects of RAD-
- Methodology – RAD methodology includes a list of following important fundamentals that are used to ensure fast delivery of a high-quality product:
- Making use of the best available techniques for the development process and identifying the sequence of tasks
- Using prototypes
- Using workshops rather than interviews to gather requirements
- Selecting a set of CASE tools
- Implementing a timeboxed development process
- Providing guidelines for a successful product, describing risks
- People – As discussed earlier, RAD encourages high speed, high quality, and low cost. To achieve this, not only high-quality tools are required but also the people; people who are involved in the RAD process should be highly skilled. People should be highly motivated and talented; reducing any delays or solving any problems that might affect the development process.
At the requirements planning and user design stages, each important end-user should be available to participate in workshops. Also, the Construction team that is responsible for the CASE toolset (used for design and code generation) and the cutover team (used for training and cutover) should be able to move quickly.
The following are some key players in any RAD project:- Sponsor – A high-level executive who funds the system.
- User Coordinator – The user coordinator oversees the project from the user’s perspective, and s/he is appointed by the sponsor.
- Requirements Planning Team – The team responsible for gathering requirements that participate in Joint Requirements Planning workshops.
- User Design Team – The team that participates in design workshops.
- User Review Board – The team that is responsible for the review of the prototypes.
- Training Manager – A person responsible for training users to work with the new system.
- Project Manager – A person responsible for managing the development process.
- Construction (SWAT) Team – SWAT stands for Skilled Workers with Advanced Tools. It is a team consisting of two to six developers; responsible for the development process.
- Workshop Leader – A person responsible for organizing and conducting Joint Requirements Planning and Joint Application Design workshops.
- Sponsor – A high-level executive who funds the system.
- Management – Management itself should be highly motivated in order to inspire both the IT team and users. Management should be careful in selecting and managing the SWAT team; proving training for the tools and techniques to be used in the development process.
The success of the RAD project equally depends on people as well as tools; the management should understand this and should regularly keep each team member motivated in order to increase their efficiency which will eventually help in developing the product faster and with high quality. - Tools – As discussed earlier, one of the most important factors in the success of the RAD project is the tools. These tools are used during the construction phase; they can help in the construction phase with design-automation techniques, code generation, and computer-aided planning and analysis.
Also, as mentioned earlier the power tools used in RAD are Computer-Aided Systems Engineering (CASE) tools. CASE tools are used to automate software development life cycle activities.- RAD tools use diagrams whenever required; these diagrams are used to graphically represent requirements, data models, process models, designs, etc. Some of the tools used for this purpose are Microsoft Visio, IBM’s Rational Rose, etc.
- Also, RAD tools should be able to generate executable code. One such tool is CASEMaker’s Totem 5.0.
- RAD tools use diagrams whenever required; these diagrams are used to graphically represent requirements, data models, process models, designs, etc. Some of the tools used for this purpose are Microsoft Visio, IBM’s Rational Rose, etc.
Advantages of RAD Model
- As the RAD model focuses on constructing prototypes, these prototypes can be reused later in the same project or for some other project.
- RAD ensures the high quality of the product by regularly involving users in the whole lifecycle. Each prototype is reviewed by the user which helps in identifying any major issues.
- The RAD process uses skilled and efficient people that result in quick delivery and high-quality product.
- There is a dedicated team called ‘User Review Board’ to review the prototype which helps both users and developers to review the prototype before the final product.
- The prototypes can also help in identifying any potential risk factors.
- RAD model encourages customer satisfaction as customers are involved from the beginning in the lifecycle; most importantly they can see the working prototype and provide their feedback.
- The RAD process can be cost-effective as it uses fewer developers.
Disadvantages of the RAD Model
- One of the main disadvantages of the RAD model is the lack of scalability in the final product which would have been achieved if it had been designed as a full application from the beginning rather than a prototype.
- RAD process uses timeboxing; in this element of RAD, certain features are postponed in future versions to develop the product in a short time frame. Due to this, it is possible that the product is less featured than the products developed using traditional models.
- RAD model is not suitable for all projects; the RAD model suits small and medium-sized (development time) projects.
- RAD process encourages a small team (around 2 to 6 developers); at the same time, it demands high quality and high speed in the developed product. To achieve this, it is very crucial that all the members of the team should be highly skilled and familiar with the tools being used.
- As RAD process involves customers from the beginning of the product lifecycle. If the customers are not available at important decision-making moments or cannot make the decisions quickly, it might affect the quality and speed of the product development.
- There is too much dependency on the people involved in the RAD project; if even one of them is not able to perform his/her task adequately, it might affect product development.
- RAD process demands high team collaboration between all the parties involved in the project; most importantly, the management’s role becomes crucial.
- RAD model does not suit systems that cannot be broken down into modules.
Conclusion
RAD model in software engineering was introduced to overcome the challenges faced by traditional models such as a waterfall model. It emphasizes a high-quality product developed in less time.
It encourages the use of automated tools throughout the development lifecycle. Also, the RAD model gives higher customer satisfaction as the customers are involved in all the stages of the lifecycle.