CHAPTER ONE
Rapid Application Development 1
1.1 INTRODUCTION
Software development
Also known as application development, software design
It may refer to the activity of computer programming, which
is the process of writing and maintaining the source code.
But in broader sense of the term, it includes requirement
analysis, development, prototyping, modification, reuse, re-
engineering, maintenance, or any other activities that
result in software product.
The need for quality control of software development
process has given rise to the discipline of software
engineering.
Software engineering aims to apply systematic approach in
2
software development process.
1.2 SOFTWARE DEVELOPMENT METHODOLOGIES
There are different software development
methodologies.
They are used to structure and control the process of
developing an information system
Common Methodologies includes
Waterfall
Prototyping
Iterative and incremental,
Spiral
Rapid Application Development (RAD)
Extreme programming 3
CONT’D …
Most methodologies share some combination of the following
stages of software development
Gathering requirements
Analyzing the problem
Design
Implementation (coding) of the software
Testing the software
Deployment
Maintenance and bug fixing
These stages are often called “Software Development lifecycle
(SDLC).
The main idea of SDLC has been “to pursue the development of
information systems in a very deliberate, structured and
methodical way 4
SDLC … CONT’D
There are, however, some fundamental development activities
that are well understood and common to most approaches. In very
broad terms:
Analysis
involves understanding the problem which the software is
intended to solve, i.e., the requirements in context, with
validation as the means to check that understanding.
Design
involves describing, conceptually, a software solution that
meets the requirements of the problem.
Implementation
5
involves realising such a solution in software.
CONT’D …
Testing
involves making sure that the solution has
certain inherent qualities, with verification as
a means to check its adequacy with respect to
the specified requirements and validation as a
means to check that the solution does
address the problem.
Deployment
involves making the developed solution
available in its context of operation and use.
6
1.3 SOFTWARE DEVELOPMENT
APPROACHES
Different software development
approaches follow different software
development life cycle.
Each approaches have their own
advantages and disadvantages
The most common ones are
1.Software Development Life Cycle
Methodologies
2.Agile Methodology
7
CONT’D …
There are different Models under these
Methodologies
I. Software development life cycle
Waterfall
Spiral
Incremental
Prototyping
Rapid application development (RAD)
II. Agile Methodology
Extreme Programming
Adaptive Software Development (ASD)
8
CONT’D …
As we have said, different approaches follow
different SDLC.
For example
Waterfall Development
Project is divided into sequential phases
Each phase carried out in turn. (One after another in
sequence)
More structured approach which attempts to assess the
majority of risks and develop a detailed plan for the
software before implementation (coding)
Avoid significant design changes and re-coding in later
stages of SDLC 9
CONT’D …
Extreme
SDLC repeated over various cycles or iterations
Spent less time on planning and documentation
More time spent on coding and
They promote continuous testing throughout the development
lifecycle
Prototyping
Works with the creation of prototypes
Prototypes are – incomplete versions of the software
being developed
It is not a complete development methodology by itself.
It is an approach to handle part of a large development
methodologies ( i.e. RAD, incremental, spiral … )
A prototype may evolve to a final working system
10
CONT’D
Incremental Development
Combines linear and iterative methodologies
The basic principles are
A series of mini-waterfalls are performed, where all phases of the waterfall are
completed for a small part of a system, before proceeding to the next increment
Used in large software development projects
breaking a project into smaller segments
It’s primary objective is to reduce inherent project risk by breaking down a project
in to smaller segments
Spiral development
Combines elements of design and prototyping -in-stages
11
CONT’D …
The best approach to choose also often
depends on the type of problem
If the problem is well understood and a solution can
be effectively planned out ahead of time, the best
approach will be ______________________
If the problem is unique and the structure of the
software solution cannot be easily envisioned, the
best approach to choose is ______________
12
1.4 RAPID APPLICATION DEVELOPMENT (RAD)
RAD is a software development methodology that
uses minimal planning in favor of rapid prototyping.
The ‘planning’ is interleaved with writing the software
itself
Is a software development methodology, which
involves
Iterative development and
The rapid construction of prototypes instead of large
amounts of up-front planning
Lacks extensive pre-planning
This allows software to be written much faster.
13
RAD METHODOLOGY
The basic principles are
Breaking project into smaller segments and
providing more ease-of-change during the
development process.
Aims to produce high quality systems quickly
primarily via, Iterative prototyping, Active user
involvement, Computerized development tools
RAD Methodology divides the total process into
4 phases
Requirement planning phase
Design phase
Development phase
Cutover
14
RAD - TOOLS …. CONT’D
Development tools may include
Graphical user interface builders
Code generators
Fourth generation programming languages
Database Management Systems (DBMS)
15
ANALYSIS METHODOLOGIES
TO DESIGN RAD
Use case Diagram : used to portray the system
Sequence Diagram: used to display process flow
Class Diagram: is used to show identified objects and
relationships
It includes joint application development (JAD)
Users are intensely involved in the system design
16
TOOLS FOR DEVELOPMENT AND
DESIGN OF RAD
Visio
Microsoft Access
A database software
Visual C# Software : enables RAD applications
access to database using data access objects,
Design Graphical User Interface using – Forms, textboxes,
buttons
Microsoft Visual Studio
Used to develop computer programs for Microsoft Windows
17