Software Development; Software Engineering
Rapid application development (RAD) is a software development methodology that relies on rapid prototyping instead of the extensive planning used in traditional software development. RAD is an incremental methodology that uses short iterations, reusable prototypes, and multiple software modules. These are combined in a process called integration to form the complete solution.
Rapid application development (RAD) is a software development methodology that relies on rapid prototyping instead of the extensive planning used in traditional software development methodologies. RAD is an incremental and iterative methodology. It uses short iterations, reusable prototypes, and multiple software modules developed in parallel. These elements are then combined in a process called integration to form the complete system or solution. Developers work closely with managers, customers, and other stakeholders in small teams.
RAD typically uses a five-phase development cycle. The first phase is known as business modeling. During this phase, requirements are identified and analyzed. The second phase is data modeling, during which the information gathered in the previous phase is used to define the required data objects. Next is the process modeling phase, in which the data models developed in the previous phase are converted to carry out the business requirements identified in the first phase. Processes for interacting with the data sets are defined. The fourth phase is the application generation phase, in which prototypes are created. The process and data models developed in the previous phases are converted to code using automation tools. The final phase is testing and turnover. Components are tested to ensure that the system functions correctly as new components are integrated into the system. RAD requires less final testing than other methodologies, as prototypes undergo independent testing. All phases are repeated during every iteration.
RAD's iterative and incremental processes allow developers to quickly respond to changing requirements and deliver solutions. The methodology encourages the development of reusable components. Frequent integration of components makes it easier to minimize the impact of any bugs that are introduced to the system as new components are deployed and integrated. In addition, the customer and other stakeholders are involved throughout the design cycle, improving the chances that the solution will meet the customer's needs.
Successful RAD depends on strong development teams. Team members must correctly identify business processes and requirements, and a high level of expertise is needed, particularly with modeling. Systems that are not easily modularized are not good candidates for RAD, as modularization of functionality is a core concept of this methodology. RAD is most appropriate when developing medium to large solutions. The costs associated with managing and implementing RAD may be excessive for use on smaller, less complex designs.
For example, the information technology (IT) department for a large, multinational corporation might be charged with developing an application that will integrate the company's human resource (HR) management system with that of another company that it has recently acquired. The application must be delivered by the end of the year.
RAD is an ideal fit for this project for several reasons. The project is time sensitive, and the solution must be delivered within a matter of months. Based on an initial analysis, the required design will lend itself to modularization. The company employs a large, experienced IT staff that has completed several large-scale projects and has expertise in modeling and system architecture design. The project is a high priority for the HR and accounting departments, which are willing to make staff available to provide business expertise, customer testing, and feedback for the project. Given the corporation's size, the cost of RAD tools is not prohibitive. There is a strong likelihood that the investment can be leveraged on future projects. These factors all support the use of the RAD methodology.
RAD helps deliver effective software solutions quickly and flexibly. Functionality can be developed and added as needed, resulting in adaptive solutions that are more likely to meet project requirements. For this reason, RAD is ideally suited for large projects with changing requirements. The extensive use of modeling, prototypes, and automation speeds the development process. Customer involvement in the design and testing process provides valuable feedback and leads to solutions that are more likely to meet the real needs of the customer. Companies in fast-moving, highly competitive business sectors, such as mobile application development and web commerce, need solutions that can be deployed quickly and changed easily as new customer needs are discovered and new business opportunities present themselves. With the rapidly evolving world of software becoming increasingly important to companies of all kinds, RAD will remain an important methodology for many developers.
—Maura Valentino, MSLIS
Bell, Michael. Incremental Software Architecture: A Method for Saving Failing IT Implementations. John Wiley & Sons, 2016.
Friedman, Daniel P., and Mitchell Wand. Essentials of Programming Languages. 3rd ed., MIT P, 2008.
Jayaswal, Bijay K., and Peter C. Patton. Design for Trustworthy Software: Tools, Techniques, and Methodology of Developing Robust Software. Prentice Hall, 2007.
MacLennan, Bruce J. Principles of Programming Languages: Design, Evaluation, and Implementation. 3rd ed., Oxford UP, 1999.
Scott, Michael L. Programming Language Pragmatics. 4th ed., Elsevier, 2016.
Van Roy, Peter, and Seif Haridi. Concepts, Techniques, and Models of Computer Programming. MIT P, 2004.
Wysocki, Robert K. Effective Project Management: Traditional, Agile, Extreme. 7th ed., John Wiley & Sons, 2014.