系统开发生命周期模型，强调维护阶段。
**系统发展生命周期**（英語：，），也称**软件生命周期**，是系统工程、信息系统和软件工程中的术语，用于描述一个信息系统从规划、创建、测试到最终完成部署的全过程。系统开发生命周期的概念对于硬件和软件系统都是適用的，这些系统可能只由硬件或软件组成，也可能两者都有。

概述
--

系统发展生命周期由一系列明确定义的不同工作阶段组成，有助于系统工程师和系统开发人员利用对系统的设计、构建、测试和交付进行计划。就像任何在生产装配线上制造的东西一样，SDLC的目标是根据客户需求生产满足或超越客户的期望的高质量的系统。所发布的系统经过了每一个工作阶段，其中包括了时间时限和成本估计。计算机系统是复杂的（尤其是近期兴起的面向服务的体系结构），通常涉及到多个传统系统，这些系统可能需要由不同的软件供应商提供。管理这种级别的复杂性，许多SDLC模型或方法被创建，如"瀑布模型"、"螺旋模型"、"敏捷软件开发"、"快速原型模型"、"增量模型"；和"同步及稳定"。

SDLC可以看做一个快速迭代的过程。敏捷的方法，如XP和Scrum，专注于轻量级进程，这些轻量级进程在开发周期中允许快速的变化(不一定要按照SDLC的开发模型)。迭代法，例如统一软件开发过程和动态系统开发方法（英语：），专注于有限的项目范围并通过多个迭代来扩大或改善产品由。顺序模型或预先大量设计模型（BDUF）、如瀑布模型、关注于完整和正确的规划来指导大型项目、估计取得成功的风险，保证结果的可预测性。其他模式，如变形开发（Anamorphic development），倾向于由项目范围和功能的迭代来指导系统开发。

在项目管理中一个项目既可以用项目生命周期（PLC）定义，也可以用SDLC定义，其中会有几个步骤略有不同。根据泰勒（2004）所说，"项目生命周期包括了所有專案的內容，而系统开发生命周期关注于实现产品需求"。

SDLC在开发IT项目时中被使用，它描述了完成项目所要涉及到的不同阶段。

历史
--

产品生命周期结构化地描述了信息系统的构建过程，重申产品生命中的每一个阶段。根据艾略特和斯特拉和雷德福(2004)所说，系统开发生命周期"起源于1960年代，用于在大型企业时代大规模地开发功能性商用系统。这些信息系统的活动将涉及大规模的数据以及数据处理例程"。

还有很多系统开发框架在一定程度上借鉴了SDLC的模型，如1980年代的结构化系统分析和设计方法(SSADM)，用于生产英国政府商务办公室系统。根据艾略特(2004)所说，"传统的系统开发生命周期方法逐渐被其他方法和框架取代，这些方法试图克服传统SDLC模型的一些固有缺陷"。

系统分析与设计
-------

系统分析与设计(SAD)通过有效地使用硬件、软件、数据、流程、和人力资源来支持公司的商业目标，是开发高效信息系统（IS）的一个重要过程。系统分析和设计有助于做好开发前的准备和约束问题的范围。系统分析与设计权衡在功能性和非功能性需求，并在两者之间形成平衡。系统分析与设计和分布式企业架构、企业I.T.体系结构和业务体系结构有着紧密的联系, 要达到高等级的系统描述，很大程度上依赖于分割、接口、角色和部署建模。这个高水平描述可以被进一步分解为可以被分析、设计的组件和模块，这些组件和模块被分开构建，最终集成以实现业务目标。SDLC和SAD是系统规划和生命完整产品的基础。

优势与劣势
-----

在现代计算机界很少人会在SDLC中严格使用瀑布模型，因为已经有很多的现代方法取代了这种想法。有些人会认为SDLC已经不再适用一些模型，比如敏捷开发,但它仍然是科技界的一个广泛使用的术语。SDLC在系统开发的传统模型上有优势, 更适合结构化环境。SDLC方法的缺点在于，在项目需要迭代开发时，如：web开发、电子商务开发，项目组需要定期检查软件设计，SDLC就不实用了。与其说讨论SDLC的优缺点，更重要的应该是借鉴SDLC的实践模型，将其应用到现代软件设计中。

### SDLC的优势与劣势对比

SDLC的优势与劣势：

* **优势：**控制；监控大型项目；步骤具体；预先评估成本和达成目标；文档完整；定义良好的用户输入；易于维护；标准化的设计和开发；能够容忍开发团队中的人员变化
* **劣势：**增加了开发时间；增加开发成本；系统必须预先定义；刻板；很难估计成本，导致项目超支；用户输入有时是受限的

快速应用程序开发（RAD）是SDLC的一个替代品,它结合原型模型,将应用程序开发和CASE工具的实现相结合。RAD的优点是速度快，降低了开发成本，并且使用户更积极地参与开发过程。

参考资料
----

