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

admin 系统开发 2019-02-22 17:31 0


  
  关于成功部署系统的特定系统开发生命周期(SDLC)方法、工具和应用程序,有很多文献。SDLC不仅限于纯技术活动,还涉及过程和过程开发、更改管理、识别用户体验、策略/过程开发、用户影响和适当的安全过程。David Avison和Guy Fitzgerald的《信息系统开发》、Alan Daniels和Don Yeates的《基本系统分析》等书籍深入研究了信息系统开发生命周期的复杂性。
 
  本文将深入分析支持系统开发生命周期的历史、定义、阶段、优点和缺点,以及解决方案。
 
  什么是系统开发生命周期?
 
  为了理解系统开发生命周期的概念,我们必须首先定义一个系统。系统是任何信息技术组件——硬件、软件或两者的组合。每个系统都经历了从最初的计划到部署的开发生命周期。一些方法提供了必要的框架来指导具有挑战性和复杂的过程,目的是避免代价高昂的错误并加速开发,所有这些方法都有相同的目标,即在各个阶段中移动物理或基于软件的系统。
 
  系统开发生命周期类似于项目生命周期。
 
  事实上,在许多情况下,SDLC被认为是一个阶段性的项目模型,它定义了大型系统项目的组织、人员、策略和预算约束。“项目”一词意味着周期的开始和结束,系统开发生命周期战略中固有的方法在计划、设计、测试、部署和维护信息系统的元素中提供了清晰、不同和定义的工作阶段。
 
  参与SDLC的人员包括c-suite高管,但是处理多层流程的是项目/程序经理、软件和系统工程师、用户和开发团队。每个项目在计划和执行方面都有自己的复杂性级别,在组织中,项目经理经常使用许多SDLC方法。即使企业使用相同的方法,不同的项目工具和技术也会有很大的不同。
 
  系统开发生命周期的历史和起源
  该术语于1971年完全定义,起源于20世纪60年代,当时大型计算机充满了整个房间,并且开发了迫切的需求来定义以构建大型业务系统为中心的流程和设备。在那些日子里,团队规模小,集中,用户“要求不高”。这种情况意味着不需要精细的方法来推动系统开发的生命周期。然而,技术已经发展,系统变得越来越复杂,用户已经习惯了运行良好的技术。已经开发了模型和框架来指导公司完成有组织的系统开发生命周期。今天,传统的技术系统开发方法已经过调整,以满足每个独特组织及其用户不断变化的复杂需求。
 
  SDLC的阶段
 
  SDLC框架提供了逐步实施基于物理和软件的系统的分阶段指南。有多种模型可供选择,但无论是使用最古老的SDLC 方法,瀑布方法,采用敏捷方法,还是采用多种方法的混合方法,所有方法都采用分阶段迭代结构,您可以根据组织的需要进行调整。 
  您可能会发现具有不同命名约定的阶段,但这些是SDLC最常见的阶段。组织可以采用这些阶段的任何,全部或变体:
 
  分析/可行性:要使SDLC战略发挥作用,应该充分了解当前结构中存在的缺陷和新方法的目标。可行性研究确定您是否能够或应该实现计划的目标。收集和分析信息以确定已经存在和使用的技术资产,人员和培训。该研究还列出了增加或替换所需的内容,以及成本。在此阶段,您可以确定整个项目范围,包括经济,运营和人为因素,确定关键人员以及制定时间表。 
  规划/要求:计划可以包括调整当前系统以满足新需求或开发全新系统。此阶段定义用户需求,标识所需的功能,功能和自定义,并调查整体功能
  设计:一旦制定计划并确定成本,系统和用户要求,就可以开始详细的系统设计,其中包括功能和其他文档。然后架构师可以构建一个示例框架。
  系统开发:经批准的设计是授权新系统或增强系统开发的催化剂。有人说这是生命周期中最强大的部分。在此阶段,开发人员编写代码并构建和微调技术和物理配置。 
  测试:在部署之前引入用户进行测试,以确定关注或改进的领域。
  部署:系统进入生产环境并用于开展业务。
  维护: SDLC的周期性特性认识到变革和升级的过程是不变的。定期更换过时的硬件/软件,安全升级和持续改进。 
  评估:  任何大规模系统推广中经常被忽视的因素是评估过程,它支持系统的持续改进。该团队不断审查工作内容和需要改进的内容。这可能意味着建议额外的培训,程序或升级。
  处置/处置/报废:全面的生命周期在其生命周期结束时识别和解除剩余或过时的资产。此阶段包括安全检索数据和信息以进行保存,以及资产的物理处置。
  在系统开发生命周期的每个阶段之后,团队和项目经理可以在流程中建立基准或里程碑。基线可以包括开始日期,结束日期,阶段/阶段持续时间和预算数据。这些基线帮助项目经理监控绩效。
 
  人们越来越关注生命周期各个层面的系统安全性,包括机密性,信息可用性,信息完整性,整体系统保护和风险缓解等要素。。使开发团队和安全团队保持一致是确保在系统开发生命周期的各个阶段中构建安全措施的最佳实践。例如,软件保障成熟度模型SAMM是一个框架,可帮助组织评估其软件安全实践,构建安全程序,演示安全性改进以及测量与安全相关的活动。此外,治理和法规已经进入技术领域,对数据完整性的严格要求也会影响团队开发技术系统。法规对组织的影响不同,但最常见的是Sarbanes-Oxley,COBIT和HIPAA。
 
  每个公司都有自己定义的最佳实践,用于各个开发阶段。例如,测试可能涉及定义数量的最终用户和用例场景以便被认为是成功的,并且维护可以包括每季度的强制性系统升级。
 
  明确的系统开发生命周期的好处
  部署系统开发生命周期有许多好处,包括预先规划和分析结构化阶段和目标的能力。SDLC的目标导向流程不仅限于一刀切的方法,还可以进行调整以满足不断变化的需求。但是,如果您的业务定义明确,您可以:
 
  清楚地了解整个项目,所涉及的人员,人员配备要求,确定的时间表以及关闭每个阶段的精确目标。  
  具体信息和需求的基本成本和人员配置决策。  
  提供符合项目每个步骤的设计和开发标准的验证,目标和可交付成果,并在整个过程中开发大量文档。 
  通过迭代的分阶段方法为开发人员提供控制措施,通常从分析成本和时间表开始。  
  通过每个阶段的验证来提高最终系统的质量。
  结构化系统开发生命周期的缺点
  在这些相同的领域,有些人在遵循结构化SDLC时会遇到不利因素。一些垮台包括:
 
  许多方法被认为是不灵活的,有些方法受到过时的过程的影响。 
  由于您的计划基于项目部署之前的要求和假设,因此许多从业者发现难以应对生命周期中不断变化的环境。 
  有些人认为SDLC的结构化性质是时间和成本过高的。
  一些团队发现它太复杂而无法估算成本,无法在项目早期定义细节,也不喜欢严格定义的要求。
  生命周期结束时的测试不利于所有开发团队。许多人喜欢在整个过程中进行测试。
  结构化SDLC方法涉及的文档可能非常庞大。
  喜欢快速在各阶段之间移动甚至回到前一阶段的团队发现结构化阶段方法具有挑战性。

分享:

扫一扫在手机阅读、分享本文

发表评论

评论列表(条)

    推荐阅读