系统开发生命周期

软件开发生命周期的模型,强调维护阶段

系统工程信息系统软件工程中,系统开发生命周期SDLC )也称为应用程序开发生命周期,是计划,创建,测试和部署信息系统的过程。 SDLC概念适用于一系列硬件和软件配置,因为系统只能由硬件,仅软件或两者组合组合组成。在此周期中通常有六个阶段:需求分析,设计,开发和测试,实施,文档和评估。

概述

系统开发生命周期由系统工程师和系统开发人员用于提供信息系统的不同工作阶段组成。就像在装配线上制造的任何东西一样,SDLC旨在通过在计划的时间范围内交付系统和成本估算,生产出基于要求的高质量系统,以超过需求的期望。计算机系统很复杂,通常将组件与不同的起源联系起来。已经创建了各种SDLC方法,例如瀑布螺旋敏捷快速原型增量和同步和稳定。

SDLC方法拟合在柔韧性频谱中,范围从敏捷到迭代到顺序。敏捷方法(例如XPScrum)着重于轻巧的过程,这些过程允许快速变化。迭代方法(例如理性统一过程动态系统开发方法)着重于稳定项目范围和迭代扩展或改进产品。诸如瀑布之类的顺序或大型设计前期(BDUF)模型,重点是完整而正确的计划,以指导大型项目,并将风险限制为成功和可预测的结果。变形的发展是由项目范围和自适应迭代指导的。

项目管理中,项目可以包括项目生命周期(PLC)和SDLC,在此期间发生了一些不同的活动。根据泰勒(Taylor,2004)的说法,“项目生命周期涵盖了项目的所有活动,而系统开发生命周期则侧重于实现产品需求”。

SDLC本身不是一种方法,而是对方法论应解决的阶段的描述。阶段列表不是确定的,但通常包括规划,分析,设计,构建,测试,实施和维护/支持。例如,在Scrum框架中,可以说一个用户故事在为期两周的冲刺中经历了SDLC的所有阶段。相比之下,瀑布方法论,每个业务需求都会转化为功能/功能描述,然后这些描述通常在几个月或更长时间内实施。

历史

根据Elliott(2004)的说法,SDLC“起源于1960年代,是为了在大规模业务集团时代开发大规模的功能性业务系统。信息系统活动围绕着繁重的数据处理数字处理程序旋转”。

结构化系统分析和设计方法(SSADM)是在1980年代为英国政府贸易办公室生产的。从那以后,根据Elliott(2004)的说法,“传统的生命周期方法一直被替代方法和框架所取代,这些方法和框架试图克服传统SDLC的某些固有缺陷”。

楷模

系统开发生命周期的十个阶段版本

SDLC提供了一组阶段/步骤/活动,供系统设计人员和开发人员遵循。每个阶段都基于上一个阶段的结果。并非每个项目都要求阶段是顺序的。对于较小,更简单的项目,可以组合/重叠阶段。

瀑布

最古老,最著名的是瀑布模型,该模型使用线性序列的步骤。瀑布有不同的品种。一种种类如下:

初步分析

进行初步分析,考虑替代解决方案,估计成本和收益,并提交带有建议的初步计划。

  • 进行初步分析:确定组织的目标并定义项目的性质和范围。确保项目与目标符合。
  • 考虑替代解决方案:替代方案可能来自采访员工,客户,供应商和顾问以及竞争性分析。
  • 成本效益分析:分析项目的成本和收益。

系统分析,需求定义

将项目目标分解为已定义的功能和操作。这涉及收集和解释事实,诊断问题以及推荐更改。分析最终用户信息需求并解决不一致和不完整:

  • 收集事实:通过文件审查,客户访谈,观察和问卷获得最终用户要求。
  • 仔细检查现有系统:确定利弊。
  • 分析提出的系统:找到问题解决方案并准备规格,并包含适当的用户建议。

系统设计

在此步骤中,详细介绍了所需的功能和操作,包括屏幕布局,业务规则过程图伪代码和其他可交付成果。

发展

写代码。

集成和测试

在测试环境中组装模块。检查错误,错误和互操作性。

接受,安装,部署

将系统投入生产。这可能涉及培训用户,部署硬件以及从先前系统中加载信息。

维护

监视系统以评估其持续的健身。进行适度的更改并根据需要进行修复。

评估

系统和过程将进行审查。相关问题包括新实施的系统是否符合要求并实现项目目标,该系统是否可用,可靠/可用,适当缩放和容忍度。过程检查包括审查时间表和费用以及用户接受。

处理

在生命的尽头,制定了计划中止系统并过渡到其更换的计划。相关信息和基础架构必须在适当保护安全性的同时重新利用,存档,丢弃或破坏。

在下图中,这些阶段分为十个步骤,从定义到IT工作产品的创建和修改:

系统分析和设计

