RAPID APPLICATION
DEVELOPMENT MODEL
MIT 203 – Advanced Systems Design and Implementation
Mr. Joseph S. Joaquin
Objectives
At the end of this topic, students will be able to:
• Explain what is RAD as another alternative of SDLC
models;
• Name the different phases of RAD;
• Compare and contrast RAD against the traditional SDLC
models; and
• Determine the pros and cons of RAD in software
engineering.
What is RAD?
Rapid application development (RAD) is a software
development methodology that uses minimal planning in
favor of rapid prototyping. A prototype is a working model
that is functionally equivalent to a component of the
product.
This model is based on prototyping and iterative
development with no specific planning involved. The
process of writing the software itself involves the planning
required for developing the product.
Illustration of RAD
Phases of RAD
• Business Modeling - The business model for the product
under development is designed in terms of flow of
information and the distribution of information between
various business channels;
• Data Modeling - The information gathered in the
Business Modeling phase is reviewed and analyzed to
form sets of data objects vital for the business. The
attributes of all data sets is identified and defined;
• Process Modeling - The data object sets defined in the
Data Modelling phase are converted to establish the
business information flow needed to achieve specific
business objectives as per the business model;
Phases of RAD (continued)
• Application Generation - The actual system is built and
coding is done by using automation tools to convert
process and data models into actual prototypes;
• Testing and Turnover - The overall testing time is
reduced in the RAD model as the prototypes are
independently tested during every iteration. However, the
data flow and the interfaces between all the components
need to be thoroughly tested with complete test coverage.
RAD vs SDLC Traditional Models
• The traditional SDLC follows a rigid process models with
high emphasis on requirement analysis and gathering
before the coding starts;
• It allows pressure on the customer to sign off the
requirements before the project starts and the customer
doesn’t get the feel of the product as there is no working
build available for a long time;
• The customer may need some changes after he gets to
see the software;
• The RAD model focuses on iterative and incremental
delivery of working models to the customer; and
RAD vs SDLC Traditional Models (continued)
• This results in rapid delivery to the customer and
customer involvement during the complete development
cycle of product reducing the risk of non-conformance
with the actual user requirements.
Application of RAD
RAD model can be applied successfully to the projects in
which clear modularization is possible like the following
cases:
• RAD should be used only when a system can be
modularized to be delivered in an incremental manner;
• It should be used if there is a high availability of designers
for modeling;
• It should be used only if the budget permits use of
automated code generating tools;
• RAD SDLC model should be chosen only if domain
experts are available with relevant business knowledge;
and
Application of RAD (continued)
• Should be used where the requirements change during
the project and working prototypes are to be presented to
customer in small iterations of 2-3 months.
Advantage of RAD
RAD model enables rapid delivery as it reduces the overall
development time due to the reusability of the components
and parallel development. RAD works well only if high
skilled engineers are available and the customer is also
committed to achieve the targeted prototype in the given
time frame.
Disadvantage of RAD
If there is commitment lacking on either side the model may
fail due to the several reasons:
• Dependency on technically strong team members for
identifying business requirements;
• Only system that can be modularized can be built using
RAD;
• Requires highly skilled developers/designers;
• High dependency on modeling skills;
• Suitable for systems that are component based and
scalable; and
• Suitable for project requiring shorter development times.
End