理解和使用系统开发生命周期的终极指南

内容贡献者凯特Eby

2017年6月27日

有很多关于成功的系统部署的特定系统开发生命周期(SDLC)方法、工具和应用程序的文献。SDLC不仅限于纯粹的技术活动,还涉及过程和程序开发、变更管理、识别用户体验、政策/程序开发、用户影响和适当的安全程序。比如大卫·艾文森和盖伊·菲茨杰拉德的书信息系统开发艾伦·丹尼尔斯和唐·叶芝基本的系统分析,深入研究信息系统开发生命周期的复杂性。
本文将提供对历史、定义、阶段、好处和缺点的深入分析,以及支持系统开发生命周期的解决方案。


什么是系统开发生命周期?

为了理解系统开发生命周期的概念,我们必须首先定义一个系统。系统是任何信息技术组件——硬件、软件或两者的结合。从最初的计划到部署,每个系统都经历一个开发生命周期。一些方法提供了必要的框架来指导具有挑战性和复杂的过程,目的是避免代价高昂的错误并加快开发,所有这些方法都有相同的目标,即通过阶段移动物理或基于软件的系统。

系统开发生命周期类似于项目生命周期。事实上,在许多情况下,SDLC被认为是一个阶段性的项目模型,它定义了大型系统项目的组织、人员、政策和预算约束。术语“项目”意味着周期有开始和结束,系统开发生命周期策略中固有的方法在计划、设计、测试、部署和维护信息系统的元素中提供了清晰、明确和定义的工作阶段。

参与SDLC的人员包括高层管理人员,但是处理多层次过程的是项目/规划经理、软件和系统工程师、用户和开发团队。每个项目在计划和执行方面都有自己的复杂性水平,在一个组织中,项目经理通常会使用许多SDLC方法。即使一个企业使用相同的方法,不同的项目工具和技术也会有很大的不同。

巩固工作。同步冲刺。管理资源。欧宝体育app官方888

敏捷项目管理仪表板

Smartsheet是一个基于云的平台,允许团队和组织计划项目,简化操作,并扩展软件开发工作。参见Smartsheet的实际操作。

观看演示


系统开发生命周期的历史和起源

这个术语在1971年被完全定义,它起源于20世纪60年代,当时大型机占据了整个房间,人们迫切需要定义以构建大型业务系统为中心的流程和设备。在那些日子里,团队很小,集中,用户要求“不那么”。这种类型的场景意味着并不真正需要细化的方法来驱动系统开发的生命周期。然而,随着技术的发展,系统变得越来越复杂,用户已经习惯了功能良好的技术。已经开发了模型和框架来指导公司通过有组织的系统开发生命周期。今天,传统的技术系统开发方法已经进行了调整,以满足每个独特组织及其用户不断变化的复杂需求。下面您将发现SDLC的连续步骤,但每个公司的流程会有所不同。

SDLC的阶段

SDLC框架提供了在实现基于物理和基于软件的系统的各个阶段的逐步指导。各种各样的模型可用,但是否使用最古老的SDLC方法,瀑布方法,采用敏捷方法,或者使用几种方法的混合,所有方法都包含一个阶段迭代结构,您可以适应您组织的需要。
您可能会发现具有不同命名约定的阶段,但这些是SDLC最常见的阶段。组织可以采用这些阶段的任何、全部或变化:

  • 分析/可行性:要使SDLC策略发挥作用,就必须清楚当前结构中存在哪些缺陷,以及新方法的目标。可行性研究决定你是否能够或应该完成计划的目标。收集和分析信息,以确定哪些技术资产、人员和培训已经到位并得到利用。该研究还列出了需要增加或取代什么,以及需要付出什么代价。在此阶段,您将确定整个项目范围,包括经济、操作和人为因素,确定关键人员,并制定时间表。
  • 规划及要求:计划可以包括调整现有系统以满足新的需求或开发一个全新的系统。这个阶段定义用户需求,确定需要的特性、功能和自定义,并研究总体功能
  • 设计:一旦您制定了计划并确定了成本、系统和用户需求,就可以开始详细的系统设计,包括特性和其他文档。然后,架构师可以构建一个示例框架。
  • 系统开发:经过批准的设计是授权开发新系统或增强系统的催化剂。有人说这是生命周期中最健壮的部分。在此阶段,开发人员编写代码,您构建并微调技术和物理配置。
  • 测试:用户在部署前被引入测试,以确定需要关注或改进的领域。
  • 部署:该系统被放入生产环境中,用于处理业务。ob欧宝娱乐app手机下载
  • 维护:SDLC的周期性认识到变化和升级的过程是不断的。定期更换过时的硬件/软件,进行安全升级,并持续改进。
  • 评价:任何大型系统推出的一个经常被忽视的因素是评价过程,它支持系统的持续改进。团队不断地审查正在工作的内容和需要改进的内容。这可能意味着建议额外的培训、程序或升级。
  • 处理/处理/临终:一个全面的生命周期可以在剩余或废弃资产的生命周期结束时识别并退役它们。此阶段包括数据和信息的安全检索,以便保存,以及资产的物理处置。

