Sei sulla pagina 1di 35

Lecture tw0

SDLC and Software

Process Models
Nana Kwabena Sarpong
(J-Prompt Professional Institute of Technology)

Software Development Life


software development life cycle is

a set of stages which indicates how
we could develop software. It usually
shows either a descriptive or
prescriptive characterization of how
software is or should be developed.
Also called SDLC

What is SDLC?

is a process followed for a

software project, within a software
organization. It consists of a detailed
plan describing how to develop,
maintain, replace and alter or
enhance specific software.

Typical SDLC Stages


typical Software Development life

cycle consists of the following stages:
Stage 1: Feasibility Study
Stage 2: Requirements Analysis
Stage 3: System Design
Stage 4: Development
Stage 5: Testing
Stage 6: Implementation
Stage 7: Maintenance


delivery of high quality

Provide strong management controls
Maximize productivity

Software Process Model


are various software development life

cycle models defined and designed which are
followed during software development
process. The are also called Software process
Water Fall Model *
Spiral Model
V Model
Iterative Model
Prototyping *
RAD(Rapid Application Development) *

Waterfall Model

Waterfall Model was first Process Model

to be introduced. It is also referred to as a
linear-sequential life cycle model or
classic software life cycle or
sequential model or traditional
waterfall process model .It is very simple
to understand and use. In a waterfall
model, each phase must be completed
before the next phase can beg in and there
is no overlapping in the phases

Waterfall Model

Waterfall Model-Feasibility

feasibility study establishes

whether or not the project is to
proceed. It may be that the system
is unnecessary, too expensive or too
risky. One approach to a feasibility
study is to perform cost-benefit

Waterfall - Analysis

possible requirements of the

system to be developed are captured
in this phase and documented in a
requirement specification doc. the
developer finds out what the user
(client or customer) wants the
software to do and records the
requirements as clearly as possible.
The product of this stage is a
requirements specification.

Waterfall Design Phase


requirement specifications from

first phase are studied in this phase
and system
design is prepared.

Waterfall-Coding phase

detailed designs are converted

into instructions written in the
programming language. If system is
large it is developed into small
programs or modules called units .
There may be a choice of
programming languages, from which
one must be selected. The product is
the code

Waterfall-Testing phase

units of the system coded are

tested separately for errors and
failures (unit testing). The overall
system is also tested(system

WaterfallImplementation phase

all testing is done, the product

is deployed in the customer
environment or released into the
market. At this phase the system is
put to use.

Waterfall-Maintenance &

the software is in use, sooner

or later it will almost certainly need
fixing or enhancing. Making these
changes constitutes maintenance.
Software maintenance often
goes on for years after the software
is first constructed. The product of
this activity is
the modified software


approach with specific stages

Reflects common engineering practices
It is documentation driven, that is,
documentation is produced at every
Simple and easy to understand and use
Clearly defined stages.
Provides structure to inexperienced staf


cope well with changes required

by the client
Development teams might wait for each
The customer only sees a working
version of the product after it has been
coded. This may result in disaster if any
undetected problems are precipitated to
this stage.
All requirements must be known upfront


is the practice of building

an early version of a system which
does not necessarily reflect all the
features of the final system, but
rather those which are of interest.


prototyping, the customer is presented at a

very early stage with a working version of the
system. (It may not be a complete system, but
it is at least part of the system and it works.)
They can check that it does what they want,
or specify modifications. The developer amends
the system and demonstrates it again
and again until it does what the customer
wants. Thus the main purpose of prototyping
is ensuring that the users needs are satisfied

Types of Prototype

Evolutionary Prototyping

Throwaway Prototype

throwaway prototyping the various

versions of the system are
constructed and then thrown away.
(The final system is implemented in
some diferent way.)
A throwaway prototype implements
only those requirements that are
poorly understood. It is discarded
after the desired information is

Throwaway Prototyping

prototyping is sometimes
called rapid prototyping and as the
name suggests, a rapid prototype
should cost very little and take very
little time to develop.


type of prototyping is based on

the idea of developing an initial
exposing it to user comment and
refining it through repeated stages
until an adequate
system has been developed


Prototyping has a very

big advantage over Throwaway
Prototyping. The advantage is in the
fact that evolutionary prototypes are
functional systems. Although they
may not have all the features the
users have planned, they may be
used on an interim basis until the
final system is delivered.

Advantages of
Prototypes may be easily changed or even discarded.
Prototyping may improve communication between and among
developers and customers
Users may be more satisfied with systems developed using prototyping.
A prototype may provide the proof of concept necessary to attract
A prototype may serve as a marketing tool.
A prototype may serve as the basis for operational specifications.
Early visibility of the prototype may help management assess progress.
Exploratory prototyping allows productive work to proceed despite
initial uncertainties.
Prototypes may demonstrate progress at an early stage of
Prototypes may provide early training for future users of the system.
Prototyping may prevent unpleasant surprises by calling attention to
incomplete or inconsistent requirements, or to missing functionality.

Disadvantages of
Prototyping may encourage an excess of change requests.
Working prototypes may lead management and customers to believe
that the final product is almost ready for delivery.
The excellent (or disappointing) performance characteristics of
prototypes may mislead the customer.
Customers may not be prepared to provide the level or frequency of
feedback required for iterative prototyping.
Customers may not be willing to participate in the iteration cycle over
the long haul
Developers may have difficulty writing the back-end code needed to
support the slick front-end interface designed with the prototyping
Due to time and market constraints, system specifications may be
frozen before the prototyping process has reached a definitive stage.
During prototyping, the only "design specification" is the prototype
itself, which may allow uncontrolled change.
Early prototypes may be of low fidelity, dismissed as toys.

RAD(Rapid Application

is a linear sequential software

development process model that
emphasis an extremely short
development cycle using a
component based construction

Rapid Application Development as

an approach to building computer
systems which combines Computer-

Phases of RAD

Data Modeling
Process Modeling
Application Generation
Testing and Turn over

Business Modeling
In this phase, define the flow of information

within the organization, so that it covers all

the functions. Questions like what
information drives the business
process, what information is
generated, who generates it, where
does the information go, who
process it and so on.
This helps in clearly understand the nature,
type ,source and process of information

Data Modeling
In this phase, convert the component of the

information flow into a set of data objects.

Each object is referred as an Entity that are
needed to support the business. The
attributes (character of each entity)
are identified and the relation
between these data objects (entities)
is defined.

Process Modeling

data object defined in the data

modeling phase are transformed to
achieve the information flow
necessary to implement a business
function. In addition adding , deleting,
modifying and retrieving the data objects are
included in process modeling.

Application Generation

this phase, the generation of the application

and coding take place. Using fourth
generation programming languages or 4 GL
tools is the preferred choice for the software

Testing and Turn Over


of the programming
components have already been
tested since RAD emphasis reuse.
This reduces overall testing time. But
new components must be tested and
all interfaces must be fully exercised
Resembles the final tasks in the
SDLC implementation phase,
including data conversion, testing,
changeover to the new system, and

Advantages of RAD

to emphasis on rapid development , it results

in the delivery of fully functional project in short

time period.

encourages the development of program

component reusable.

obtain support from automated

tools and techniques.

Disadvantages of RAD

requires dedication and commitment on the part of the

developers as well as the client to meet the deadline. If
either party is indifferent in needs of other, the project
will run into serious problem.
Its application area is restricted to system that are
modular and reusable in nature.
It is not suitable for the applications that have a high
degree of technical risk.
It is not suitable for the large projects because they
require more manpower for creating multiple RAD