The Software Development Lifecycle (SDLC)

Software Development Life Cycle
Acronym for system development life cycle.
 Is the process of developing information
systems through:
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
– 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
– The new system requirements are defined
– The deficiencies in the existing system must be
addressed with specific proposals for
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
– 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
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
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
Frequently, several models are combined into
some sort of hybrid process
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 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
 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
 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
– 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
Is a variation of JAD
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
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
Related flashcards

Programming constructs

28 cards

Create Flashcards