Rapid Application Development (RAD) model is a development lifecycle model that offers quicker development of the project as the name suggests and yields higher quality results as compared to the traditional lifecycle models. So, Rapid Application Development Lifecycle model refines the quality of the final product as well as reduces the time required to implement the system.
Rapid Application Development (RAD) model makes use of automated techniques and tools and replaces the manual design and development processes with the automated design and development that makes it less error prone than the manual coding.
James Martin defines the key objectives of Rapid Application Development (RAD) as:
- High Quality Systems
- Fast Development and Delivery
- Low Cost
Rapid Application Development (RAD) is also considered as a complete approach to information systems development covering the entire lifecycle from the beginning to the end.
In most of the organizations the information systems that were developed using programming languages and database systems are not documented properly. It becomes very difficult and challenging to change those systems today. Thus these organizations are forced to change their legacy systems and build new applications, however traditional development lifecycles do not meet the expectations of today’s businesses due to their slow speed and time consuming nature. Organizations need a faster, efficient and economical way to upgrade their existing systems and Rapid Application Development (RAD) lifecycle model is the best suitable option in such scenario.
Professor Clifford Kettemborough of Whitehead College, University of Redlands, defines Rapid Application Development as “an approach to building computer systems which combines Computer-Assisted Software Engineering (CASE) tools and techniques, user-driven prototyping, and stringent project delivery time limits into a potent, tested, reliable formula for top-notch quality and productivity.”
The Computer-Assisted Software Engineering (CASE) software offers developers to develop systems faster than that of the traditional systems irrespective of the programming language and the platform.
Essential Aspects of Rapid Application Development
- Methodology
Rapid Application Development methodology includes the following important aspects:
- Specify the correct sequence of tasks using the available tools and techniques
- Workshops instead of interviews to gather requirements
- Choosing the right set of CASE tools to aid modelling, prototyping and code reusability
- Automating techniques and using time-boxed development process to make the development quicker
- Active user involvement throughout the Rapid Application Development lifecycle
Rapid Application Development methodology includes the following four stages of development:
- Requirements Planning
This stage is called the Concept Definition stage. It defines the business functions and determines the system’s scope, objectives and functionality. An initial risk assessment is performed to determine the risks occurred during the transmission of user information. Security activity is discussed and the sensitivity of the information is also analyzed.
In this stage of Rapid Application Development, the development team discusses and prepares a high level requirement for the system. At the end of this stage, it gives a clear picture of the information produced and a list of initial features is created based on this information.
- User Design
This stage is called the functional Design stage. In this stage system’s data and process modelling is done using workshops. A design document that contains the layout of the system and test plans is created and the final product of this stage is prototype.
- Construction
This stage is called the Development stage. In this stage, a physical application system is constructed from the prototype and implementation work plans are developed. In this stage, the complete lifecycle of development, testing and requirement refinement is repeated until final product is developed.
- Implementation
This stage is called the Deployment stage. In this stage, the final user testing and training are conducted. The system constructed by the development team is reviewed by the stakeholders and their feedback is recorded.
- People
Rapid Application Development model’s success is also dependent on the people the right skillset who are involved in it. Rapid Application Development enables people to play multiple roles for faster development and these people have to be highly trained.
The key people involved in Rapid Application Development includes the following:
- Sponsor
The sponsor is a higher level executive who is responsible to fund the whole system and achieve faster results keeping in mind the value of the new system.
- User Coordinator
A User coordinator is a person who is appointed by the sponsor to take care of the system from a user’s perspective.
- Requirements Planning Team
Requirements planning team is responsible to organize and participate in the joint requirements planning workshops.
- User Design Team
User Design team is responsible for the organizing and participating in the design workshops. This team is a collection of high level as well as the low level users from planning team.
- User Review Board
User Review Board is team of users who are responsible for reviewing the system after construction and take any decision to take it further or suggest any modifications needed in the system.
- Training Manager
Training manager is a person who is responsible for training the new users to understand the new system and use it.
- Project Manager
Project manager is responsible for the development of the new system. He plays an important role of managing all activities with the development and testing teams throughout the development of the project.
- Construction (SWAT) Team
Construction Skilled Workers with Advanced Tools (SWAT) team can be as small as 2 developers or as big as 6 developers who are highly skilled workers. The team is responsible for the development of the entire new system and have to be highly trained and skilled in the Rapid Application Development methodology to get faster results.
- Workshop Leader
Workshop leader is a person who is responsible for organizing and conducting workshops for requirements planning and system design.
- Management
In Rapid Application Development methodology, management play an important part to get fast results. Managers are responsible to choose those people who are quick learners and can adapt to the new Rapid Application Development methodology to provide faster turnaround.
- Tools
The Rapid Application Development methodology uses computerized tools as well as the human techniques and the success of this methodology is primarily dependent on the tools used. In Rapid Application Development, the diagrams are one of the fundamental principles of RAD tools. Diagrams are used to clarify thinking and represent various information such as Overview of systems, data models, process models, detailed designs and planning information.
RAD tools can be classified as below:
- Data Integration Tools
- Development Environments
- Requirement Gathering Tools
- Data Modelling Tools
- Code Generation Tools
The above four aspects are very important for the successful development with high speed.
Phases of RAD Model
- Business Modelling
Business Modelling phase is the most fundamental stage in Rapid Application Development. In this phase, the initial planning and analysis is accomplished and the information that is collected using various company resources, is used. In this phase, developers, designers and other users get together to discuss the business needs, objectives, project scope and the system requirements.
- Data Modelling
Once the Business Modelling phase is completed, the Data Modelling phase gets started and in this phase, the information collected during Business Modelling phase is reviewed and analyzed. During the analysis of information, the information is divided into various data groups/objects with correct description for each data group/object. In this phase, user feedback helps to determine the system architecture that supports the prototype creation. The reusable design components are produced as deliverable during this phase.
- Process Modelling
In Process Modelling phase, the information grouped together in Data Modelling phase, is converted into usable information. For adding, removing or changing any data objects, descriptions are created. This phase gets repeated multiple times for incorporating new components and modifications to achieve the project objectives.
- Application Generation
In Application Generation phase, coding is done based on the information collected and analyzed in previous phases and a system prototype is built. The automated tools are used for the construction of the system.
- Testing and Turnover
In Testing and Turnover phase, each prototype is tested individually to quickly create the most efficient product.
Securing RAD
Few security activities should be incorporated in RAD model. The major objectives and the benefits of the Rapid Application Development model should be kept in mind and the reduction of development time, cost and improved quality should not be compromised.
Requirement Planning Security Activities
- Initial Risk Assessment
This includes the high level assessment of the threats that might be encountered.
- Information Classification
Based on the requirement and risk analysis, a classification is performed for the data to be stored and transmitted. Also, sensitivity ranking is provided from one to five.
- Privacy Requirements
This includes the legal and industry privacy requirements.
- Security Test Plan
This includes the detailed test plan for testing.
User Design Security Activities
- Security Controls
In this security activity, appropriate security controls are determined to reduce the risks.
- Revised Security Test Plan
In this security activity, the developed test plan is revised to include the security controls that are selected. The revised test plan includes all the measures to test the effectiveness of the security controls.
Construction Security Activities
- Functional and Security Testing
In this security activity, each module/unit is tested to ensure that the system is working correctly. And also to make sure that the security controls determined are working correctly to mitigate risks.
- Risk Assessment Post Testing
In this security activity, risks are evaluated after performing the testing.
- Update Security Controls
In this security activity, security controls are updated considering those that are working as well as those that are not working.
Cut Over Security Activities
- Integration of information Application into its Environment
In this security activity, the application is integrated with its environment and security testing is performed to determine the effectiveness of the controls.
- Update Security Controls
In this security activity, security controls are updated considering those that are working as well as those that are not working.
- Review Deployment Status
In this security activity, security activities of the application are analyzed to determine the components to be published in the current cycle and the components to be processed for further testing.
Difference between Rapid Application Development (RAD) and SDLC Model
In traditional Software Development Lifecycle, planning and a detailed analysis is performed before the actual development starts. The requirements once finalized and the development has already started, the requirements cannot change during the execution of the project. The customer has to wait till the project completion to make any changes to the project. No interim builds are delivered to the customer to have an idea of what is being developed and whether it is being developed as per the requirements.
In Rapid Application Development lifecycle, a prototype is first developed before developing the actual product. The customer has the opportunity to review the prototype and suggest for any modifications for the actual product to be developed.
Difference between Rapid Application Development (RAD) and Agile Model
RAD Model | Agile Model |
In Rapid Application Development a prototype is first developed and reengineered later into an actual product. | In Agile model no prototypes are developed into an actual product instead prototypes are used for design and analysis purposes. |
A project manager manages the Rapid Application Development teams. | A project manager is not required, members work independently. |
No focus on communication and developers work individually. | Communication is of utmost importance and develop the product as a team. |
The primary focus is on creating a feature list first. | The solution is broken down into features. |
Rapid Application Development (RAD) Model Pros and Cons
Pros:
- Allows the changing requirements to be accommodated during the development.
- Reusability of components and prototyping enable developers to measure the progress of the project.
- Powerful RAD tools allow to have frequent iterations.
- Highly skilled people produce results in less time with higher productivity.
- Development time is less.
- Encourages quicker early reviews and customer feedback.
- Integration issues are resolved due to early involvement of the integration.
Cons:
- Dependency on highly skilled, trained and technically strong team members who can easily adapt to the rapidly changing software system.
- Modelling skills are required that allows team members to alter the elements using Rapid Application Development model.
- Only suitable for the component based systems.
- User involvement is must throughout the lifecycle as this requires equal commitment from users as well as developers.
- Developers may not want to communicate with the users frequently that leads to the failure of the rapid application development.
The Rapid Application Development model is a powerful software development model today. Its primary focus is on faster development time, achieving higher quality and low cost budget. This model has its own benefits and drawbacks as well. For applying the Rapid Application Development model, one does not have to be sure about the complete project requirements. This methodology helps in identifying the requirements in each iteration along with the software development process.