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