
In
systems engineering
Systems engineering is an interdisciplinary field of engineering and engineering management that focuses on how to design, integrate, and manage complex systems over their Enterprise life cycle, life cycles. At its core, systems engineering uti ...
,
information system
An information system (IS) is a formal, sociotechnical, organizational system designed to collect, process, Information Processing and Management, store, and information distribution, distribute information. From a sociotechnical perspective, info ...
s and
software engineering
Software engineering is a branch of both computer science and engineering focused on designing, developing, testing, and maintaining Application software, software applications. It involves applying engineering design process, engineering principl ...
, the systems development life cycle (SDLC), also referred to as the application development life cycle, is a process for planning, creating, testing, and deploying an
information system
An information system (IS) is a formal, sociotechnical, organizational system designed to collect, process, Information Processing and Management, store, and information distribution, distribute information. From a sociotechnical perspective, info ...
. The SDLC concept applies to a range of hardware and software configurations, as a system can be composed of hardware only, software only, or a combination of both. There are usually six stages in this cycle: requirement analysis, design, development and testing, implementation, documentation, and evaluation.
Overview
A systems development life cycle is composed of distinct work phases that are used by systems engineers and systems developers to deliver
information system
An information system (IS) is a formal, sociotechnical, organizational system designed to collect, process, Information Processing and Management, store, and information distribution, distribute information. From a sociotechnical perspective, info ...
s. Like anything that is manufactured on an assembly line, an SDLC aims to produce high-quality systems that meet or exceed expectations, based on requirements, by delivering systems within scheduled time frames and cost estimates. Computer systems are complex and often link components with varying origins. Various SDLC methodologies have been created, such as
waterfall
A waterfall is any point in a river or stream where water flows over a vertical drop or a series of steep drops. Waterfalls also occur where meltwater drops over the edge
of a tabular iceberg or ice shelf.
Waterfalls can be formed in seve ...
,
spiral,
agile,
rapid prototyping,
incremental, and synchronize and stabilize.
SDLC methodologies fit within a flexibility spectrum ranging from agile to iterative to sequential. Agile methodologies, such as
XP and
Scrum, focus on lightweight processes that allow for rapid changes.
Iterative methodologies, such as
Rational Unified Process
The rational unified process (RUP) is an iterative software development process framework created by the Rational Software Corporation, a division of IBM since 2003. RUP is not a single concrete prescriptive process, but rather an adaptable proc ...
and
dynamic systems development method
Dynamic systems development method (DSDM) is an Agile management, agile project delivery framework, initially used as a software development methodology, software development method. First released in 1994, DSDM originally sought to provide some ...
, focus on stabilizing project scope and iteratively expanding or improving products. Sequential or big-design-up-front (BDUF) models, such as waterfall, focus on complete and correct planning to guide larger projects and limit risks to successful and predictable results.
Anamorphic development is guided by project scope and adaptive iterations.
In
project management
Project management is the process of supervising the work of a Project team, team to achieve all project goals within the given constraints. This information is usually described in project initiation documentation, project documentation, crea ...
a project can include both a
project life cycle (PLC) and an SDLC, during which somewhat different activities occur. According to Taylor (2004), "the project life cycle encompasses all the activities of the
project
A project is a type of assignment, typically involving research or design, that is carefully planned to achieve a specific objective.
An alternative view sees a project managerially as a sequence of events: a "set of interrelated tasks to be ...
, while the systems development life cycle focuses on realizing the product
requirement
In engineering, a requirement is a condition that must be satisfied for the output of a work effort to be acceptable. It is an explicit, objective, clear and often quantitative description of a condition to be satisfied by a material, design, pro ...
s".
SDLC is not a methodology per se, but rather a description of the phases that a methodology should address. The list of phases is not definitive, but typically includes planning, analysis, design, build, test, implement, and maintenance/support. In the Scrum framework, for example, one could say a single user story goes through all the phases of the SDLC within a two-week sprint. By contrast the waterfall methodology, where every business requirement is translated into feature/functional descriptions which are then all implemented typically over a period of months or longer.
History
According to Elliott (2004), SDLC "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
Data processing is the collection and manipulation of digital data to produce meaningful information. Data processing is a form of ''information processing'', which is the modification (processing) of information in any manner detectable by an o ...
and
number crunching routines".
[Geoffrey Elliott (2004) ''Global Business Information Technology''. p.87.]
The
structured systems analysis and design method (SSADM) was 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".
Models

