Rapid Application Development
Rapid Application Development
that emphasises a very short development cycle [typically 60-90 days].” The RAD model, shown
in Fig. 1.5, is a high-speed adaptation of the waterfall model, where the result of each cycle a
fully functional system.
RAD is used primarily for information systems applications, the RAD approach encompasses the
following phases:
Business modeling
The information flow among business functions is modeled in a way that answers the following
questions:
What information drives the business process?
What information is generated?
Who generates it?
Where does the information go?
Who processes it?
Data modeling
The information flow defined as part of the business modeling phase is refined into a set of data
objects that are needed to support the business. The characteristics (called attributes) of each
object are identified and the relationships between these objects are defined.
Process modeling
The data objects defined in the data-modeling phase are transformed to achieve the information
flow necessary to implement a business function. Processing descriptions are created for adding,
modifying, deleting, or retrieving a data object.
Application generation
RAD assumes the use of the RAD fourth generation techniques and tools like VB, VC++, Delphi
etc rather than creating software using conventional third generation programming languages.
The RAD works to reuse existing program components (when possible) or create reusable
components (when necessary). In all cases, automated tools are used to facilitate construction of
the software.
If a business application can be modularized so that each major function can be completed within
the development cycle then it is a candidate for the RAD model. In this case, each team can be
assigned a model, which is then integrated to form a whole.
Disadvantages
· For Large (but scalable) projects, RAD requires sufficient resources to create the right
number of RAD teams.
· RAD projects will fail if there is no commitment by the developers or the clients to ‘rapid-
fire’ activities necessary to get a system complete in a much abbreviated time frame.
· RAD is not appropriate when technical risks are high, e.g. this occurs when a new
application makes heavy use of new technology.
2.
Contents
[hide]
• 1 Overview
• 2 History
• 3 The relative effectiveness of RAD
• 4 Criticism
• 5 Practical implications with rapid development methodologies
• 6 See also
• 7 References
• 8 Further reading
[edit] Overview
Rapid Application Development is a software development methodology that involves
techniques like iterative development and software prototyping. According to Whitten (2004), it
is a merger of various structured techniques, especially data-driven Information Engineering,
with prototyping techniques to accelerate software systems development.[1]
In Rapid Application Development, structured techniques and prototyping are especially used to
define users' requirements and to design the final system. The development process starts with
the development of preliminary data models and business process models using structured
techniques. In the next stage, requirements are verified using prototyping, eventually to refine the
data and process models. These stages are repeated iteratively; further development results in "a
combined business requirements and technical design statement to be used for constructing new
systems".[1]
RAD approaches may entail compromises in functionality and performance in exchange for
enabling faster development and facilitating application maintenance.
[edit] History
Rapid Application Development is a term originally used to describe a software development
process introduced by James Martin in 1991. Martin's methodology involves iterative
development and the construction of prototypes. More recently, the term and its acronym have
come to be used in a broader, generic sense that encompasses a variety of techniques aimed at
speeding application development, such as the use of web application frameworks and other
types of software frameworks.
Rapid application development was a response to non-agile processes developed in the 1970s
and 1980s, such as the Structured Systems Analysis and Design Method and other Waterfall
models. One problem with previous methodologies was that applications took so long to build
that requirements had changed before the system was complete, resulting in inadequate or even
unusable systems. Another problem was the assumption that a methodical requirements analysis
phase alone would identify all the critical requirements. Ample evidence[citation needed] attests to the
fact that this is seldom the case, even for projects with highly experienced professionals at all
levels.
Starting with the ideas of Brian Gallagher, Alex Balchin, Barry Boehm and Scott Shultz, James
Martin developed the Rapid Application Development approach during the 1980s at IBM and
finally formalized it by publishing a book in 1991, Rapid Application Development.
Although most RAD methodologies foster software re-use, small team structure and distributed
system development, most RAD practitioners recognize that, ultimately, there is no single
“rapid” methodology that can provide an order of magnitude improvement over any other
development methodology.
All flavors of RAD have the potential for providing a good framework for faster product
development with improved code quality, but successful implementation and benefits often hinge
on project type, schedule, software release cycle and corporate culture. It may also be of interest
that some of the largest software vendors such as Microsoft[3] and IBM[4] do not extensively
utilize RAD in the development of their flagship products and for the most part, they still
primarily rely on traditional waterfall methodologies with some degree of spiraling.[5]
The following table contains a high-level summary of some of the major flavors of RAD and
their relative strengths and weakness.
[edit] Criticism
Since rapid application development is an iterative and incremental process, it can lead to a
succession of prototypes that never culminate in a satisfactory production application. Such
failures may be avoided if the application development tools are robust, flexible, and put to
proper use. This is addressed in methods such as the 2080 Development method or other post-
agile variants.
3.
RAD is a linear sequential software development process model that emphasis an extremely
short development cycle using a component based construction approach. If the requirements are
well understood and defines, and the project scope is constraint, the RAD process enables a
development team to create a fully functional system with in very short time period.
RAD reduces the development time and reusability of components help to speed up
development. All functions are modularized so it is easy to work with.
For large projects RAD require highly skilled engineers in the team. Both end customer and
developer should be committed to complete the system in a much abbreviated time frame. If
commitment is lacking RAD will fail. RAD is based on Object Oriented approach and if it is
difficult to modularize the project the RAD may not work well.
4
RAD Model
[edit]
Business Modeling
The information flow among business functions is modeled in a way that answers the following
questions:
[edit]
Data Modeling
The information flow defined as part of the business modeling phase is refined into a set of data
objects that are needed to support the business. The characteristics called attributes of each
objects are identified and the relationships between the objects are then defined.
[edit]
Process Modeling
The data objects defined in the data modeling phase are transformed to achieve the information
flow necessary to implement the business functions. Processing descriptions are created for
adding, modifying, deleting or retrieving a data object.
[edit]
Application generation
RAD assumes the use of fourth generation techniques. Rather than creating software using
conventional third generation programming languages,
RAD process works to use the automated tools to facilitate the construction of the software.
[edit]
Testing and turnover
Since the RAD processes emphasize reuse, many of the program components have already been
tested. This saves time, money and the overall time to test an application also reduces
considerably.
[edit]
Disadvantages
1. For Large (but scalable) projects, RAD requires sufficient resources to create
the right number of RAD teams.
1. Not all applications are compatible for RAD. If a system cannot be properly
modularized, building components for RAD will be problematic.
1. RAD not appropriate when technical risks are high. This normally occurs when
a new application makes heavy use of new technology or when the new
software requires a high degree of interoperability.