RAD Model in Software Engineering
What is the RAD Model?
RAD stands for Rapid Application Development. RAD model is a software development life cycle model that focuses on developing high-quality information systems with faster delivery and reduced development cost compared to other traditional models.
RAD uses automated tools and techniques to improve the development process. Instead of relying on an individual’s skills for hand designing and coding, RAD makes use of automated design and coding, giving stability to the process.
Moreover, RAD is more capable than other traditional approaches as it delivers the software faster and generates fewer errors. It involves the use of Computer-Assisted Software Engineering (CASE) tools and techniques, code generators, and prototyping tools.
As mentioned earlier, the key objectives of the RAD model are of high quality, high speed, and low cost.
Why use the RAD Model?
Traditional development lifecycles (for example, waterfall model) usually involve the following steps-
- Requirements gathering and Analysis
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 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 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 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 the 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 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 – User coordinator oversees the project from the user’s perspective, and s/he is appointed by the sponsor.
- Requirements Planning Team – Team responsible for gathering requirements that participate in Joint Requirements Planning workshops.
- User Design Team – Team that participates in design workshops.
- User Review Board – 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 consists 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.
- 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 that will eventually help in developing the product faster and with high quality.
- Tools – As discussed earlier, one of the most important factors of 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 of such tools is CASEMaker’s Totem 5.0.
Advantages of RAD Model
- One of the main advantages of the RAD model is high speed. As the RAD model uses CASE tools to automate major processes of the RAD lifecycle, the quick delivery of the product is possible.
- RAD ensures high quality of the product by regularly involving users in the whole lifecycle. Each prototype is reviewed by the user that helps in identifying any major issues.
- RAD model makes it easier for the users to suggest changes and the SWAT team to incorporate them in the code; as it is flexible for change.
- RAD process uses skilled and efficient people that results in quick delivery and high-quality product.
- As the RAD model focuses on constructing prototypes, these prototypes can be reused later in the same project or for some other project.
- There is a dedicated team called ‘User Review Board’ to review the prototype that 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.
- RAD process can be cost-effective as it uses fewer developers.
Disadvantages of RAD Model
- One of the main disadvantages of the RAD model is 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 the 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 the 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 the systems that cannot be broken down into modules.
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.