在系统开发生命周期的每个阶段之后,团队和项目经理可以在过程中建立基线或里程碑。基线可能包括开始日期、结束日期、阶段/阶段持续时间和预算数据。这些基线有助于项目经理监控性能。

系统开发生命周期

在生命周期的所有级别,包括机密性、信息可用性、信息完整性、整体系统保护和风险缓解.让开发团队和安全团队保持一致是确保将安全措施构建到系统开发生命周期的各个阶段的最佳实践。例如,SAMM,软件保证成熟度模型是一个框架,它帮助组织评估他们的软件安全实践、构建安全程序、演示安全改进,以及度量与安全相关的活动。此外,治理和法规已经找到了进入技术的方法,并且对数据完整性的严格要求影响了开发技术系统的团队。法规对组织的影响不同,但最常见的是Sarbanes-Oxley、COBIT和HIPAA。

每个公司在不同的开发阶段都有自己定义的最佳实践。例如,为了被认为是成功的,测试可能涉及最终用户和用例场景的确定数量,维护可能包括每季度的强制性系统升级。


定义良好的系统开发生命周期的好处

部署系统开发生命周期有很多好处,包括提前计划和分析结构化阶段和目标的能力。SDLC的面向目标的过程不局限于一种通用的方法,并且可以适应不断变化的需求。然而,如果你的业务定义良好,你可以:

  • 对整个项目、涉及的人员、人员需求、确定的时间表和完成每个阶段的精确目标有一个清晰的视图。
  • 基于具体信息和需求的基本成本和人员配置决策。
  • 为项目的每个步骤提供符合设计和开发标准的验证、目标和可交付成果,并在整个过程中开发广泛的文档。
  • 通过迭代的、分阶段的方法为开发人员提供一种控制措施,这种方法通常从成本和时间轴的分析开始。
  • 通过每个阶段的验证,提高最终系统的质量。

结构化系统开发生命周期的缺点

在这些相同的领域中,有些人在遵循结构化SDLC时发现了缺点。一些失败包括:

  • 许多方法被认为是不灵活的,有些还受到过时过程的影响。
  • 由于您将计划建立在项目部署之前的需求和假设基础上,许多实践者发现在响应生命周期中不断变化的环境方面存在困难。
  • 有些人认为SDLC的结构化本质是时间和成本过高。
  • 一些团队发现估算成本太过复杂,无法在项目早期定义细节,并且不喜欢严格定义需求。
  • 在生命周期的最后进行测试并不是对所有开发团队都有利的。许多人喜欢在整个过程中进行测试。
  • 结构化SDLC方法所涉及的文档可能太多了。
  • 喜欢在不同阶段之间快速切换,甚至回到前一个阶段的团队会发现结构化阶段方法具有挑战性。

SDLC的另一种形式:软件开发生命周期

当单词“系统”被替换为单词“软件”时,它创建了SDLC的另一个版本。软件开发生命周期遵循国际标准ISO 12207 2008。在这个标准中,与传统系统开发生命周期相似的阶段被概括为包括软件的获取、新软件的开发、操作、维护和软件产品的处置。ob欧宝娱乐app手机下载一个日益受到关注和越来越多采用的确定领域继续围绕着增强安全功能和数据保护的需求。
与前面讨论的系统开发生命周期一样,您可以采用许多方法和框架软件开发包括:

  • 瀑布方法是一种稳定的向下流动的活动序列就像它的名字一样。这种传统的工程过程在完成后关闭每个阶段,经常被批评过于死板。
  • v型模型是对瀑布法的调整,将测试作为关闭每个阶段的一个组成部分。
  • 原型方法提倡建立大量软件方法的计划,这些方法允许在完全开发之前对不同的元素进行“试验”。原型方法可以增加用户/客户的“购买”。
  • 应用系统快速发展(RAD)是一种混合的原型方法,但工作强调最初的计划,以快速原型和测试潜在的解决方案。
  • 螺旋的方法提供更多的流程步骤,以螺旋形式图形化地查看这些步骤,通常被认为提供了更大的灵活性和流程适应性。
  • 敏捷方法基于软件的系统是否通过迭代过程提供反馈并包含看板Scrum极限编程(XP)动态系统开发方法(DSDM)。

