第3章软件项目全生命周期的阶段划分
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
3.2.2软件项目生命周期阶段划分
不同的软件开发模型,生命周期的阶段 划分会有所差别。
这里所论述的软件项目生命周期阶段划 分是以经典“瀑布”模型为原型,吸纳其他 典型软件开发模型的知识,再加上现代软件 项目工作开展的特点提出的。如图3-5所示。
第3章软件项目全生命周期的阶段划 分
第3章软件项目全生命周期的阶段划 分
第3章软件项目全生命周期的阶段划 分
(2)演化模型
是利用迭代的思想,使软件开发活动逐 步完善的机制。
该模型设计主要针对在用户需求阶段, 难以给出准确、完整的用户需求的软件项目。 在项目开始时,用户可以给出目标系统的核 心功能需求,开发人员可以根据核心需求开 发系统的核心模块。
系统核心模块开发完成后,交付用户试wenku.baidu.com用,用户根据试用的结果,提 出细化和增强 后的新的用户需求。开发人员可在新需求的 基础上实施开发的迭代过程,以实现系统的 最终目标。每一迭代过程均由需求、设计、 编码、测试、集成等阶段组成。图3—2是采 用演化模型开展软件项目的过程模型。
它将软件项目开发划分为制定计划、风 险分析、实施开发,以及客户评估四类活动。
软件风险是任何软件项目中普遍存在的 问题,不同项目只是风险大小不同而已。项 目规模越大、问题越复杂,资源、成本、进 度等因素的不确定性就越大,承担项目的风 险也就越大。进行风险分析与管理的目的就 是使人们在危害造成之前及时对风险进行识 别、分析,采取对策,消除或减少风险所造 成的损失。
第3章软件项目全生命周期的阶段划 分
(3)软件系统实现
实现阶段的任务包括编码、测试、试运行 等多个连续循环往复的软件开发工作,也正 是这些工作的不断反复与循环才最终获得客 户满意的交付成果,它是设计模型的物理实 现,是直接面向用户的真实系统。
一般在软件项目管理过程中,系统设计 与系统实现各占整个项目工作量的三分之一, 其他内容占项目总工作量的三分之一。
第3章软件项目全生命周 期的阶段划分
2020/11/26
第3章软件项目全生命周期的阶段划 分
3.1 软件项目分类
根据实施主体的不同分为两大类: (1)自主研发项目
对于立项的软件项目,采取自主开发和自 主维护的方式进行。即立项单位本身就是项 目开发单位,既是实施单位,也是受益单位。
由于整个项目的立项、开发在一个单位内 部独立完成,整个开发过程只存在于本单位 项目内部的组织和管理,不存在不同单位之 间的协作,所以这类项目管理的难度要小些。
软件项目启动过程完成的重要标志有: 成立项目管理委员会、任命项目经理、组织 项目团队、获取项目许可证、签订开发协议、 准备好一切软件开发的基础环境等。
在这一阶段中,项目的启动工作要在确 定项目必须开展的情况下才能开始。
第3章软件项目全生命周期的阶段划 分
(2)软件系统设计 软件系统设计包括需求分析和系统设计 两方面的工作。 需求分析是系统设计(包括概要设计、详 细设计等)的前提,也是系统设计内容的重要 组成部分。 在实际工作中,在软件设计的前期阶段, 就已经开始了一些重要的难度较大的开发试 验工作,也只有这样才能确保设计出的逻辑 系统可以实现。
问题定义通常很简短,但在性质上它是 一个相对独立的步骤,不应该和其他步骤混 淆,更不应该省略。问题定义清楚后,形成 一份关于该项目的规模、目标及成本粗略估 计的报告书。
第3章软件项目全生命周期的阶段划 分
(2)可行性分析
可行性分析的主要目的是论证项目在时间、 资源、资金、效果、实现技术和方法等方面 的必要性和可能性。主要包括经济可行性、 技术可行性与操作可行性等方面。
第3章软件项目全生命周期的阶段划 分
2)技术可行性 根据需求定义所要实现系统功能、性能 等各方面,从软件技术的角度研究系统实现 的可能性。 技术可行性分析是系统开发过程中难度 最大的工作。系统目标、功能和性能的不确 定性往往会给技术可行性论证带来许多困难。
第3章软件项目全生命周期的阶段划 分
技术可行性研究包括:风险分析、资源 分析和技术分析。
第3章软件项目全生命周期的阶段划 分
瀑布模型为软件开发与维护提供了一种 有效的项目管理模式。但在实际应用中,软 件开发活动的各阶段间的关系并非是简单的 线性关系,阶段评审可能会出现向上一阶段 反馈的现象,使模型中产生环路,像图3-1中 虚线所示。
第3章软件项目全生命周期的阶段划 分
瀑布模型的不足: ①由于开发阶段呈线性,当开发成果尚未 经过测试阶段时,用户无法看到软件的运行 效果,可能会存在需求方面的缺陷,造成开 发出来的软件不是用户真正需要的软件,造 成项目的返工或在维护中纠正需求的偏差。 ②由于固定顺序,前期工作中造成的偏差 如果延续到后期阶段,所造成的损失将会更 大,项目的风险也就会越大。
第3章软件项目全生命周期的阶段划 分
(4)收尾阶段 收尾阶段包括项目验收、系统运行、系 统维护、直到软件系统生命周期结束等一系 列收尾过程的活动。 (5)各阶段之间的关系 各阶段之间:(1)既有严格的工作接续 关系,即前一阶段工作完成以后,后一阶段 工作才能开始;(2)同时又存在一定的工作 并行性以及工作反馈与循环,如在前一阶段 工作即将结束前,开始着手下一阶段的计划 制定。
整个软件开发活动可划分为四个主要的工 作阶段:立项、设计、实现及收尾。每个阶 段又包含多个不同的子过程,各个子过程之 间关系紧密,并且并行的、反复循环的工作 内容比较频繁。
(1)项目立项。
软件项目立项工作有两个方面:项目定义 和项目启动。
通过项目的可行性分析研究解决项目是 否立项。对于已经立项的项目,指定项目负 责人,制定项目实施的全面工作计划。
第3章软件项目全生命周期的阶段划 分
螺旋模型的优越性在于适合大型软件的 开发。可使开发人员和用户对每一个演化层 出现的情况均有所了解,并对下一阶段工作 做出正确的安排。
在实际应用过程中,如果用户提出了明 确的业务需求,开发人员也正确理解了用户 需求后,开发过程无需开发原型系统,整个 开发过程可采用瀑布模型。
第3章软件项目全生命周期的阶段划 分
(2)外包软件项目 提出项目立项的单位本身不具备软件开
发的能力,项目实施要借助于专业的软件研 发机构来完成。
由于项目主体方和项目实施方属于不同 的单位,在项目实施过程中,由于利益及责 任的不同,双方在项目的实施过程中存在着 复杂的协作关系,造成项目在组织上和管理 上存在较大的困难。
第3章软件项目全生命周期的阶段划 分
(4)模型的使用 在模型实际的使用不能生搬硬套现有的 开发模型,而是要深刻领会模型的精神,结 合自己软件项目的实际情况,选择符合本身 项目特点的开发模型。 瀑布模型无法解决软件需求不明确或不 准确的问题,会对整个软件开发工作带来严 重影响,最终可能导致开发出的软件并不是 用户真正需要的,且这一点只有在软件开发 完成后才可以被发现,所以瀑布模型对于需 求简单、明确的软件开发项目比较适合。
第3章软件项目全生命周期的阶段划 分
如图3-3所示,软件项目沿着螺旋式模型 旋转在笛卡儿坐标的四个象限上。
第3章软件项目全生命周期的阶段划 分
1)制定计划 确定软件项目的目标,选定实施方案, 定义项目的边界条件。 2)风险分析 分析所选方案,考虑如何识别、预防、避 免和清除风险。 3)项目实施 开展软件项目全生命周期的分析、设计、 编码、 测试和实施等工作。 4)客户评估 评价软件项目各阶段的工作,提出修正性 建议。
第3章软件项目全生命周期的阶段划 分
3.2.2.2项目启动
项目的可行性研究表明项目可行后,就 应立即启动。
软件项目启动阶段包括项目计划的制定、 项目的招投标、系统开发环境与运行环境的 确定与购买、项目经理的选择、项目团队的 计划和组织等、各种合同的签订等一系列软 件项目开发前的准备工作和基础性工作。
第3章软件项目全生命周期的阶段划 分
第3章软件项目全生命周期的阶段划 分
其软件开发活动具有以下特点: 1)阶段性 要求在开发过程中前一阶段工作完成以 后,后一阶段工作才能开始。 2)阶段评审 对每一阶段完成的工作都要进行评审, 以利于尽早发现问题,避免后期的返工,如 果评审不合格,则不能开始下一阶段工作。 3)文档管理 每个阶段都明确规定了要完成的工作。 如果文档没有完成,就认为本阶段的工作没 有完成。
第3章软件项目全生命周期的阶段划 分
(3)交付成果 在可行性分析阶段,应提出实现系统的 各种初步方案,并形成书面报告即可行性分 析报告,作为项目立项阶段的交付成果,它 是项目能否继续开展研究与开发的重要依据。 本阶段的工作以项目的受益者即客户为 核心开展工作。在我国,传统的做法是客户 自己通过多方调查来完成论证,但往往由于 客户对软件及其应用效果不能有很多直观的 印象、对软件应用后的效益很难估算造成可 行性论证阶段缺乏科学的依据。
第3章软件项目全生命周期的阶段划 分
根据应用类型的不同也可分为两大类: (1)系统软件
是支持计算机及应用软件集成化运行的基 础平台及软件。
操作系统软件、目录服务软件、文件服务 软件、通讯服务软件、数据库服务软件、语 言编译软件等。
(2)应用软件。 是最终用户使用的用来提高办公效率的
终端软件。 应用软件不像系统软件具有更广泛的通
第3章软件项目全生命周期的阶段划 分
3.2.2.1项目定义
项目定义阶段主要考虑项目的立项问题, 具体任务是完成问题定义与项目可行性分析、 研究与论证工作,确定是否立项。
(1)问题定义
软件项目立项的第一个任务是问题定义,
确定所要实现的软件系统的背景、目标、功
能、性能以及预期达到的效果,并进行成本 的粗略估计。
第3章软件项目全生命周期的阶段划 分
利用演化模型进行软件开发的最大优点 或特点是在软件开发过程中,如果一次迭代 还不能满足用户的实际需求,可通过下一次 的迭代完成,这样就可以在一定程度上减少 软件开发的盲目性,提高软件的开发效率。
第3章软件项目全生命周期的阶段划 分
(3)螺旋模型
螺旋模型是在演化模型的基础上发展起 来的。它在演化模型的基础上增加了风险分 析机制。
1)经济可行性
对开发项目进行成本效益分析,评估项 目的开发成本,估算项目成本是否会超过项 目预期的全部利润。
其中成本费用包括购置软硬件及其相关 设备的费用,系统开发费用,系统安装、运 行、维护费用,人员培训费用等。
效益包括经济效益和社会效益。经济效 短能够通过直接的或统计的方法估算,社会 效益只能用定性的方法估算。
风险分析的任务是在给定的约束条件下, 判断能否设计并实现系统所需功能和性能。
资源分析的任务是论证是否具备系统开 发所需的各类人员、软件、硬件资源和工作 环境等。
技术分析的任务是当前的科学技术是否 支持系统开发的全过程以及拟采用的技术路 线等。
第3章软件项目全生命周期的阶段划 分
3)操作可行性 包括政策、法律等因素。政策因素在软件 开发项目中有着重要的作用,如果项目得到 政策的扶持,往往在人力、财力等方面都会 有充分的保证。另外,在系统开发过程中可 能涉及的各种合同、侵权、责任以及各种与 法律相抵触的问题,也必须加以认真研究。
用性,它一般是为客户在某一个专用领域提 供服务而定制的。
第3章软件项目全生命周期的阶段划 分
3.2 软件项目全生命周期的阶段划分
3.2.1软件开发模型
在软件项目的实施过程中,选择有效的开 发模型对项目的成功有很大的影响。比较典 型的软件开发模型有瀑布模型、演化模型和 螺旋模型。
(1)瀑布模型。
1970年,由Royce Winston提出,如图3-1 所示。瀑布模型规定软件开发各阶段的活动 依次是:用户提出软件需求,项目成员开展 需求分析、系统设计、编码、测试、实施和 运行维护等一系列的任务。模型中各阶段的 活动从上一阶段向下一阶段逐级过渡,如同 瀑布逐级下落,最终完成软件产品并交付用 户使用。
第3章软件项目全生命周期的阶段划 分
演化模型有效地解决了瀑布模型的不足, 利用原型技术可有效防范软件开发过程中的 风险,但对风险的分析的预防机制略显不足, 因而适合规模中等的软件项目开发。
螺旋模型既继承了演化模型的特点,又有 效地增加了风险预防和解决机制,适合于大 型规模的软件项目开发。
第3章软件项目全生命周期的阶段划 分