系统分析和设计(SAD)可以视为元开发活动,该活动可以设定舞台并束缚问题。 SAD可以帮助平衡竞争的高级要求。 SAD与分布式企业体系结构,企业IT体系结构和业务体系结构进行互动,并在很大程度上依赖于诸如分区,接口,角色和角色以及部署/操作建模等概念来得出高级系统描述。然后将这种高级描述分解为可以分析,设计和构造并集成以实现业务目标的组件和模块。 SDLC和SAD是完整生命周期产品和系统规划的基石。

面向对象的分析和设计

面向对象的分析和设计(OOAD)是分析问题域以开发概念模型的过程,然后可以将其用于指导开发。在分析阶段,程序员通过与利益相关者的访谈制定书面要求和正式的愿景文件。

由OOAD产生的概念模型通常由用例以及互动图组成。它也可能包括用户界面模型。

输出工件无需完全定义即可用作面向对象设计的输入;分析和设计可能并联。在实践中,一项活动的结果可以在迭代过程中喂养另一个活动。

ooad的一些典型输入文物:

  • 概念模型:概念模型是面向对象分析的结果。它捕获问题域中的概念。概念模型明确独立于实施细节。
  • 用例:用例是对事件的序列的描述,这些事件共同完成了所需的任务。每个用例都提供了传达系统应如何与参与者(用户)相互作用的方案。演员可能是最终用户或其他系统。用例可以使用图表进一步阐述。此类图确定了演员及其执行过程。
  • 系统序列图:系统序列图(SSD)是一张图片,显示了特定用例,即演员生成的事件,其顺序,包括系统间事件。
  • 用户界面文档:显示和描述用户界面的文档。
  • 数据模型:一个数据模型描述了数据元素相互关系。数据模型是在设计阶段之前创建的。直接从数据模型映射对象的设计。关系设计更多。

系统生命周期

系统生命周期是系统或提议的系统的视图,该系统解决其存在的所有阶段,包括系统构想,设计和开发,生产和/或构造,分配,运营,维护和支持,退休,淘汰,逐步淘汰和处置。

概念设计

概念设计阶段是检查确定需求,定义潜在解决方案的要求,评估潜在解决方案的要求,并开发了系统规范。系统规范表示将为系统设计提供总体指导的技术要求。因为本文档决定了所有未来的发展,所以阶段才能完成,直到概念设计审查确定系统规范正确地满足了激励需求。

概念设计阶段的关键步骤包括:

  • 需要识别
  • 可行性分析
  • 系统需求分析
  • 系统规范
  • 概念设计评论

初步系统设计

在系统生命周期的这一阶段,执行所需系统功能的子系统是根据系统规范设计和指定的。定义了子系统之间的接口,以及总体测试和评估要求。在此阶段完成时,制作了开发规范,足以执行详细的设计和开发。

初步设计阶段的关键步骤包括:

  • 功能分析
  • 要求分配
  • 详细的权衡研究
  • 系统选项的合成
  • 工程模型的初步设计
  • 开发规范
  • 初步设计评论

例如,作为VITI银行的系统分析师,您已被任命检查当前信息系统。维蒂银行是斐济的一家快速发展的银行。偏远农村地区的客户发现难以访问银行服务。他们需要几天甚至几周才能前往某个地点访问银行服务。有了满足客户需求的愿景,银行已要求您的服务来检查当前系统,并提出有关如何提供当前系统以满足其需求的解决方案或建议。

细节设计和开发

此阶段包括开发详细的设计,将初始设计工作带入了完整的规格形式。这项工作包括系统与其预期环境之间的接口规范,以及对系统后勤,维护和支持要求的全面评估。细节设计和开发负责生产产品,过程和材料规格,并可能导致开发规范的实质性变化。

细节设计和开发阶段的关键步骤包括:

  • 详细的设计
  • 详细的合成
  • 工程和原型模型的开发
  • 开发规范的修订
  • 产品,过程和材料规范
  • 关键设计审查

生产和构建

在生产和/或施工阶段,该产品是根据产品,过程和材料规格中指定的要求制成或组装的,并在操作目标环境中进行了部署和测试。进行系统评估是为了纠正缺陷并调整系统以继续改进。

产品构建阶段的关键步骤包括:

  • 生产和/或系统组件的构建
  • 验收测试
  • 系统分布和操作
  • 操作测试和评估
  • 系统评估

利用和支持

一旦完全部署,该系统将用于其预期的操作角色,并将其维持在其操作环境中。

利用率和支持阶段的关键步骤包括:

  • 在用户环境中的系统操作
  • 更换管理层
  • 改进的系统修改
  • 系统评估

淘汰和处置

必须对系统的有效性和效率进行连续评估,以确定产品何时符合其最大的有效生命周期。考虑因素包括:持续存在运营需求,在操作要求和系统性能之间匹配,系统淘汰与维护的可行性以及替代系统的可用性。

阶段

系统调查