1. ↑  SELECTING A DEVELOPMENT APPROACH （页面存档备份，存于）. Retrieved 17 July 2014.
2. ↑  Parag C. Pendharkara.  **50** (12). Corresponding author contact information, E-mail the corresponding author, James A. Rodgerb, Girish H. Subramanian. Science Direct: 1181–1188. November 2008  [2015-05-29]. doi:10.1016/j.infsof.2007.10.019. （原始内容存档于2015-09-24）.
3. ↑  [ttp://foldoc.org/Systems+Development+Life+Cycle ]. FOLDOC.  [2013-06-14]. （原始内容存档于2021-05-12）.
4. ↑  Software Development Life Cycle (SDLC) （页面存档备份，存于）, Power Point, – Powered by Google Docs
5. ↑  James Taylor (2004). *Managing Information Technology Projects*. p.39..
6. 1 2  Geoffrey Elliott & Josh Strachan (2004) *Global Business Information Technology*. p.87.
7. ↑  Post, G. & Anderson, D. (2006). *Management information systems: Solving business problems with information technology*. (4th ed.). New York: McGraw-Hill Irwin.

参见
--

* icon工程主题
* 信息技术主题

* 敏捷软件开发
* 迭代式开发
* 软件开发


|  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

| * 
* 论
* 编
系统工程 |
| --- |
|  |
| 分支领域 | 
* 航空航天工程
* 生物系统工程
* 配置管理
* 地球系統工程及管理（英语：）
* 电机工程
* 企业系统工程（英语：）
* 性能工程（英语：）
* 可靠性工程
* 安全工程

 |
|  |
| 过程 | 
* 需求工程
	+ 需求分析
	+ 需求管理
* 功能需求
* 系统整合
* 验收
* 驗證及確認
* 设计评估（英语：）

 |
|  |
| 概念 | 
* 业务流程
* 系統
* 系统生命周期（英语：）
* V模型
* 系统发展生命周期

 |
|  |
| 工具 | 
* 决策
* 功能建模（英语：）
* IDEF
* 最优化
	+ 最佳化問題
* 品質機能展開
* 计划
* 统计分析
* 系统动力学
* 系統建模語言
* 系统分析
* 系統建模（英语：）
* 工作分解结构

 |
|  |
| 相关领域 | 
* 控制工程
* 计算机工程
* 工业工程
* 运筹学
* 项目管理
* 品质管理
* 风险管理
	+ 工程风险分析（英语：）
* 软件工程

 |
|  |
| 
* 分类 **分类**
* 共享资源页面 **共享资源**

 |

 |

|  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

| * 
* 论
* 编
軟體工程 |
| --- |
|  |
| 领域 | 
* 需求分析
* 系統分析
* 軟體設計
* 電腦編程
* 形式化方法
* 軟體測試
* 軟體部署
* 軟體維護

 |
|  |
| 概念 | 
* 数据建模
* 企业架构
* 功能规格（英语：）
* 建模语言
* 编程范型
* 软件
* 软件架构
* 程序设计方法学
* 软件开发过程
* 项目生命周期
* 软件质量
* 软件质量保证
* 軟體考古學
* 軟體驗證及確認
* 结构化分析

 |
|  |
| 導向 | 
* 敏捷
* 觀點導向
* 面向对象
* 本体论
* 面向服务
* 系统开发生命周期

 |
|  |
| 模型 | 

|  |  |
| --- | --- |
| 开发模型 | 
* 敏捷
* 迭代模式
* RUP
* Scrum
* 螺旋模型
* 瀑布模型
* XP
* V模型
* 混沌模型

 |
|  |
| 其他模型 | 
* SPICE
* CMMI
* 数据模型
* ER模型
* 功能模型（英语：）
* 信息模型
* 元建模
* 对象模型（英语：）
* 系统模型（英语：）
* 视图模型（英语：）

 |
|  |
| 建模语言 | 
* IDEF（IDEF0（英语：）·IDEF1X）
* UML
* USL（英语：）
* SysML

 |

 |
|  |
| 软件工程师 | 
* 肯特·貝克
* 葛來迪·布區
* 佛瑞德·布魯克斯
* Barry Boehm（英语：）
* 沃德·坎宁安
* 奧利-約翰·達爾
* Tom DeMarco（英语：）
* 艾兹格·迪杰斯特拉
* 马丁·福勒
* 東尼·霍爾
* Watts Humphrey（英语：）
* Michael A. Jackson（英语：）
* 伊瓦爾·雅各布森
* Craig Larman（英语：）
* James Martin（英语：）
* 伯特蘭·邁耶
* David Parnas（英语：）
* Winston W. Royce（英语：）
* 詹姆士·蘭寶
* 尼克劳斯·维尔特
* 愛德華·尤登
* Victor Basili（英语：）

 |
|  |
| 相关领域 | 
* 计算机科学
* 计算机工程
* 企业工程
* 軟體工程史
* 管理学
* 数学
* 專案管理
* 品質管理
* 风险管理
* 人因工程学
* 系统工程

 |
|  |
| 
* 分类 分类
* 共享资源页面 维基共享

 |

 |