New books and articles are appearing on analysis patterns and refactoring the development process. Analysts are recognizing that our
development processes need to support repeated refinement and our tools need to support this approach. In short, our development processes are broken, and we need to apply deliberate effort to rethink our approach to systems development.
The systems development life cycle (SDLC), also referred to as the application development life-cycle, is a term used in systems engineering, information systems and software engineering to describe a process for
- planning,
- creating,
- testing, and
- deploying
an information system.
The systems development life-cycle 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.
A
systems development life cycle is composed of a number of clearly defined and distinct work phases which are used by systems engineers and systems developers to plan for, design, build, test, and deliver information systems.
Like anything that is manufactured on an assembly line, an SDLC aims to produce high quality systems that meet or exceed customer expectations,
based on customer requirements, by delivering systems which move through each clearly defined phase, within scheduled time-frames and cost estimates.
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 or methodologies have been created, such as
- "waterfall";
- "spiral";
- "Agile software development";
- "rapid prototyping";
- "incremental"; and
- "synchronize and stabilize".