The Software Development Lifecycle (SDLC)

advertisement
SDLC
Software Development Life Cycle
SDLC
Acronym for system development life cycle.
 Is the process of developing information
systems through:

–
–
–
–
–
Investigation
Analysis
Design
Implementation
Maintenance
SDLC

Also known as:
– information systems development or
– application development
Is a systems approach to problem solving
 Is made up of several phases, each
comprised of multiple steps ….

The Software Concept

Identifies and defines a need for the new
system
– The existing system is evaluated
– Deficiencies are identified
– This can be done by:
» Interviewing users of the system
» Consulting with support personnel
A Requirements Analysis

Analyses the information needs of the end
users
– The new system requirements are defined
– The deficiencies in the existing system must be
addressed with specific proposals for
improvement
The Architectural Design

Creates a blueprint for the design with the
necessary specifications for:
–
–
–
–
–
–
the hardware
the software
the people
the data resources
the security issues
the physical construction
Coding and Debugging
Creates and programs the final system
 The new components and programs must be
obtained and installed

System Testing

Evaluates the system's actual functionality
in relation to expected or intended
functionality
– Users of the system must be trained in its use
– All aspects of performance must be tested
– If necessary, adjustments must be made at this
stage
System Put to Use

Can be done in various ways:
– The new system can be phased in, according to
application or location, and the old system
gradually replaced
– In some cases, it may be more cost-effective to
shut down the old system and implement the
new system all at once
System Evaluation
Once the new system is up and running for
a while, it should be exhaustively evaluated
 Maintenance must be kept up rigorously at
all times
 Users of the system should be kept up-todate concerning the latest modifications and
procedures

Various SDLC Approaches








The waterfall model, the original SDLC method
Rapid Application Development (RAD)
Joint Application Development (JAD)
The fountain model
The spiral model
Build and fix
Synchronize-and-stabilize
Frequently, several models are combined into
some sort of hybrid process
Documentation
Is crucial regardless of the type of model
chosen or devised for any application
 Is usually done in parallel with the
development process.

Waterfall Model
Linear and sequential
 Distinct goals for each phase of
development
 Development moves from concept, through
design, implementation, testing, installation,
troubleshooting, and ends up at operation
and maintenance with no overlapping or
going over previous steps

Waterfall Model
Does not allow for much reflection or
revision
 Once an application is in the testing stage, it
is very difficult to go back and change
something that was not well-thought out in
the concept stage

Joint Application Development
A methodology that involves the client or
end user in the design and development of
an application, through a succession of
collaborative workshops called JAD
sessions
 Is thought to lead to faster development
times and greater client satisfaction,
because the client is involved throughout
the development process

Rapid Application Development

A concept that products can be developed faster
and of higher quality through:
– Gathering requirements using workshops or focus
groups
– Prototyping and early, reiterative user testing of designs
– The re-use of software components
– A rigidly paced schedule that defers design
improvements to the next product version
– Less formality in reviews and other team
communication

Is a variation of JAD
Build
A build is a version of a program
 As a rule, a build is a pre-release version
and as such is identified by a build number,
rather than by a release number
 Reiterative (repeated) builds are an
important part of the development process

Build



Throughout development, application components
are collected and repeatedly compiled for testing
purposes, to ensure a reliable final product
Build tools, such as Make or Ant, enable
developers to automate some programming tasks
As a verb, to build can mean either to write code
or to put individual coded components of a
program together
Synchronise and Stabilise
Is a systems development life cycle model
in which teams work in parallel on
individual application modules
 They frequently synchronise their code with
that of other teams
 They debug (stabilise) code regularly
throughout the development process.

Synchronise and Stabilise

The sync-and-stabilize model offers
advantages over the older waterfall model,
which is strictly sequential in nature
– Sync-and-stabilize development allows for
changes at any point in the process
– It can be flexible, and more easily able to
respond to market requirement changes
Download