Systems Development Life Cycle
Systems Development Life Cycle
Model of the Systems Development Life Cycle with the Maintenance bubble highlighted.
The Systems Development Life Cycle (SDLC), is the process of creating or altering systems, and the
models and that people use to develop these systems. The concept generally refers to .
In software engineering the SDLC concept underpins many kinds of . These methodologies form the
framework for planning and controlling the creation of an information system: the .
]Overview
Systems Development Life Cycle (SDLC) is a logical process used by a develop an , including, and user
(stakeholder) ownership. Any SDLC should result in a high quality system that meets or exceeds
customer expectations, reaches completion within time and cost estimates, works effectively and
efficiently in the current and planned , and is inexpensive to maintain and cost-effective to enhance.
Computer systems are complex and often (especially with the recent rise of ) link multiple traditional
systems potentially supplied by different software vendors. To manage this level of complexity, a number
of SDLC models have been created: "; "fountain". "build and fix"; and "synchronize and stabilize SDLC
models can be described along a spectrum of agile to iterative to sequential. , such as and , focus on
light-weight processes which allow for rapid changes along the development cycle methodologies, such
as and, focus on limited project scopes and expanding or improving products by multiple iterations.
Sequential or big-design-upfront (BDUF) models, such as, focus on complete and correct planning to
guide large projects and risks to successful and predictable results
Some agile and iterative proponents confuse the term SDLC with sequential or "more traditional"
processes; however, SDLC is an umbrella term for all methodologies for the design, implementation, and
release of softwareIn a project can be defined both with a (PLC) and an SDLC, during which slightly
different activities occur. According to Taylor (2004) "the project life cycle encompasses all the activities
of the , while the systems development life cycle focuses on realizing the product
History
The systems development lifecycle (SDLC) is a type of methodology used to describe the process for
building , intended to develop information systems in a very deliberate, structured and methodical way,
reiterating each stage of the . The systems development life cycle, according to Elliott & Strachan &
Radford (2004), "originated in the 1960s to develop large scale functional in an age of large scale .
Information systems activities revolved around heavy and routines".
Several systems development frameworks have been partly based on SDLC, such as the (SSADM)
produced for in the 1980s. Ever since, according to Elliott (2004), "the traditional life cycle approaches to
systems development have been increasingly replaced with alternative approaches and frameworks,
which attempted to overcome some of the inherent deficiencies of the traditional SDLC
Initiation/planning
To generate a high-level view of the intended and determine the of the project. The is sometimes used
to present the project to upper management in an attempt to gain funding. Projects are typically evaluated
in three areas of feasibility: economical, operational or organizational, and technical. Furthermore, it is
also used as a reference to keep the project on track and to evaluate the progress of the MIS team. The
MIS is also a complement of those phases. This phase is also called as analysis phase.
Design
In functions and operations are described in detail, including screen layouts, business rules, process
diagrams and other documentation. The output of this stage will describe the new system as a collection
of modules or .
The design stage takes as its initial input the requirements identified in the approved requirements
document. For each requirement, a set of one or more design elements will be produced as a result of
interviews, workshops, and/or prototype efforts. Design elements describe the desired software features
in detail, and generally include functional hierarchy diagrams, screen layout diagrams, tables of business
rules, business process diagrams, pseudocode, and a complete entity-relationship diagram with a full
data dictionary. These design elements are intended to describe the software in sufficient detail that
skilled programmers may develop the software with minimal additional input.
Build or coding
and subsystem code will be accomplished during this stage. Unit testing and module testing are done in
this stage by the developers. This stage is intermingled with the next in that individual modules will need
testing before integration to the main project.
Testing
The code is tested at various levels in . Unit, system and user acceptance testings are often performed.
This is a grey area as many different opinions exist as to what the stages of testing are and how much if
any iteration occurs. Iteration is not generally part of the, but usually some occur at this stage.
The Systems Development Life Cycle (SDLC) phases serve as a programmatic guide to project activity
and provide a flexible but consistent way to conduct projects to a depth matching the scope of the project.
Each of the SDLC phase objectives are described in this section with key deliverables, a description of
recommended tasks, and a summary of related control objectives for effective management. It is critical
for the project manager to establish and monitor control objectives during each SDLC phase while
executing projects. Control objectives help to provide a clear statement of the desired result or purpose
and should be used throughout the entire SDLC process. Control objectives can be grouped into major
categories (Domains), and relate to the SDLC phases as shown in the figure.
To manage and control any SDLC initiative, each project will be required to establish some degree of a
(WBS) to capture and schedule the work necessary to complete the project. The WBS and all
programmatic material should be kept in the “Project Description” section of the project notebook. The
WBS format is mostly left to the project manager to establish in a way that best describes the project
work. There are some key areas that must be defined in the WBS as part of the SDLC policy. The
following diagram describes three key areas that will be addressed in the WBS in a manner established
by the project manager.
The upper section of the (WBS) should identify the major phases and milestones of the project in a
summary fashion. In addition, the upper section should provide an overview of the full scope and timeline
of the project and will be part of the initial project description effort leading to project approval. The middle
section of the WBS is based on the seven Systems Development Life Cycle (SDLC) phases as a guide
for WBS task development. The WBS elements should consist of milestones and “tasks” as opposed to
“activities” and have a definitive period (usually two weeks or more). Each task must have a measurable
output (e.g. document, decision, or analysis). A WBS task may rely on one or more activities (e.g., ) and
may require close coordination with other tasks, either internal or external to the project. Any part of the
project needing support from contractors should have a (SOW) written to include the appropriate tasks
from the SDLC phases. The development of a SOW does not occur during a specific phase of SDLC but
is developed to include the work from the SDLC process that may be conducted by external resources
such as contractors.
An alternative to the SDLC is , which combines prototyping, Joint Application Development and
implementation of CASE tools. The advantages of RAD are speed, reduced development cost, and active
user involvement in the development process.
It should not be assumed that just because the waterfall model is the oldest original SDLC model that it is
the most efficient system. At one time the model was beneficial mostly to the world of automating
activities that were assigned to clerks and accountants. However, the world of technological evolution is
demanding that systems have a greater functionality that would assist help desk
technicians/administrators or information technology specialists/analysts.
.
Further reading
Blanchard, B. S., & Fabrycky, W. J.(2006) Systems engineering and analysis (4th ed.) New
Jersey: Prentice Hall.
Cummings, Haag (2006). Management Information Systems for the Information Age. Toronto,
McGraw-Hill Ryerson
Beynon-Davies P. (2009). Business Information Systems. Palgrave, Basingstoke. ISBN: 978-0-
230-20368-6
, Retrieved on June 22, 2006 from the World Wide Web:
, Retrieved on June 22, 2006 from the World Wide Web:
This article was originally based on material from the , which is under the .
External links