系统发展生命周期

系统发展生命周期(英語:System Development Life CycleSDLC),也称软件生命周期,是系统工程信息系统软件工程中的术语,用于描述一个信息系统从规划、创建、测试到最终完成部署的全过程[1]。系统开发生命周期的概念对于硬件和软件系统都是適用的,这些系统可能只由硬件或软件组成,也可能两者都有[2]

系统开发生命周期模型,强调维护阶段。

概述

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

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

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

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

历史

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

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

系统分析与设计

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

优势与劣势

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

SDLC的优势与劣势对比

SDLC的优势与劣势[7]

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

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

参考资料

  1. ^ SELECTING A DEVELOPMENT APPROACH页面存档备份,存于互联网档案馆). Retrieved 17 July 2014.
  2. ^ Parag C. Pendharkara. Information and Software Technology 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 Systems Development Life Cycle from]. 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. ^ 6.0 6.1 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.

参见