INTRODUCTION TO BASIC
PROGRMMING COM 1013
Chapter 6: software development
Types of Software Development
KASNIDAR BINTI NURDIN
What is software development ??
A software development methodology or
system development methodology in
software engineering is a framework that
is used to structure, plan, and control
the process of developing an
Common methodologies include waterfall,
prototyping, incremental development, spiral
development, rapid application development,
and extreme programming.
Rapid application development (RAD) is a software
development methodology that uses minimal
planning in favor of rapid prototyping.
Requirements Planning phase – combines elements
of the system planning and systems analysis phases of
the System Development Life Cycle (SDLC). Users,
managers, and IT staff members discuss and agree on
business needs, project scope, constraints, and system
requirements. It ends when the team agrees on the
key issues and obtains management authorization to
User design phase – during this phase, users interact
with systems analysts and develop models and
prototypes that represent all system processes, inputs,
and outputs. The RAD groups or subgroups typically
use a combination of Joint Application Development
(JAD) techniques and CASE tools to translate user
needs into working models. User Design is a continuous
interactive process that allows users to understand,
modify, and eventually approve a working model of the
system that meets their needs.
Construction phase – focuses on program and
application development task similar to the
SDLC. In RAD, however, users continue to
participate and can still suggest changes or
improvements as actual screens or reports are
developed. Its tasks are programming and
application development, coding, unit-integration
and system testing.
Cutover phase – resembles the final tasks in
the SDLC implementation phase, including data
conversion, testing, changeover to the new
system, and user training. Compared with
traditional methods, the entire process is
compressed. As a result, the new system is built,
delivered, and placed in operation much sooner.
Advantage & Disadvantage of RAD
Flexible and adaptable
Can handle large
projects without a
RAD realizes an overall
reduction in project
development cycles (23 months).
Can’t use for small
Requires more resources
and money to implement
All applications are not
competible with RAD
RAD is not appropriate
hen technical risks are
Need both customer and
to complete a project.
Otherwise RAD wil fail
The Spiral Development ( or Lifecycle)
Model is a systems development method
used in information technology.
It combines the features of the
prototyping model and the waterfall
The spiral model is intended for
large, expensive and complicated projects.
Each loop has four sections or quadrants :
1. To determine the objectives, alternatives and
constraints. We try to understand the product
objectives, alternatives in design and constraints imposed
because of cost, technology, schedule, etc.
2. Risk analysis and evaluation of alternatives. Here we try
to find which other approaches can be implemented in order to
fulfill the identified constraints. Operational and technical
issues are addressed here. Risk mitigation is in focus in this
phase. And evaluation of all these factors determines future
3. Execution of that phase of development. In this phase
we develop the planned product. Testing is also done. In order
to do development, waterfall or incremental approach can be
4. Planning the next phase. Here we review the progress and
judge it considering all parameters. Issues which need to be
resolved are identified in this phase and necessary steps are
Advantage and Disadvantage Spiral
1)spiral Life Cycle Model is
one of the most flexible
SDLC models in place.
Development phases can be
determined by the project
manager, according to the
complexity of the project.
2) It is suitable for high risk
projects, where business
needs may be unstable.
3) Risk management is one
of the in-built features of the
model, which makes it extra
attractive compared to other
1) Cost involved in this
model is usually high.
2) It is a complicated
approach especially for
projects with a clear SRS.
3) Skills required, to
evaluate and review
project from time to time,
4) Rules and protocols
should be followed
properly to effectively
implement this model.
Doing so, through-out the
span of project is tough.
Agile methodology is an alternative to traditional
project management, typically used in software
development. It helps teams respond to
unpredictability through incremental, iterative
work cadences, known as sprints. Agile
methodologies are an alternative to waterfall, or
traditional sequential development.
Agile software development is a group
of software development methodologies based
on iterative and incremental development, where
requirements and solutions evolve through
collaboration between self-organizing, crossfunctional teams
The Agile Manifesto is based on twelve principles:
Customer satisfaction by rapid delivery of useful software
Welcome changing requirements, even late in development
Working software is delivered frequently (weeks rather than
Working software is the principal measure of progress
Sustainable development, able to maintain a constant pace
Close, daily cooperation between business people and
Face-to-face conversation is the best form of communication
Projects are built around motivated individuals, who should be
Continuous attention to technical excellence and good design
Simplicity—the art of maximizing the amount of work not done—
Regular adaptation to changing circumstances
Advantage and Disadvantage Agile
Customer satisfaction by
delivery of useful
People and interactions
are emphasized rather
than process and tools.
and testers constantly
interact with each other.
Working software is
(weeks rather than
is the best form of
• In case of some software
the large ones, it is
difficult to assess the
effort required at the
beginning of the software
development life cycle.
• There is lack of emphasis
on necessary designing
• The project can easily get
taken off track if the
customer representative is
not clear what final
outcome that they want.
What is prototyping??
Software prototyping, refers to the activity of
creating prototypesp of software applications, i.e., incomplete
versions of the software program being developed. It is an
activity that can occur in software development and is
comparable to prototyping as known from other fields, such
as mechanical engineering or manufacturing
A prototype is a model or a program which is not based on
strict planning, but is an early approximation of the final
product or software system. A prototype acts as a sample to
test the process. From this sample we learn and try to build a
better final product..
Advantage and disadvantage of prototype
Advantages of Prototype
Users are actively involved in
Since in this methodology a
working model of the system
is provided, the users get a
better understanding of the
system being developed.
Errors can be detected much
Quicker user feedback is
available leading to better
Missing functionality can be
o Leads to implementing and
then repairing way of
o Practically, this
methodology may increase
the complexity of the
system as scope of the
system may expand beyond
o Incomplete application may
cause application not to be
used as the
full system was designed
Incomplete or inadequate