RAPID APPLICATION DEVELOPMENT

advertisement
ISAM 5635
Parthenopi Konstantinou
RAPID APPLICATION DEVELOPMENT
Parthenopi Konstantinou
ISAM 5635
ABSTRACT
Today, many development organizations are adopting iterative development
methodologies emphasized by Rapid Application Development (RAD) cycles. Unlike
waterfall development life cycles, where testing is done at the end of the project, iterative
life cycles specify testing at multiple points during development. It is easy to understand
the importance of including system performance analysis and predictive tuning in the
process. Identifying the addressing flows early, especially performance limitations, has
as advantage the cuts of the cost to fix them and at the same time minimizes the impact
on the project schedule. RAD has been proven to be a valuable software strategy.
However, it is not without pitfalls and risks. RAD incorporates some defects that we need
to adjust. Research and capitalization should be invested in order to minimize them and
use them as of companies’ advantage.
(Source from www.credata.com)
1
ISAM 5635
Parthenopi Konstantinou
INTRODUCTION
Rapid Application Development (RAD) is a new, highly interactive systems development
approach that emerged in the 1990s. RAD is a concept that products can be developed
faster and of higher quality. In addition RAD attempts to address both weaknesses of the
structured development methodologies, which are: long development times and the
difficulty in understanding a system from a paper-based description. RAD
methodologies adjust the Systems Development Life Cycle (SDLC) phases to get some
part of the system developed quickly and into the hands of the users. What lies beneath
this approach is to get the users to better understand the system through interactive and
simultaneous revisions, which bring the system closer to what is needed.
How to use RAD
Most RAD methodologies recommend that analysts use special techniques and computer
tools to speed up the analysis, design, and implementation phases, such as CASE
(Computer-Aided Software Engineering) tools, JAD (Joint Application Design) sessions,
fourth-generation/visual programming languages that simplify the speed up programming
(e.g., Visual Basic), and code generators that automatically produce programs from
design specifications. It is the combination of the changed SDLC phases and the use of
theses tools and techniques that improves the speed and quality of systems development.
There are process-centered, data-centered, and object-oriented methodologies that follow
the basic approaches RAD. Two common methodologies of RAD are phased
development and prototyping [5].
2
ISAM 5635
Parthenopi Konstantinou
Phased Development:
The Phased development methodology breaks the overall system into a series of versions
that are developed sequentially. The analysis phase identifies the overall system concept,
and the project team, users, and system sponsors, then categorize the requirement into a
series of version. The most important and fundamental requirements are bundled into the
first version of the system. The analysis phase then leads into design and
implementation, but only with a set of requirements identifies for version 1. Once
version 1 is implemented, work begins won version 2 and follows the steps, and so on. In
the same way, any additional requirements identified during testing of the older version
are implemented in the next version. With this way the system gets in the hands of the
users very quickly [7].
Prototyping:
The prototyping methodology performs the analysis, design, and implementation phases
concurrently, and all three phases are performed repeatedly in a cycle until the system is
completed. In this case, the users of the system are an active participant of the system
development process. The prototype is handed to the users for testing and to provide
comments; which are the reanalyzed and redesigned, and a second prototype is
developed. The process continues in a cycle until the users and developers agree to a
final system [7].
3
ISAM 5635
Parthenopi Konstantinou
Purpose and Objectives
High Speed, High Quality, and Lower Cost
Those are primary concepts in the RAD environment. Systems developed using the RAD
development path meet the needs of their users effectively and have low maintenance
cost. The quality of a system is defined as the degree to which the system meets business
requirements (or user requirements) at the time it begins operation. This is fundamentally
different from the more usual definition of quality as the degree to which a system
conforms to written specifications. Rapid development, high quality and lower costs go
hand-in-hand if an appropriate development methodology is used [2]
Factors for Rapid Development
Fast development does not mean a “quick and dirty” process. There should be no
compromise between speed of development and quality. Several factors contribute to the
success of rapid development by improving both the quality of delivered system and the
speed of delivery. Important factors for rapid development include:

Gathering requirements using workshops or focus groups.

Prototyping and early, reiterative user testing of designs.

The re-use of software components: Use of a CASE repository to facilitated the
re-use of proven templates, components, and systems.

The use of integrated CASE toolset to enforce technical integrity in modeling and
designing the system, as well as, to generate bug-free code from fully validated
design.
4
ISAM 5635

Parthenopi Konstantinou
A rigidly paced schedule that defers design improvements to the next product
version.

