Download presentation
Presentation is loading. Please wait.
1
软件工程 Software Engineering
武汉大学 计算机学院
2
思考? 软件维护的内容包括哪些方面? 如何提高软件的可维护性?
3
软件生存期 软件计划 需求分析 软件设计 实现(编码) 测试 维护 定义时期 开发时期 使用和维护时期 退 役
4
第12章 软件维护 软件维护的概念是什么? 软件维护的类型有哪些? 影响维护工作量的因素有哪些? 如何控制维护的成本? 如何进行软件的维护?
如何提高软件的可维护性?
5
一、软件维护的类型 校正性维护/纠错性维护(corrective maintenace)
适应性维护(adaptive maintenance) 完善性维护(perfective maintenance) 预防性维护(preventive maintenace)
6
二、影响维护工作量的因素有哪些 系统大小 程序设计语言 系统年龄 数据库技术的应用 先进的软件开发技术 其它
7
三、维护的成本 在过去的三十几年中,软件维护的费用在不断增加。 维护成本包括:有形成本和无形成本。 维护工作量模型:
表明:如果软件的开发不遵循软件工程方法论和原则,而且原来的开发人员又不能参加维护工作,那么维护工作量和成本将按指数函数迅速增加。
8
四、维护过程 建立维护的机构 提出维护申请报告及评价 维护实施 保存维护记录
9
建立维护机构
10
提出维护申请及评价 MRF SPR SCR 维护管理员
11
维护实施
12
保存维护记录 (1)程序名称; (2)源程序语句的数量; (3)机器代码指令条数; (4)使用的程序设计语言; (5)程序的安装日期;
(6)程序安装后的运行次数; (7)自安装以来程序故障的次数; (8)程序修改的层次和名称;
13
(9)由于程序修改而增加的源程序语句条数;
(10)由于程序修改而删除的源程序语句条数; (11)每项修改所付出的“人时”数; (12)程序修改的日期; (13)软件维护人员的姓名; (14)维护申请报告的名称; (15)维护类型; (16)维护开始时间和维护结束时间; (17)用于维护的累计“人时”数; (18)维护工作的净收益。
14
维护活动的评价 (1)每次程序运行时的平均出错次数; (2)用于每一类维护活动的总“人时”数;
(3)每个程序、每种语言、每种维护类型所做的平均修改数; (4)维护过程中,增加或删除每条源程序语句花费的平均“人时”数; (5)维护每种语言的程序平均花费“人时”数; (6)一张MRF或SPR的平均处理时间; (7)各类维护类型所占的百分比。
15
五、可维护性 什么是可维护性 可维护性的度量 如何提高系统的可维护性
16
可维护性 可维护性:是对系统进行维护的难易程度的度量。 影响系统可维护性的因素: 可理解性; 可测试性; 可修改性。
17
可维护性的度量 (1)识别问题的时间; (2)因管理活动而拖延的时间; (3)维护工具的收集时间; (4)分析和诊断问题的时间;
(5)修改规范说明的时间; (6)实际校正(或修改)的时间; (7)局部测试时间; (8)集成或回归测试的时间; (9)维护的评审、复审时间; (10)总的恢复时间。
18
提高可维护性的措施 编码 需求分析 设计 测试 文档 编码规则、风格 清晰、易读、结构好 → 易修改 SP 通用性高的PL
测试充分 有必要研制先进的测试技术和工具 文档 需求分析 清晰、易读、结构好 → 易修改 设计 结构层次清晰、独立性强 → 修改局部化 灵活的数据逻辑结构 → 适应处理的变化
19
六、维护的副作用 修改软件后导致新错误的发生 编码的副作用 数据的副作用 文档资料的副作用
20
七、维护的几个问题 维护与软件工程的关系 “过时”软件的维护 维护中的人员稳定性问题 采用先进的软件开发方法是做好系统维护工作的关键
平时研究、画出程序流程、注释、避免轻率修改、保存记录等 维护中的人员稳定性问题
21
维护与软件工程的关系
22
小 结 软件维护的概念和类型 可维护性和提高可维护性的措施 维护的成本 维护过程 维护的副作用 维护与软件工程的关系
23
思考题 某些软件工程师不同意“目前国外许多软件开发组织把60%以上的人力用于维护已有软件”的说法,他们争论说:“我并没有花费我的60%的时间去改正我所开发的程序中的错误”。你同意他们的观点吗?为什么?
Similar presentations