Model of the Systems Development
Life Cycle with the Maintenance bubble highlighted.
The Systems Development Life Cycle (SDLC), or Software Development Life Cycle in systems engineering, information systems and software engineering, is the process of creating or altering systems, and the models and methodologies that people use to develop these systems. The concept generally refers to computer or information systems.
In software engineering the SDLC concept underpins many kinds of software development methodologies. These methodologies form the framework for planning and controlling the creation of an information system: the software development process.
Overview
Systems and Development Life Cycle (SDLC) is a process used by a systems analyst to develop an information system, including requirements, validation, training, 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 Information Technology infrastructure, and is inexpensive to maintain and cost-effective to enhance.
Computer systems are complex and often (especially with the recent rise of Service-Oriented Architecture) link multiple traditional systems potentially supplied by different software vendors. To manage this level of complexity, a number of SDLC models have been created: "waterfall"; "fountain"; "spiral"; "build and fix"; "rapid prototyping"; "incremental"; and "synchronize and stabilize”.
SDLC models can be described along a spectrum of agile to
iterative to sequential. Agile methodologies, such as XP and Scrum, focus on
light-weight processes which allow for rapid changes along the development
cycle. Iterative methodologies, such as Rational Unified Process and Dynamic
Systems Development Method, focus on limited project scopes and expanding or
improving products by multiple iterations. Sequential or big-design-upfront
(BDUF) models, such as Waterfall, focus on complete and correct planning to
guide large projects and risks to successful and predictable results.
Other models, such as
Anamorphic Development, tend to focus on a form of development that is guided
by project scope and adaptive iterations of feature development.
History
The systems development life cycle (SDLC) is a type of
methodology used to describe the process for building information systems,
intended to develop information systems in a very deliberate, structured and
methodical way, reiterating each stage of the life cycle. The systems
development life cycle, according to Elliott & Strachan & Radford
(2004), "originated in the 1960s to develop large scale functional business
systems in an age of large scale business conglomerates. Information systems
activities revolved around heavy data processing and number crunching
routines".
Several systems development frameworks have been partly
based on SDLC, such as the Structured Systems Analysis and Design Method
(SSADM) produced for the UK government Office of Government Commerce 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".
The System Development Life Cycle
framework provides system designers and developers to follow a sequence of
activities. It consists of a set of steps or phases in which each phase of the SDLC
uses the results of the previous one.
Systems analysis, requirements definition: Refines project goals into defined functions and operation of the intended application. Analyzes end-user information needs.
Systems design: Describes desired features and operations in detail, including screen layouts, business rules, process diagrams, pseudo code and other documentation.
Implementation: The real code is written here.
Integration and testing: Brings all the pieces together into a special testing environment, then checks for errors, bugs and interoperability.
Acceptance, installation, deployment: The final stage of initial development, where the software is put into production and runs actual business.
Maintenance: What happens during the rest of the software's life: changes, correction, additions, moves to a different computing platform and more. This, the least glamorous and perhaps most important step of all, goes on seemingly forever.
The tenth phase occurs when the system is disposed of and the task performed is either eliminated or transferred to other systems. The tasks and work products for each phase are described in subsequent chapters.
Systems
Development Phases
A Systems Development Life Cycle (SDLC) adheres to
important phases that are essential for developers, such as planning, analysis, design, and implementation, and are explained in the section
below. A number of system development life cycle (SDLC) models have been
created: waterfall, fountain, spiral, build and fix, rapid prototyping,
incremental, and synchronize and stabilize. The oldest of these, and the best
known, is the waterfall
model: a sequence of
stages in which the output of each stage becomes the input for the next. These
stages can be characterized and divided up in different ways, including the
following
Project planning, feasibility study: Establishes a high-level view of the intended project and
determines its goals.Systems analysis, requirements definition: Refines project goals into defined functions and operation of the intended application. Analyzes end-user information needs.
Systems design: Describes desired features and operations in detail, including screen layouts, business rules, process diagrams, pseudo code and other documentation.
Implementation: The real code is written here.
Integration and testing: Brings all the pieces together into a special testing environment, then checks for errors, bugs and interoperability.
Acceptance, installation, deployment: The final stage of initial development, where the software is put into production and runs actual business.
Maintenance: What happens during the rest of the software's life: changes, correction, additions, moves to a different computing platform and more. This, the least glamorous and perhaps most important step of all, goes on seemingly forever.
In the following example (see
picture) these stage of the Systems Development Life Cycle are divided in ten
steps from definition to creation and modification of IT work products:
The tenth phase occurs when the system is disposed of and the task performed is either eliminated or transferred to other systems. The tasks and work products for each phase are described in subsequent chapters.
Not every project will require that
the phases be sequentially executed. However, the phases are interdependent.
Depending upon the size and complexity of the project, phases may be combined
or may overlap.
System
Analysis
The
goal of system analysis is to determine where the
problem is in an attempt to fix the system. This step involves breaking down the system in different
pieces to analyze the situation, analyzing project goals, breaking down what
needs to be created and attempting to engage users so that definite
requirements can be defined. Requirements analysis sometimes requires
individuals/teams from client as well as service provider sides to get detailed
and accurate requirements....often there has to be a lot of communication to
and from to understand these requirements. Requirement gathering is the most
crucial aspect as many times communication gaps arise in this phase and this
leads to validation errors and bugs in the software program.
Design
In systems design the design 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 subsystems.
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 design.
Implementation
Modular and subsystem programming
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 software testing. 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 waterfall model, but usually some occur at this stage.
Following are the types of testing:
- Defect testing
- Path testing
- Data set testing.
- Unit testing
- System testing
- Integration testing
- Black box testing
- White box testing
- Regression testing
- Automation testing
- User acceptance testing
- Performance testing
- Production process that ensures that the program
performs the intended task.
Operations
and Maintenance
The
deployment of the system includes
changes and enhancements before the decommissioning or sunset of the system. Maintaining the system is an important
aspect of SDLC. As key personnel change positions in the organization, new
changes will be implemented, which will require system updates.
Management
and Control
SDLC
Phases Related to Management Controls.
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 Work Breakdown
Structure
(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.
Work
Breakdown Structured Organization
Work Breakdown Structure.
The
upper section of the Work Breakdown
Structure
(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. software engineering, systems engineering) 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 Statement of work (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 and
struct.
Baselines
in the SDLC
Baselines are an important part of
the Systems Development Life Cycle (SDLC). These baselines are established after four of the five
phases of the SDLC and
are critical to the iterative nature of the model . Each baseline is considered
as a milestone in the SDLC.
- Functional Baseline: established after the conceptual
design phase.
- Allocated Baseline: established after the preliminary
design phase.
- Product Baseline: established after the detail design
and development phase.
- Updated Product Baseline: established after the
production construction phase.
Complementary
to SDLC
- Software
Prototyping
- Joint Applications Design (JAD)
- Rapid
Application Development
(RAD)
- Extreme
Programming
(XP); extension of earlier work in Prototyping and RAD.
- Open Source
Development
- End-user
development
- Object Oriented Programming
Comparison of Methodology
Approaches (Post, & Anderson 2006)
| |||||||
SDLC
|
RAD
|
Open
Source
|
Objects
|
JAD
|
Prototyping
|
End
User
| |
Control
|
Formal
|
MIS
|
Weak
|
Standards
|
Joint
|
User
|
User
|
Time Frame
|
Long
|
Short
|
Medium
|
Any
|
Medium
|
Short
|
Short
|
Users
|
Many
|
Few
|
Few
|
Varies
|
Few
|
One or Two
|
One
|
MIS staff
|
Many
|
Few
|
Hundreds
|
Split
|
Few
|
One or Two
|
None
|
Transaction/DSS
|
Transaction
|
Both
|
Both
|
Both
|
DSS
|
DSS
|
DSS
|
Interface
|
Minimal
|
Minimal
|
Weak
|
Windows
|
Crucial
|
Crucial
|
Crucial
|
Documentation and training
|
Vital
|
Limited
|
Internal
|
In Objects
|
Limited
|
Weak
|
None
|
Integrity and security
|
Vital
|
Vital
|
Unknown
|
In Objects
|
Limited
|
Weak
|
Weak
|
Reusability
|
Limited
|
Some
|
Maybe
|
Vital
|
Limited
|
Weak
|
None
|
Few
people in the modern computing world would use a strict waterfall model for their Systems Development Life Cycle (SDLC)
as many modern methodologies have superseded this thinking. Some will argue
that the SDLC no longer applies to models like Agile computing, but it is still
a term widely in use in Technology circles. The SDLC practice has advantages in
traditional models of software development, that lends itself more to a
structured environment. The disadvantages to using the SDLC methodology is when
there is need for iterative development or (i.e. web development or e-commerce)
where stakeholders need to review on a regular basis the software being
designed. Instead of viewing SDLC from a strength or weakness perspective, it
is far more important to take the best practices from the SDLC model and apply
it to whatever may be most appropriate for the software being designed.
A comparison of the strengths and weaknesses of SDLC:
An alternative to the SDLC is Rapid Application Development, 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.
Comparison of Methodology
Approaches (Post, & Anderson 2006)
| |||||||
SDLC
|
RAD
|
Open
Source
|
Objects
|
JAD
|
Prototyping
|
End
User
| |
Control
|
Formal
|
MIS
|
Weak
|
Standards
|
Joint
|
User
|
User
|
Time Frame
|
Long
|
Short
|
Medium
|
Any
|
Medium
|
Short
|
Short
|
Users
|
Many
|
Few
|
Few
|
Varies
|
Few
|
One or Two
|
One
|
MIS staff
|
Many
|
Few
|
Hundreds
|
Split
|
Few
|
One or Two
|
None
|
Transaction/DSS
|
Transaction
|
Both
|
Both
|
Both
|
DSS
|
DSS
|
DSS
|
Interface
|
Minimal
|
Minimal
|
Weak
|
Windows
|
Crucial
|
Crucial
|
Crucial
|
Documentation and training
|
Vital
|
Limited
|
Internal
|
In Objects
|
Limited
|
Weak
|
None
|
Integrity and security
|
Vital
|
Vital
|
Unknown
|
In Objects
|
Limited
|
Weak
|
Weak
|
Reusability
|
Limited
|
Some
|
Maybe
|
Vital
|
Limited
|
Weak
|
None
|
An alternative to the SDLC is Rapid Application Development, 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.
To find good quality and solid aluminum alloy designed elegantly with shining black to suit your devices. You can pick the best IT Products in Australia!
ReplyDelete