SDLC provides a set of phases/steps/activities for system designers and developers to follow. Each phase builds on the results of the previous one.
[US Department of Justice (2003)]
INFORMATION RESOURCES MANAGEMENT
Chapter 1. Introduction. Not every project requires that the phases be sequential. For smaller, simpler projects, phases may be combined/overlap.
Waterfall
The oldest and best known is the
waterfall model, which uses a linear sequence of steps.
Waterfall has different varieties. One variety is as follows:
Preliminary analysis
Conduct with a preliminary analysis, consider alternative solutions, estimate costs and benefits, and submit a preliminary plan with recommendations.
:* Conduct preliminary analysis: Identify the organization's objectives and define the nature and scope of the project. Ensure that the project fits with the objectives.
:* Consider alternative solutions: Alternatives may come from interviewing employees, clients, suppliers, and consultants, as well as competitive analysis.
:* Cost-benefit analysis: Analyze the costs and benefits of the project.
Systems analysis, requirements definition
Decompose project goals into defined functions and operations. This involves gathering and interpreting facts, diagnosing problems, and recommending changes. Analyze end-user information needs and resolve inconsistencies and incompleteness:
:* Collect facts: Obtain end-user requirements by document review, client interviews, observation, and questionnaires.
:* Scrutinize existing system(s): Identify pros and cons.
:* Analyze the proposed system: Find solutions to issues and prepare specifications, incorporating appropriate user proposals.
Systems design
At this step, desired features and operations are detailed, including screen layouts,
business rule A business rule defines or constrains some aspect of a business. It may be expressed to specify an action to be taken when certain conditions are true or may be phrased so it can only resolve to either true or false. Business rules are intended to a ...
s,
process diagrams,
pseudocode, and other deliverables.
Development
Write the code.
Integration and testing
Assemble the modules in a testing environment. Check for errors, bugs, and interoperability.
Acceptance, installation, deployment
Put the system into production. This may involve training users, deploying hardware, and loading information from the prior system.
Maintenance
Monitor the system to assess its ongoing fitness. Make modest changes and fixes as needed. To maintain the quality of the system. Continual monitoring and updates ensure the system remains effective and high-quality.
Evaluation
The system and the process are reviewed. Relevant questions include whether the newly implemented system meets requirements and achieves project goals, whether the system is usable, reliable/available, properly scaled and fault-tolerant. Process checks include review of timelines and expenses, as well as user acceptance.
Disposal
At end of life, plans are developed for discontinuing the system and transitioning to its replacement. Related information and infrastructure must be repurposed, archived, discarded, or destroyed, while appropriately protecting security.
In the following diagram, these stages are divided into ten steps, from definition to creation and modification of IT work products:
Systems analysis and design
Systems analysis and design (SAD) can be considered a meta-development activity, which serves to set the stage and bound the problem. SAD can help balance competing high-level requirements. SAD interacts with distributed enterprise architecture, enterprise I.T. Architecture, and business architecture, and relies heavily on concepts such as partitioning, interfaces, personae and roles, and deployment/operational modeling to arrive at a high-level system description. This high-level description is then broken down into the components and modules which can be analyzed, designed, and constructed separately and integrated to accomplish the business goal. SDLC and SAD are cornerstones of full life cycle product and system planning.
Object-oriented analysis and design
Object-oriented analysis and design
Object-oriented analysis and design (OOAD) is a technical approach for analyzing and designing an application, system, or business by applying object-oriented programming, as well as using visual modeling throughout the software development pro ...
(OOAD) is the process of analyzing a problem domain to develop a conceptual
model
A model is an informative representation of an object, person, or system. The term originally denoted the plans of a building in late 16th-century English, and derived via French and Italian ultimately from Latin , .
Models can be divided in ...
that can then be used to guide development. During the analysis phase, a programmer develops written requirements and a formal vision document via interviews with stakeholders.
The conceptual model that results from OOAD typically consists of
use cases, and
class and
interaction diagrams. It may also include a
user interface
In the industrial design field of human–computer interaction, a user interface (UI) is the space where interactions between humans and machines occur. The goal of this interaction is to allow effective operation and control of the machine fro ...
mock-up.
An output
artifact does not need to be completely defined to serve as input of object-oriented design; analysis and design may occur in parallel. In practice the results of one activity can feed the other in an iterative process.
Some typical input artifacts for OOAD:
*
Conceptual model
The term conceptual model refers to any model that is formed after a wikt:concept#Noun, conceptualization or generalization process. Conceptual models are often abstractions of things in the real world, whether physical or social. Semantics, Semant ...
: A conceptual model is the result of object-oriented analysis. It captures concepts in the problem domain. The conceptual model is explicitly independent of implementation details.
*
Use cases: A use case is a description of sequences of events that, taken together, complete a required task. Each use case provides
scenarios that convey how the system should interact with actors (users). Actors may be end users or other systems. Use cases may further elaborated using diagrams. Such diagrams identify the actor and the processes they perform.
*
System Sequence Diagram: A System Sequence diagrams (SSD) is a picture that shows, for a particular use case, the events that actors generate, their order, including inter-system events.
* User interface document: Document that shows and describes the user interface.
*
Data model: A data model describes how data elements relate to each other. The data model is created before the design phase. Object-oriented designs map directly from the data model. Relational designs are more involved.
System lifecycle
The system lifecycle is a view of a system or proposed system that addresses all phases of its existence to include system conception, design and development, production and/or construction, distribution, operation, maintenance and support, retirement, phase-out, and disposal.
Conceptual design
The
conceptual design stage is the stage where an identified need is examined, requirements for potential solutions are defined, potential solutions are evaluated, and a system specification is developed. The system specification represents the technical requirements that will provide overall guidance for system design. Because this document determines all future development, the stage cannot be completed until a conceptual
design review has determined that the system specification properly addresses the motivating need.
Key steps within the conceptual design stage include:
*Need identification
*Feasibility analysis
*System requirements analysis
*System specification
*Conceptual design review
Preliminary system design
During this stage of the system lifecycle, subsystems that perform the desired system functions are designed and specified in compliance with the system specification. Interfaces between subsystems are defined, as well as overall test and evaluation requirements. At the completion of this stage, a development specification is produced that is sufficient to perform detailed design and development.
Key steps within the preliminary design stage include:
*Functional analysis
*Requirements allocation
*Detailed trade-off studies
*Synthesis of system options
*Preliminary design of engineering models
*Development specification
*Preliminary design review
For example, as the system analyst of Viti Bank, you have been tasked to examine the current information system. Viti Bank is a fast-growing bank in
Fiji
Fiji, officially the Republic of Fiji, is an island country in Melanesia, part of Oceania in the South Pacific Ocean. It lies about north-northeast of New Zealand. Fiji consists of an archipelago of more than 330 islands—of which about ...
. Customers in remote rural areas are finding difficulty to access the bank services. It takes them days or even weeks to travel to a location to access the bank services. With the vision of meeting the customers' needs, the bank has requested your services to examine the current system and to come up with solutions or recommendations of how the current system can be provided to meet its needs.
Detail design and development
This stage includes the development of detailed designs that brings initial design work into a completed form of specifications. This work includes the specification of interfaces between the system and its intended environment, and a comprehensive evaluation of the systems logistical, maintenance and support requirements. The detail design and development is responsible for producing the product, process and material specifications and may result in substantial changes to the development specification.
Key steps within the detail design and development stage include:
*Detailed design
*Detailed synthesis
*Development of engineering and
prototype
A prototype is an early sample, model, or release of a product built to test a concept or process. It is a term used in a variety of contexts, including semantics, design, electronics, and Software prototyping, software programming. A prototype ...
models
*Revision of development specification
*Product, process, and material specification
*Critical design review
Production and construction
During the production and/or construction stage the product is built or assembled in accordance with the requirements specified in the product, process and material specifications, and is deployed and tested within the operational target environment. System assessments are conducted in order to correct deficiencies and adapt the system for continued improvement.
Key steps within the product construction stage include:
*Production and/or construction of system components
*Acceptance testing
*System distribution and operation
*Operational testing and evaluation
*System assessment
Utilization and support
Once fully deployed, the system is used for its intended operational role and maintained within its operational environment.
Key steps within the utilization and support stage include:
*System operation in the user environment
*Change management
*System modifications for improvement
*System assessment
Phase-out and disposal
Effectiveness and efficiency of the system must be continuously evaluated to determine when the product has met its maximum effective lifecycle. Considerations include: Continued existence of operational need, matching between operational requirements and system performance, feasibility of system phase-out versus maintenance, and availability of alternative systems.
Phases
System investigation
During this step, current priorities that would be affected and how they should be handled are considered. A
feasibility study
A feasibility study is an assessment of the practicality of a project or system. A feasibility study aims to objectively and rationally uncover the strengths and weaknesses of an existing business or proposed venture, opportunities and threats pr ...
determines whether creating a new or improved system is appropriate. This helps to estimate costs, benefits, resource requirements, and specific user needs.
The feasibility study should address
operational,
financial
Finance refers to monetary resources and to the study and Academic discipline, discipline of money, currency, assets and Liability (financial accounting), liabilities. As a subject of study, is a field of Business administration, Business Admin ...
,
technical
Technical may refer to:
* Technical (vehicle), an improvised fighting vehicle
* Technical area, an area which a manager, other coaching personnel, and substitutes are allowed to occupy during a football match
* Technical advisor, a person who ...
, human factors, and
legal/political concerns.
Analysis
The goal of
analysis
Analysis (: analyses) is the process of breaking a complex topic or substance into smaller parts in order to gain a better understanding of it. The technique has been applied in the study of mathematics and logic since before Aristotle (38 ...
is to determine where the problem is. This step involves decomposing the system into pieces, analyzing project goals, breaking down what needs to be created, and engaging users to define requirements.
Design
In
systems design, functions and operations are described in detail, including screen layouts, business rules, process diagrams, and other documentation. Modular design reduces complexity and allows the outputs to describe the system as a collection of subsystems.
The design stage takes as its input the requirements already defined. For each requirement, a set of design elements is produced.
Design documents typically include functional hierarchy diagrams, screen layouts, business rules, process diagrams, pseudo-code, and a complete
data model with a
data dictionary
A data dictionary, or metadata repository, as defined in the ''IBM Dictionary of Computing'', is a "centralized repository of information about data such as meaning, relationships to other data, origin, usage, and format". ''Oracle Corporation, ...
. These elements describe the system in sufficient detail that developers and engineers can develop and deliver the system with minimal additional input.
Testing
The code is tested at various levels in
software testing
Software testing is the act of checking whether software satisfies expectations.
Software testing can provide objective, independent information about the Quality (business), quality of software and the risk of its failure to a User (computin ...
. Unit, system, and user acceptance tests are typically performed. Many approaches to testing have been adopted.
The following types of testing may be relevant:
*
Path testing
*
Data set testing
*
Unit testing
Unit testing, component or module testing, is a form of software testing by which isolated source code is tested to validate expected behavior.
Unit testing describes tests that are run at the unit-level to contrast testing at the Integration ...
*
System testing
System testing, a.k.a. end-to-end (E2E) testing, is testing conducted on a complete software system.
System testing describes testing at the system level to contrast to testing at the system integration, integration or unit level.
System t ...
*
Integration testing
*
Black-box testing
*
White-box testing
White-box testing (also known as clear box testing, glass box testing, transparent box testing, and structural testing) is a method of software testing that tests internal structures or workings of an application, as opposed to its functionality ...
*
Regression testing
Regression testing (rarely, ''non-regression testing'') is re-running functional and non-functional tests to ensure that previously developed and tested software still performs as expected after a change. If not, that would be called a '' regr ...
*
Automation testing
*
User acceptance testing
*
Software performance testing
Training and transition
Once a system has been stabilized through testing, SDLC ensures that proper training is prepared and performed before transitioning the system to support staff and end users. Training usually covers operational training for support staff as well as end-user training.
After training, systems engineers and developers transition the system to its production environment.
Operations and maintenance
Maintenance
The technical meaning of maintenance involves functional checks, servicing, repairing or replacing of necessary devices, equipment, machinery, building infrastructure and supporting utilities in industrial, business, and residential installa ...
includes changes, fixes, and enhancements.
Evaluation
The final phase of the SDLC is to measure the effectiveness of the system and evaluate potential enhancements.
Life cycle
Management and control

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 while executing projects. Control objectives are clear statements of the desired result or purpose and should be defined and monitored throughout a project. Control objectives can be grouped into major categories (domains), and relate to the SDLC phases as shown in the figure.
To manage and control a substantial SDLC initiative, a
work breakdown structure
A work-breakdown structure (WBS) in project management and systems engineering is a breakdown of a project into smaller components. It is a key project management element that organizes the team's work into manageable sections. The Project Mana ...
(WBS) captures and schedules the work. The WBS and all programmatic material should be kept in the "project description" section of the project notebook. The project manager chooses a WBS format that best describes the project.
The diagram shows that coverage spans numerous phases of the SDLC but the associated MCD (Management Control Domains) shows mappings to SDLC phases. For example, Analysis and Design is primarily performed as part of the Acquisition and Implementation Domain, and System Build and Prototype is primarily performed as part of delivery and support.
Work breakdown structured organization

The upper section of the WBS provides an overview of the project scope and timeline. It should also summarize the major phases and milestones. The middle section is based on the SDLC phases. WBS elements consist of milestones and tasks to be completed rather than activities to be undertaken and have a deadline. Each task has a measurable output (e.g., analysis document). A WBS task may rely on one or more activities (e.g. coding). Parts of the project needing support from contractors should have a
statement of work
A statement of work (SOW) is a document routinely employed in the field of project management. It is the narrative description of a project's work requirement. It defines project-specific activities, deliverables and timelines for a vendor providin ...
(SOW). 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 contractors.
Baselines
Baselines are established after four of the five phases of the SDLC, and are critical to the
iterative nature of the model.
[ Blanchard, B. S., & Fabrycky, W. J.(2006) ''Systems engineering and analysis'' (4th ed.) New Jersey: Prentice Hall. p.31] Baselines become milestones.
* 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.
Alternative methodologies
Alternative
software development methods to systems development life cycle are:
*
Software prototyping
*
Joint applications development (JAD)
*
Rapid application development (RAD)
*
Extreme programming
Extreme programming (XP) is a software development methodology intended to improve software quality and responsiveness to changing customer requirements. As a type of agile software development,"Human Centred Technology Workshop 2006 ", 2006, ...
(XP);
*
Open-source development
*
End-user development
*
Object-oriented programming
Object-oriented programming (OOP) is a programming paradigm based on the concept of '' objects''. Objects can contain data (called fields, attributes or properties) and have actions they can perform (called procedures or methods and impl ...
Strengths and weaknesses
Fundamentally, SDLC trades flexibility for control by imposing structure. It is more commonly used for large scale projects with many developers.
See also
*
Application lifecycle management
Application lifecycle management (ALM) is the product lifecycle management (governance, development, and maintenance) of computer programs. It encompasses requirements management, software architecture, computer programming, software testing, ...
*
Decision cycle
A decision cycle or decision loop is a sequence of steps used by an entity on a repeated basis to reach and implement decisions and to learn from the results. The "decision cycle" phrase has a history of use to broadly categorize various methods o ...
*
IPO model
*
Software development methodologies
References
Further reading
* Cummings, Haag (2006). ''Management Information Systems for the Information Age''. Toronto, McGraw-Hill Ryerson
* Beynon-Davies P. (2009). ''Business Information Systems''. Palgrave, Basingstoke.
Computer World, 2002 Retrieved on June 22, 2006, from the World Wide Web:
Management Information Systems, 2005 Retrieved on June 22, 2006, from the World Wide Web:
External links
Pension Benefit Guaranty Corporation – Information Technology Solutions Lifecycle Methodology* DoD Integrated Framework Chart IFC
frontback
FSA Life Cycle FrameworkHHS Enterprise Performance Life Cycle FrameworkThe Open Systems Development Life CycleSystem Development Life Cycle Evolution ModelingZero Deviation Life CycleIntegrated Defense AT&L Life Cycle Management Chart the U.S. DoD form of this concept.
{{Authority control
Systems engineering
Computing terminology
Software development process
Software engineering