Intensive involvement of the end user in the design of the systems.
The early, effective and continued involvement of users in the development process is
critical to the success of RAD. The involvement of users is an important factor in the
early detection of errors, and in general, the earlier a defect is found, the less time and
expense required to correct it. The relative cost of correcting errors varies over the
development life cycle. It is much less expensive to catch the error early than at the last
stage of the system development [1].
Stages of RAD
The Rapid Application Development path may be adapted to different CASE tools and
development environments. This section briefly describes the four stages of RAD.
Requirements Planning
The Requirements Planning stage consists of a review of the areas immediately
associated with the proposed system. This review produces a broad definition of the
system requirements in terms of the functions the system will support. The deliverables
from the Requirements Planning stage include an outline system area model (entity and
process models) of the area under study, a definition of the system's scope, and a cost
justification for the new system [7].
5
ISAM 5635
Parthenopi Konstantinou
User Design
The User Design stage consists of a detailed analysis of the business activities related to
the proposed system. Key users, meeting in workshops, decompose business functions
and define entity types associated with the system. They complete the analysis by
creating action diagrams defining the interactions between processes and data. Following
the analysis, the design of the system is outlined. System procedures are designed, and
preliminary layouts of screens are developed. Prototypes of critical procedures are built
and reviewed. A plan for implementing the system is prepared [7].
Construction
In the Construction stage, a small team of developers, working directly with users,
finalizes the design and builds the system. The software construction process consists of a
series of "design-and-build" steps in which the users have the opportunity to fine-tune the
requirements and review the resulting software implementation. This stage also includes
preparing for the cutover to production. In addition to the tested software, Construction
stage deliverables include documentation and instructions necessary to operate the new
application, and routines and procedures needed to put the system into operation [7].
Implementation
The implementation stage involves implementing the new system and managing the
change from the old system environment to the new one. This may include implementing
bridges between existing and new systems, converting data, and training users. User
acceptance is the end point of the implementation stage [7].
6
ISAM 5635
Parthenopi Konstantinou
Evaluation of RAD
RAD has proven to be valuable software strategy. However, it is not without pitfalls and
risks. It has various advantages and disadvantages that we need to address.
Advantages of RAD
First of all RAD is designed to help deliver the systems faster with minimize cost, and
insured quality. Deliverables sometimes are easier to port because they make greater use
of high-level abstraction, scripts and intermediate code. Also, the development is
conducted at a higher level of abstraction because RAD tools operate at that level. RAD
offers its users early visibility because of prototyping, greater flexibility because
developers can redesign at will, and reduction of the manual coding because of wizards,
code generators, code reuse. In addition, RAD tends to shorten the development cycles
and minimize defects because CASE tools may generate much of the code or other predesigned applications.
(Source from Article: Taking the Risk out of Rapid Application Development)
7
ISAM 5635
Parthenopi Konstantinou
Disadvantages of RAD
On the other hand, RAD might cause some adequate problems. The cost of the integrated
toolset and hardware covers a sufficient amount of money. It might be harder to gauge
progress because there are no classic milestones, or could less efficient because code isn’t
hand crafted. In addition, there is the possibility of the loss of scientific precision
because no formal methods are used, or may accidentally empower a return to the
uncontrolled practices of the early days of software development. Also there is the danger
the requirements may not converge because the interests of customers may diverge from
one iteration to the next ([3] and [4]).
Danger of Rapid Development: The Nature of the Danger
Rapid application development is becoming increasingly essential to business survival.
There is, however, a danger inherent in rapid development. Enterprises are often tempted
to use RAD techniques to build-stand alone systems to solve a particular problem
isolation. Such systems if they meet users needs, they become institutionalized. If and
enterprise builds many such isolated systems to solve particular problems, the result is a
large, undisciplined mass of applications that do not work together. In practice, most
business applications are closely related to other applications and share database with
them, making a common infrastructure essential. In addition, as computing systems
grow, they become even more complex, and such systems are difficult to change unless
they have been created within skillfully designed architectures that allow one piece to be
8
ISAM 5635
Parthenopi Konstantinou
changed without changing the other pieces. Hence, the solution to any problem is to
develop a carefully planned set of architectures. The approach that develops systems
within an architectural environment is known as “Information Engineering” [6].
CONCLUSION
RAD has been proven to be a valuable software strategy. It is not without pitfalls and
risks. It requires the right mix of methodologies, tools, personnel and management. Its
use depends upon complexity of the domain or application, the organizational
environment, the skills of staff and management and the architectures and infrastructures
available. RAD is worthy of continued research and capitalization.
9
ISAM 5635
Parthenopi Konstantinou
REFERENCES
1. Article on line from the Web Developer’s Journal, Web Site On Line at
http://www.webdevelopersjournal.com/article/rad.htm
2. Web Site On Line, Creative Data by Steve C McConnell, Rapid Development:
Timing Wild Software Schedules at http://credata.com/research/rad.html
3. Web Site On Line at http://csweb.cs.edu/maner/domains/RAD/.htm
4. Newsletter on line, Web Site On Line at
http://www.pragmaticsw.com/Pragmatic/Newsletters/newsletter_2002_08.htm
5. Software Tech News Web Site On Line By Morton A. Hirschberg-U.S Army
Research Laboratory at
http://www.dacs.dtic.mil/awareness/newsletters/technews2-1/rad.html
6. Compuware Corporation, Article on line: Taking the risk out of rapid application
development at http://www.compuware.com
7. Alan Dennis and Barbara Haley Wixom, Systems Analysis and Design,
Ch.1 (p.8-14)
10
Download