《软件维护》PPT课件
Use of Maintenance Time
• Perfective • Adaptive • Corrective • Preventive
Maintenance: 50% Maintenance : 25% Maintenance : 21% Maintenance : 4%
9.2 软件可维护性(Software Maintainnabi
第9章 软件维护 Chapter 9 Software Maintenance
●大、中型软件产品的开发周期一般为1至3 年,运行周期可达5至10年。在这么长的时间 内,除了要改正软件中的残留错误外,还可 能要多次更新软件的版本,以适应改善运行 环境(包括硬件和软件的改进)和加强产品 性能等需要。因此,软件维护是不可避免的。
模块化设计,编写准确的文档,并使源程序文 档化。
(2)可修改性( Modifiability ) ●模块设计时的高内聚、低耦合、面向对
象技术、复用技术等,可提高软件的可修改性。
(3)可测试性( Testability ) ●要求程序有良好的可理解性和较低的结
构复杂度,同时要求有齐全的测试文档,包括 开发时期用过的测试用例与结果。
lity)
1. 可维护性的含义 ●可维护性是衡量维护难易程度的一种软件属 性。 可维护性取决于下列属性:可理解性、可修改 性和可测试性。
(1)可理解性(Understandability ) ●读懂别人的程序是困难的,若文档不全,或
仅有程序而无文档,则难度更大。 ●要使程序达到良好的可理解性,必须坚持
P=为生产性工作量,包括修改设计与
编码等;
K(c-d)为非生产性工作量,包括理解代
码功能,解释数据结构等;
K=经验常数;
c=软件复杂度;
d=维护人员对软件的Байду номын сангаас悉程度。
感谢下 载
止日期等。
(2)维护申请摘要报告和维护趋势图 ①维护申请摘要报告是一种定期报告,可以每周
或每月统计一次。内容包括上次报告以来已经处理了、 正在处理和新接到的维护申请项数及其处理情况。
②维护趋势图是在维护申请摘要报告的基础上绘 制而成的。
4.维护费用的估算:
M = P + K(c-d)
其中:M=维护所需总工作量;
1979年,T.Gilb建议把维护过程中的 10 种活动
的耗费时间记录下来,并用它们度量软件的可维护
性:
(1)问题识别时间;
(2)管理延迟时间;
(3)收集维护工具时间; (4)问题分析时间;
(5)修改规格说明书时间;(6)改正(或修改)时间;
(7)局部测试时间;
(8)整体测试时间;
(9)维护复审时间;
运算符、修改打开或关闭文件的语句等。
(2)修改数据的副作用 例如修改数据结构或其中的数据项、重新定义
局部或全局变量、改变子程序的形式参数的个数或 顺序等。
(3)修改文档的副作用 任何对程序的修改,都应该及时反映到有关的
文档上。如果只改程序,未改有关的文档,必将在 今后的使用和维护中造成混乱。
11.4 软件维护的管理 1.维护的机构和人员 (1)修改控制组: 由高级管理人员和专业人员组成。其职责是:
对数据量大的应用软件,可以采用数据库 技术来管理软件中的数据。
11.3 软件维护的实施 1.软件维护的工作流程
纠错项目表
不严重
严重性
维 纠错性 评价 严
护 区分
重
申 类型 适应性
请完善性
优先度高
评价
低
错误 分析
维护 过程
问题 已修改 分析 的配置
开发项目表
已修改 的软件
配置 复审
批准交 付 的配置
●维护阶段是软件生存周期中花费最多、时 间最长的一个阶段。通常,软件维护费用与 开发费用的比例为2:1。
Development Time VS. Maintenance Time ●Typical development project takes b etween 1 and 2 years. Requires an additional 5 to 6 years of mainten ance time !
3.纠错性维护(Corrective Maintenance): 纠正软件在开发期间未能发现的遗留错误。
●纠错性维护约占整个维护工作量的21% 。
4.预防性维护(Preventive Maintenance): 为了提高软件的可维护性,减少今后对它
们维护时所需要的工作量而进行的维护。 ●预防性维护约占整个维护工作量的4% 。
的重要手段。 ●常用的配置管理工具有: (1)配置管理数据库 (2)版本控制库
3.维护管理文档 ●维护阶段的文档除了维护申请单和软件修改
报告单外,还有以下几种: (1)维护日记 维护日记在每次维护完成后填写,包括以下
内容: ①维护前程序的情况。 ②维护中对程序修改的情况。 ③其他的重要数据,如维护的类型、维护起
对维护申请的审查和批准、维护活动的计划和安排、 人力和资源的分配、维护工作的评价和分析等。
(2)维护小组: 可以由原开发小组承担,也可以指定专门的维
护小组进行。其职责是:进行具体的维护工作。
2.维护时期的配置管理 ●软件配置:一个软件在生存周期内,它的各种
形式、各种版本的文档与程序的总称。 ●对软件配置进行科学的管理,是保证软件质量
(10)分发与恢复时间;
2.提高可维护性的途径 (1)提供完整和一致的文档 ①文档的第一个作用是帮助维护人员读懂
程序。 有完整的文档,对理解系统的功能、性能、
系统结构、模块算法等有很大的作用,容易 进行维护工作。若只有源程序没有文档,维 护活动只能通过阅读源程序来理解系统的功 能、性能、系统结构、模块算法等,这是非 常困难的。
件所作的每一次修改,包括问题来源、错误类型、 修改内容以及批准修改的负责人等。修改报告单 由直接进行修改和负责文档管理的人员共同填写。
3. 维护的副作用 ●因修改软件而引入的错误称为维护的副作用。 ●修改软件可能产生的副作用有以下3类: (1)修改编码的副作用 例如修改变量标识符、修改子程序、修改逻辑
●80-20 Rule: Twenty percent of the
effort is in evelopment and eighty percent is in maintenance.
9.1 软件维护的种类 1.完善性维护(Perfective Maintenance): 为满足用户日益增长的需要,不断完善和
图11.3 维护的步
2. 维护申请单和修改报告单 (1)维护申请单:又称软件问题报告单,由申请
维护的用户填写。 ●纠错性维护的申请单应说明导致错误发生的
环境,包括输入数据、输出数据和其他有关材料。 ●适应性或完善性维护的申请,只需提出一个
简要的需求说明。 (2)软件修改报告单:用于记录在维护时期对软
②文档的第二个作用是方便被维护软件的测试。 在测试阶段的“测试用例文件” (测试用例
说明书和测试总结报告)中,记录了对软件进 行测试的测试用例和测试结果。当软件在维护 中被修改后,可以先把原有的测试用例全部重 测一遍,再增加一些测试用例来检验被修改的 代码。
(2)使用现代化的开发方法 尽可能采用面向对象技术和复用技术;
加强软件的功能与性能而进行的维护。 ●完善性维护约占整个维护工作量的50% 。
2.适应性维护(Adaptive Maintenance): 为使软件适应运行环境的改变而进行的维护。 ●运行环境的改变包括: ① 硬件和支撑软件(如操作系统改版、增加
数据库等)的变化。 ② 将软件移植到新的机种上运行。 ③ 软件使用对象的变更,等等。 ●适应性维护约占整个维护工作量的25% 。