在此步骤中,将考虑当前将受到影响以及应如何处理的优先级。可行性研究确定创建新的或改进的系统是否合适。这有助于估计成本,收益,资源需求和特定用户需求。

可行性研究应解决运营财务技术,人为因素和法律/政治问题。

分析

分析的目的是确定问题在哪里。此步骤涉及将系统分解成零件,分析项目目标,分解需要创建的内容,并吸引用户来定义需求。

设计

系统设计中,详细描述了功能和操作,包括屏幕布局,业务规则,过程图和其他文档。模块化设计降低了复杂性,并允许输出将系统描述为子系统集合。

设计阶段将其输入为已定义的要求。对于每个要求,都会产生一组设计元素。

设计文档通常包括功能层次结构图,屏幕布局,业务规则,过程图,伪代码以及带有数据词典的完整数据模型。这些要素描述了开发人员和工程师可以以最少的额外输入开发和交付系统的系统。

测试

该代码在软件测试中的各个级别进行了测试。通常执行单位,系统和用户接受测试。已经采用了许多测试方法。

以下测试类型可能相关:

培训和过渡

通过测试稳定系统后,SDLC将确保在过渡系统以支持员工和最终用户之前准备并进行适当的培训。培训通常涵盖支持人员的运营培训以及最终用户培训。

训练后,系统工程师和开发人员将系统转换为其生产环境。

运营和维护

维护包括更改,修复和增强功能。

评估

SDLC的最后阶段是衡量系统的有效性并评估潜在的增强。

生命周期

管理和控制

与管理控制有关的SDLC阶段

在本节中描述了SDLC阶段目标,其中包含关键可交付成果,推荐任务的描述以及有效管理的相关控制目标摘要。对于项目经理而言,在执行项目时建立和监视控制目标至关重要。控制目标是对所需结果或目的的明确陈述,应在整个项目中定义和监视。控制目标可以分为主要类别(域),并与图中所示的SDLC相相关。

为了管理和控制一项实质性的SDLC计划,工作故障结构(WBS)捕获并安排工作。 WBS和所有编程材料应保存在项目笔记本的“项目描述”部分中。项目经理选择了最能描述项目的WBS格式。

该图显示复盖范围跨越了SDLC的大量阶段,但相关的MCD显示了与SDLC相的映射。例如,分析和设计主要是作为采集和实现域的一部分进行的,系统构建和原型主要作为交付和支持的一部分进行。

工作故障结构化组织

工作分解结构

WBS的上部提供了项目范围和时间表的概述。它还应该总结主要阶段和里程碑。中间部分基于SDLC阶段。 WBS要素包括要完成的里程碑和任务,而不是要进行的活动并有截止日期。每个任务都有一个可测量的输出(例如,分析文档)。 WBS任务可能依赖于一项或多项活动(例如编码)。需要承包商支持的部分项目应有工作声明(SOW)。在SDLC的特定阶段不会发生SOW的发展,而是开发出来的是包括承包商可能进行的SDLC过程的工作。

基线

基准是在SDLC的五个阶段中的四个阶段建立的,并且对模型的迭代性质至关重要。基线成为里程碑。

  • 功能基线:在概念设计阶段建立。
  • 分配的基线:在初步设计阶段建立。
  • 产品基线:在细节设计和开发阶段建立。
  • 更新的产品基线:在生产施工阶段建立。

替代方法

系统开发生命周期的替代软件开发方法是:

方法学方法的比较(Post,&Anderson 2006)
SDLC rad 开源 对象 贾德 原型 最终用户
控制 正式的 虚弱的 标准 联合的 用户 用户
大体时间 长的 短的 中等的 任何 中等的 短的 短的

用户 许多 很少 很少 各种 很少 一个或两个
MIS员工 许多 很少 数百个 分裂 很少 一个或两个 没有任何
交易/ DSS 交易 两个都 两个都 两个都 DSS DSS DSS
介面 最小 最小 虚弱的 视窗 至关重要的 至关重要的 至关重要的
文档和培训 必不可少的 有限的 内部的 在对像中 有限的 虚弱的 没有任何
完整性和安全性 必不可少的 必不可少的 未知 在对像中 有限的 虚弱的 虚弱的
可重复使用 有限的 一些 或许 必不可少的 有限的 虚弱的 没有任何

长处和短处

从根本上讲,SDLC通过施加结构来交易控制灵活性。它更常用于许多开发人员的大型项目。

SDLC的力量和弱点
优势 弱点
控制 发展时间增加
监视大型项目 发展成本增加
详细的步骤 系统必须在前定义
评估成本和完成目标 刚性
文件 难以估算成本,项目超支
定义明确的用户输入 用户输入有时有限
易于维护 小平行性
发展和设计标准 文档和标准的自动化有限
容忍人员配备的变化 不容忍要求的变化
很早就以几乎没有价值罐装的项目罐装

也可以看看