其他模型和方法包括同步和稳定、动态系统开发(DSDM)、大爆炸模型、喷泉和进化原型模型等。每一个都有一个定义的步骤过程的元素,并根据灵活性而变化。
选择正确的SDLC方法对于您的开发项目和业务的成功都是至关重要的。没有一个硬性的规则要求您必须为每个项目只选择一种方法,但是如果您要投资于一种方法和支持工具,那么尽可能多地利用它们是明智的。要选择正确的方法,你必须首先:

  • 了解各种方法、它们的优点和缺点。
  • 熟悉团队动态、涉众以及你将要管理的项目。
  • 将这些方法与您的团队所定义的标准以及业务事实进行比较——团队的规模、技术项目的类型、项目的复杂性等。方法论应该易于团队理解和学习。
  • 与你的团队和利益相关者分享你的决定和推理。

项目管理系统开发生命周期

SDLC的迭代和分阶段的过程得益于专门的项目经理的领导。SDLC的主要目标是为满足公司总体目标的信息系统提供成本效益和适当的增强或更改。项目经理负责在整个过程中执行和关闭所有规划、构建和维护新的或改进的系统的线性步骤。

项目经理的其他要素包括管理人员要素,包括沟通、变更管理策略和培训、启动和推动项目计划、设置和监控目标、为沟通和培训提供渠道、跟踪预算和时间线。项目经理是强大SDLC过程的总体控制代理人。


支持系统开发生命周期的软件解决方案

来自软件供ob欧宝娱乐app手机下载应商的SDLC产品承诺组织清晰、现代过程开发过程、遗留应用程序策略和改进的安全特性。许多选项提供定制的或集成的解决方案。Oracle、Airbrake和Veracode等供应商在其完整的企业软件产品中提供软件开发解决方案。这些供应商中的许多还非常注重识别和调试可能支持软件开发生命周期中测试过程的系统。在许多情况下,SDLC团队利用各种软件解决方案来支持不同的阶段。例如,需求可能在一个解决方案中被收集、跟踪和管理,而测试用例可能发生在一个完全不同的解决方案中。

无论实现的过程和使用的工具是什么,都需要文档的关键元素来支持发现、紧密的迭代阶段和分析成功。如今,对数据和信息安全的需求日益增长,这也影响到系统的总体规划、培训、测试和部署。然而,任何SDLC方法成功的最重要因素之一仍然是在最初的计划中,然后选择适当的框架和方法,最后坚持、部署和维护一个健壮的项目计划。


用一个有用的模板开始管理你的系统开发生命周期

负责SDLC的项目经理需要正确的工具来帮助管理整个过程,为关键涉众提供可见性,并为每个阶段创建的文档创建一个中央存储库。其中一个工具是Smartsheet,这是一个工作管理和自动化平台,可以让企业和团队更好地工作。

凭借其可定制的电子表格界面和强大的协作功能,Smartsheet允许简化项目和过程管理。使用内容的SDLC与甘特模板快速入门,并帮助管理系统开发的计划、开发、测试和部署阶段。创建带有里程碑和依赖关系的时间轴来跟踪进度,并设置自动警报,以便在任何更改时通知您。与您的团队和关键的涉众分享您的计划,以提供可见性,并将任务分配给个人,以确保没有遗漏。

今天就免费试用Smartsheet SDLC模板。

在Smartsheet中创建您的SDLC计划


管理系统和软件开发生命周期的更好方法

通过设计一个灵活的平台来满足团队的需求,并根据这些需求的变化进行调整,从而使你的员工能够超越自我。

Smartsheet平台使您可以轻松地计划、捕获、管理和报告任何地方的工作,帮助您的团队更有效,完成更多工作。报告关键指标,并在工作发生时获得实时可见性,使用上卷报表、仪表板和自动化工作流构建,以保持团队的联系和消息。

当团队清楚地知道要完成的工作时,没有人知道他们在相同的时间内还能完成多少。今天就免费试用一下Smartsheet吧。

了解为什么财富100强公司中超过90%的公司信任Smartsheet来完成工作。

尝试免费的Smartsheet