第八章软件维护
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
软件的易维护性是软件开发过程中每个步骤的一个关键目标。维护费用占软件总支
出的20-30%到70-80%。而无形的代价更是无法估计的。
2
8.3 维护的过程(1)
一.建立软件维护的组织,在组织中有总负责人、系统管理员和维护管理员等。 二.编写维护的报告
用标准化的格式表达所有软件维护的要求。要求包括下列内容: 1.满足维护要求表中提出的要求所需要的工作量; 2.维护要求的性质; 3.该项要求的优先顺序; 4.与修改有关的事后数据。 三.为每一个维护要求规定一个标准化的事件序列(见下页图形) 1.明确维护的类型:纠错性维护,进一步分清是适应性维护还是完善性维护; 2.对纠错性维护从评价错误的严重性开始,分别不同程度采取不同的方法; 3.适应性维护和完善性维护沿着同一路径推进,确定优先顺序后开始工作; 4.对恶性软件故障,应把所有的资源用来解决问题; 5.对任何类型的维护都要进行同样的技术工作,包括:修改软件设计、设计
复审、必要的代码修改、单元测试、集成测试、验收测试和复审等。
5
8.3 维护的过程(2)
维护事件序列图
不严重
计划改 正进度
纠错
严重性 评价
严重
维护要求 区分 +
类型
+ 适应
完善
优先度
高
评价
低
问题 分析
分配的人员
分配的人员 问题 分析
纠错项目表 测试
维护 已修改配置 配置
任务
复审
复审后供使用 的软件配置
软件项目的规模越大,所需要
的管理支持工作量越大。统计资料
表明在软件项目的规模达到一定程
工 作
度时,所需的软件管理工作量将达 量
到总工作量的一半。如图所示:
软件项目的规模,决定了采用怎样 的管理水平、开发工具和开发方法。
技术工作
100% 50%
管理工作 软件规模
13
9.1 软件项目特点和管理的职能(2)
据 程序变动的层次和标识;
累计用于维护的人时数;
因程序变动而增加的源语句数; 与完成的维护相联系的纯效益。
工 每次程序运行平均失效的次数; 用于同一类维护活动的总人时数;
作 维护每种语言平均花费的人时数; 一张维护要求表的平均周转时间; 量 考 不同维护类型所占的时间比。 增加或删除一个源语句平均花费的人时数
二.软件维护包括四类活动:改正性维护、适应性维护、完善性维 护和预防性维护。
三.软件的可理解性、可测试性和可维修性是决定软件可维护性的 基本因素。
四.软件生存周期的每个阶段和软件可维护性密切相关。 五.文档是影响软件可维护性的决定因素。 六.文档分为用户文档和系统文档,它们都必须和程序代码同时维
护才有真正的价值。
第八章软件维护
8.1 软件维护的概念
软件维护是软件生存周期的最后一个阶段,不属于系统开发的过程。
问题
内
容
维护 满足用户对已开发产品的性能与运行环境不断提高的要求,进而
目的 达到延长软件寿命的目的。
改正性 对程序使用期间发现的程序错误进行诊断和改正的过程;
适应性 配合变化了的环境进行修改软件的活动;
虑 平均每个程序、每种语言、每种维护类型所做的程序变动数;
7
8.4 可维护性(1)
决定软件可维护性的因素
因素
内
容
软件的结构、接口、功能和内部过程的难易程度;
可理 解性
模块化、详细设计文档、结构化设计、源代码内部的文档;
程序设计语言。
诊断和测试的难易程度取决于软件容易理解的程度;
可测 良好的文档对诊断和测试是至关重要的诊断和测试; 试性 软件结构、可用的测试工具和调试工具,以往的测试过程是很重要的;
已修改软件
开发项目表Leabharlann Baidu
6
8.3 维护的过程(3)
程序标识;
因程序变动而删除的源语句数;
维 源语句数;
每个改动所耗费的人时数;
护 机器指令条数; 记 使用的程序设计语言; 录 中 程序安装的日期;
程序改动的日期; 软件工程师的名字;
维护要求表的标识;
的 自从安装以来程序运行的次数; 维护类型;
数 自从安装以来程序失败的次数; 维护开始和完成的日期;
一般将上述两种方法结合使用。此外可采用系统的“分类活动结构图”(简称 WBS)有效地避免在估计中遗漏任务。例下页的CAD系统产品的两种WBS图。
17
9.2 成本估算(2)
CAD系统产品的WBS图
系统输入
CAD系统产品 图形设计
图形输出
用户接口 数据结构 二维图 三维图
控制
管理
分析
分析
设计 分析
图形 显示
使用手册:简要说明如何使用这个系统; 参考手册:详尽描述用户可以使用的系统设施及方法,以及可能产
生的出错信息含义;
操作员指南:说明操作员如何处理使用中出现的各种情况。 系统 从问题定义、需求说明到验收测试这样一系列和系统实现有关的文9档。 文档
第八章 小 结
一.软件维护是软件生存周期的最后一个阶段,也是持续时间最长、 代价最大的一个阶段。
合同的根据;管理开发费用的有效使用,即用经济手段来保证产品
如期按质完成。
(2)质量管理:按项目的质量保证计划,确保各个开发阶段的开发和维护
工作全部按软件工程的规范进行,保证软件产品的质量。
(3)配置管理:通过对于程序、文档和数据的各种版本所进行的管理,
保证资料的完整性与一致性。
(4)项目管理:制定《项目实施计划》,按照计划的内容组织和实施软
总计
生产 率 92 102 134 145 80
估计 行数
840 1210
600 450 1100
每行 成本 36 18 24 11 45
成本($) 人月
30240 9.1 21780 11.8 14400 4.4
4950 3.1 49500 13.7 120870 42.1
19
9.3 人员的分配和组织(1)
10
第八章 习 题
1.为什么说软件的维护是不可避免的? 2.软件的维护一般分为哪几类? 3.影响软件维护的因素有哪些? 4.软件维护困难主要表现在什么方面? 5.决定软件可维护性的因素? 6.软件价格应该计入维护成本吗?为什么? 7.对前面各章中分析的各应用系统,提出改进和扩充功能的要求?
(1)教材销售采购系统; (2)图书管理系统; (3)房产管理系统。
在设计阶段应尽力把软件设计成容易诊断和测试的。
可修 与设计原理、规则直接相关; 改性 与藕合、内聚、局部化、控制域、作用域等等都有关系。
8
8.4 可维护性(2)
与可维护性相关的文档
文档
内
容
文档 描述 要求
如何使用这个系统; 怎样安装和管理这个系统; 系统需求和设计; 系统的实现和测试。
用户 文档
功能描述:说明系统能做什么; 安装文档:说明怎样安装该系统及使系统适应特定的硬件配置;
时间(年) 2.0 1.84
工作量(人年) 25 35
一.Rayleigh-Norden 曲线(右图)
横坐标:T(时间);纵坐标:人力;
人力
1.曲线方程:
人力=(K/Td)×eS×(T/Td)
其中 s=-0.5 ×(T/Td)2;
Td:曲线达到峰点的时间; K:软件生存周期总工作量;
0
Td
T
(1)在Td之前,单位时间开发所需的人力逐渐上升;
(2)在Td达到峰值,单位时间开发所需的人力达到最大值;
自底 向上 估计
将开发任务分成若干子任务,子任务又 分成子子任务,直到每一个单元内容足够 明确为止;把各个任务单元的成本估计出 来,汇合成项目的总成本。
该方法得到的结果比较接近实际。
具体工作人员只主意到自己范 围内的工作,对综合测试、质量管 理和项目管理等涉及全局的花费 可能估计不足,甚至完全忽视。 因此可能使成本估计偏低。
11
第九章 软件工程管理
9.1 软件项目的特点和管理的职能 9.2 成本估算 9.3 人员的分配和组织 9.4 进度安排 9.5 质量保证 9.6 项目计划 9.7 软件管理工具
12
9.1 软件项目特点和管理的职能(1)
技术和管理是软件生产中不可缺少的两个方面,对技术而言, 管理意味着决策和支持。只有对生产过程进行科学的估量,作 到技术落实、组织落实和费用落实,才能达到提高生产率,改 善产品质量的目的。因此软件工程管理也是软件工程学中研究 的领域之一。
利用任务分解技术例子
任务 需求分析
人力 (人月)
5.0
$/人 月
3400
设 计 15.0 3200
编码与 单元测试
8.0 2650
综合测试 16.5 2900
总 计 44.5
3.算法模型(略)
成本($)
1700 48000 21200
47850 134050
利用代码行技术例子
功能
获取数据 更新数据库 脱机分析 产生报告 实时控制
14
9.1 软件项目特点和管理的职能(3)
二.软件项目管理的特殊困难 1.智力密集,可见性差,对没有软件知识和软件开发实践经验的人 员很难做好管理工作。 2.特定的开发环境,加上特定的开发方法、工具和语言。建立在这 种内容、形式各异基础上的研制或生产方式,与其他领域大规 模现代化生产的管理区别很大,给管理造成的实际困难也更多。 3.劳动密集、自动化程度低,加之软件本身的复杂性,各种错误 难以避免,为确保软件质量,给管理提出了更高的要求。 4.使用方法繁琐,维护困难。 5.对从事软件项目开发工作的人员,不仅需要一定的技术水平和工 作经验,而且要求具有良好的心理素质。因此对软件人员的管理 是一个不可忽视的问题。
15
9.1 软件项目特点和管理的职能(4)
三.软件管理的职能
1.管理的目的:按照工程预定的时间和费用,成功地完成软件的计划、开
发和维护任务。管理贯穿整个软件生存周期。
2.管理的内容
(1)费用管理:对软件开发进行成本核算,使软件生产按照商品生产的规
律办事。包括:以简单、科学方法估算软件开发费用,作为签定开发
(3)在Td之后,单位时间所需的人力逐渐下降。
(4)Td两侧的比为4:6,即计划与开发所需的工作量约占生存期总工作量的40%,
而维护工作量约占生存期总工作量的60%。
20
9.3 人员的分配和组织(2)
2.软件开发的权衡定律
E=常数/ (T或Td)4 即开发工作量与开发时间的4次方成反比。 例.某软件两种开发时间的比较:
一个软件项目在生命周期的各个不同阶段所需要的人员的类型及其数量是不相同的。 如:计划与分析阶段只需要很少的人,概要设计需要的人略多一些,详细设计又多一 些,到了编码和测试阶段所需人数最多。在运行初期,需要较多的人参加维护,但很 快就可减少下来。如何按照实际需要来确定各阶段所需的人力?有无规律可循?如何 组织?是软件开发中必须解决好的问题。
件的工程化生产。最终目标是以合理的费用和进度,圆满完成计划
所规定的软件项目。
16
9.2 成本估算(1)
一.成本估算的方法
方法
实
现
不足
自顶 向下 估计
首先估算出项目总的开发成本,然后在 一般对开发中的某些局部问题 项目内部进行成本分配。由少数专家参与, 或特殊困难容易低估,甚至没有 依靠他们过去的经验,将要开发的软件与 考虑到。如果所开发的软件缺乏 过去开发过的软件进行“类比”,以估计 可以借鉴的经验,在估计时就可 新的软件开发所需要的工作量和成本。 能出现较大的误差。
一.软件项目的特点 1.软件项目与其他任何产业项目不同,它是算法、思想、概念、 组织、流程、效率、优化等的融合体; 2.开发软件项目产品,在多数情况下,用户给不出明确的想法和要 求。 3.在开发过程中,程序及其相关的文档资料常常需要修改,在修 改过程中又可能带来新的问题,且这些问题要在很久以后才会 发现。 4.在研制开发过程中,文档资料是不可缺少的,但工作量又是巨 大的,往往也是人们不愿去作的。 5.参加软件项目的工作人员,要求具有一定的业务水平和实际工 作经验,而很难完全避免的人员流动,对工作的影响是很大的。 离开的人员不仅带走了重要的信息,而且带走了工作经验。
外部设备 控制
CAD系统开发过程的WBS图
CAD系统开发过程
项目计划
项目开发
系统测试
项目管理
需求 分析
设计
编码与 单元测试
综合 测试
确认 测试
质量 保证
进度 安排
18
9.2 成本估算(3)
二.估算中通常采用的技术 1.任务分解技术:估计完成该项任务需要的人力(以人月为单位),再乘以每 人每月的平均支付金额确定软件成本。 2.代码行技术:用每行代码的平均成本乘以行数确定软件成本;
维护
满足用户在使用过程中提出增加新的功能或修改已有
种类 完善性 功能的建议而进行的工作;
预防性 为了改善未来的可维护性或可靠性而修改软件的工作。
软件维护的工作量非常大,不同应用领 改正性 17—21% 适应性 18—25% 域的维护成本差别也很大。一般大型软件 的维护成本平均高达开发成本的四倍左右。 完善性 50—66% 预防性 4%左右