软件维护等 SOFTWARE ENGINEERING件维护等-PPT文档资料
合集下载
软件工程学概述第7讲软件维护PPT课件
可能发生变化。
目的
– 适应环境变化和发展而对软件进行维护。
2020/7/27
8
(3) 改善性维护
原因
– 在软件系统运行期间,用户可能要求增加新 的功能、建议修改已有功能或提出其他改进 意见。
目的
– 为功能、增强软件性能、 改进加工效率、提高软件的可维护性。
的帮助 软件修改困难,易出错 缺乏成就感
2020/7/27
19
3 软件的可维护性
概念
– 纠正软件系统出现的错误和缺陷,以及为满 足新的要求进行修改、扩充或压缩的容易程 度。
可维护性、可使用性、可靠性是衡量软 件质量的主要质量特性。
软件的可维护性是软件开发阶段各个时 期的关键目标。
2020/7/27
20
3.1 影响软件可维护性的因素
软件开发方法
– 结构化、OO、…...
软件配置是否齐全 开发人员素质 软件系统结构是否清晰、易于理解 标准的程序设计语言 文档的结构是否标准化 …...
2020/7/27
21
3.2 衡量可维护性的质量特性
衡量软件可维护性的特性
– 可理解性 – 可使用性 – 可测试性 – 可移植性 – 可修改性 – 效率 – 可靠性
在不同的检查点,检查的重点不全相同。
(1) 需求分析的复审
– 对将来可能修改和改进的部分加注释,对软 件的可移植性加以讨论,并考虑可能影响软 件维护的系统界面
3
软件生命周期
可行性研究 需求分析 概要设计 详细设计 实现
软件定义
软件开发
2020/7/27
集成测试
确认测试
使用与维护
维护
退役
4
1.1 软件维护定义
目的
– 适应环境变化和发展而对软件进行维护。
2020/7/27
8
(3) 改善性维护
原因
– 在软件系统运行期间,用户可能要求增加新 的功能、建议修改已有功能或提出其他改进 意见。
目的
– 为功能、增强软件性能、 改进加工效率、提高软件的可维护性。
的帮助 软件修改困难,易出错 缺乏成就感
2020/7/27
19
3 软件的可维护性
概念
– 纠正软件系统出现的错误和缺陷,以及为满 足新的要求进行修改、扩充或压缩的容易程 度。
可维护性、可使用性、可靠性是衡量软 件质量的主要质量特性。
软件的可维护性是软件开发阶段各个时 期的关键目标。
2020/7/27
20
3.1 影响软件可维护性的因素
软件开发方法
– 结构化、OO、…...
软件配置是否齐全 开发人员素质 软件系统结构是否清晰、易于理解 标准的程序设计语言 文档的结构是否标准化 …...
2020/7/27
21
3.2 衡量可维护性的质量特性
衡量软件可维护性的特性
– 可理解性 – 可使用性 – 可测试性 – 可移植性 – 可修改性 – 效率 – 可靠性
在不同的检查点,检查的重点不全相同。
(1) 需求分析的复审
– 对将来可能修改和改进的部分加注释,对软 件的可移植性加以讨论,并考虑可能影响软 件维护的系统界面
3
软件生命周期
可行性研究 需求分析 概要设计 详细设计 实现
软件定义
软件开发
2020/7/27
集成测试
确认测试
使用与维护
维护
退役
4
1.1 软件维护定义
计算机软件维护PPT课件
关系,因为它包括了成千上万的与程序、文件相关联的键和值以 及ActiveX类的储存等内容。 HKEY_CLASSES_ROOT主键中的文件类型子键下的常见子键 的含义:
① DefaultIcon:该类文件显示的默认图标。 ② Shell:程序外壳子键。 ③ CLSID:该子键下记录了所有的已注册的系统类标识符。
图15.12 【性能选项】对话框
步骤3:单击【更改】按钮,弹出如图15.13所示的【虚拟内 存】对话框,在这里可以设置虚拟内存所在驱动器及大小,在给 每一个驱动器指定虚拟内存大小之后,需要单击【设置】按钮, 设置完成之后,单击【确定】按钮,系统提示需要重新启动计算 机后设置才能生效。
图15.13 虚拟内存
图15.3 磁盘清理程序界面
步骤3:选择好需要清理的文件后,单击【确定】按钮,系统 会询问是否真的要删除文件,确认即可开始磁盘清理,如图15.4 所示。
图15.4 磁盘清理程序界面
2.磁盘检查程序 步骤1:在需要检查的驱动器上单击右键,选择【属性】菜单,
在弹出的属性对话框中选择【工具】选项卡,如图15.5所示。
(2)HKEY_USERS主键 该主键下记录的是Windows中所有用户的设置信息,它的
值是变化的,并取决于计算机是否激活了用户配置文件,若未激 活用户配置文件,则可以看到称为.DEFAULT的单一子键,该子 键包括和所有用户相关的各种设置,并且和系统目录下的 USER.DAT文件相配合。
图15.5 【属性】对话框
步骤2:单击【开始检查】按钮,出现磁盘检查程序界面,如 图15.6所示。单击【开始】按钮,系统开始自动检查磁盘,无需 人工干扰,检查完毕之后会弹出提示信息。
图15.6磁盘检查程序界面
3.磁盘碎片整理程序 步骤1:在需要检查的驱动器上单击右键,选择【属性】菜单,
① DefaultIcon:该类文件显示的默认图标。 ② Shell:程序外壳子键。 ③ CLSID:该子键下记录了所有的已注册的系统类标识符。
图15.12 【性能选项】对话框
步骤3:单击【更改】按钮,弹出如图15.13所示的【虚拟内 存】对话框,在这里可以设置虚拟内存所在驱动器及大小,在给 每一个驱动器指定虚拟内存大小之后,需要单击【设置】按钮, 设置完成之后,单击【确定】按钮,系统提示需要重新启动计算 机后设置才能生效。
图15.13 虚拟内存
图15.3 磁盘清理程序界面
步骤3:选择好需要清理的文件后,单击【确定】按钮,系统 会询问是否真的要删除文件,确认即可开始磁盘清理,如图15.4 所示。
图15.4 磁盘清理程序界面
2.磁盘检查程序 步骤1:在需要检查的驱动器上单击右键,选择【属性】菜单,
在弹出的属性对话框中选择【工具】选项卡,如图15.5所示。
(2)HKEY_USERS主键 该主键下记录的是Windows中所有用户的设置信息,它的
值是变化的,并取决于计算机是否激活了用户配置文件,若未激 活用户配置文件,则可以看到称为.DEFAULT的单一子键,该子 键包括和所有用户相关的各种设置,并且和系统目录下的 USER.DAT文件相配合。
图15.5 【属性】对话框
步骤2:单击【开始检查】按钮,出现磁盘检查程序界面,如 图15.6所示。单击【开始】按钮,系统开始自动检查磁盘,无需 人工干扰,检查完毕之后会弹出提示信息。
图15.6磁盘检查程序界面
3.磁盘碎片整理程序 步骤1:在需要检查的驱动器上单击右键,选择【属性】菜单,
软件工程——软件维护课件
实施过程
需求分析、修改设计、修改代码、测试与验 证。
技术
模块化设计、面向对象设计、设计模式、重 构技术等。
04
完善性维护
定义与目的
定义
完善性维护是对软件系统进行修改和增强,以改进其性能、可维护性、可靠性和安全性 的过程。
目的
完善性维护旨在提高软件系统的质量,使其更好地满足用户需求,并增强系统的适应性 和稳定性。
软件工程——软件维护课件
目录
• 软件维护概述 • 改正性维护 • 适应性维护 • 完善性维护 • 软件维护的挑战与解决方案 • 软件维护最佳实践
01
软件维护概述
软件维护的定义
软件维护是指在软件运行过程中,为 了改正错误、满足新的需求或改进性 能等目的,对软件进行的修改、完善 和优化活动。
软件维护是软件生命周期中一个重要 的阶段,包括改正性维护、适应性维 护、完善性维护和预防性维护等类型 。
适应性维护
定义与目的
定义
适应性维护是指对软件系统进行修改, 使其适应软件环境的变化和满足新的要 求。
VS
目的
确保软件系统在变化的环境中能够正常运 行,提高软件的可维护性和可扩展性。
常见问题与原因
问题
软件系统无法适应环境变化或新需求。
原因
软件设计不够灵活、缺乏有效的维护机制、 代码质量差等。
实施过程与技术
定义
改正性维护是指在软件发布后,为了识别和纠正软件中的错误、缺陷或不符合需求的地方所进行的维护活动。
目的
确保软件能够满足用户的需求,修复已知的错误,提高软件的质量和可靠性。
常见问题与原因
常见问题
软件崩溃、数据丢失、功能异常、界面错误等。
原因
需求分析、修改设计、修改代码、测试与验 证。
技术
模块化设计、面向对象设计、设计模式、重 构技术等。
04
完善性维护
定义与目的
定义
完善性维护是对软件系统进行修改和增强,以改进其性能、可维护性、可靠性和安全性 的过程。
目的
完善性维护旨在提高软件系统的质量,使其更好地满足用户需求,并增强系统的适应性 和稳定性。
软件工程——软件维护课件
目录
• 软件维护概述 • 改正性维护 • 适应性维护 • 完善性维护 • 软件维护的挑战与解决方案 • 软件维护最佳实践
01
软件维护概述
软件维护的定义
软件维护是指在软件运行过程中,为 了改正错误、满足新的需求或改进性 能等目的,对软件进行的修改、完善 和优化活动。
软件维护是软件生命周期中一个重要 的阶段,包括改正性维护、适应性维 护、完善性维护和预防性维护等类型 。
适应性维护
定义与目的
定义
适应性维护是指对软件系统进行修改, 使其适应软件环境的变化和满足新的要 求。
VS
目的
确保软件系统在变化的环境中能够正常运 行,提高软件的可维护性和可扩展性。
常见问题与原因
问题
软件系统无法适应环境变化或新需求。
原因
软件设计不够灵活、缺乏有效的维护机制、 代码质量差等。
实施过程与技术
定义
改正性维护是指在软件发布后,为了识别和纠正软件中的错误、缺陷或不符合需求的地方所进行的维护活动。
目的
确保软件能够满足用户的需求,修复已知的错误,提高软件的质量和可靠性。
常见问题与原因
常见问题
软件崩溃、数据丢失、功能异常、界面错误等。
原因
软件工程课件-第八章维护ppt
例如,在软件交付用户使用之后,解决在开发时没有测 试所有可能的执行通路而带来的问题;
2. 适应性维护
计算机科学技术领域的各个方面都在迅速进步,大约每 过38个月就有新一代的硬件宣告出现;另一方面,应用软 件的使用寿命却很容易超过十年,远远长于最初开发这个 软件时的运行环境的寿命。因此,适应性维护就是为了和 变化了的环境适当地配合而进行的修改软件的活动,是既 必要又经常的维护活动。
4. 预防性维护
当为了提高未来的可维护性或可靠性,或为了给未来的 改进工作奠定更好的基础而修改软件时,就出现了第四类维 护活动,这类维护活动称为预防性维护。通常,把预防性维 护定义为:“把今天的方法学应用于昨天的系统以满足明天 的需要”。也就是说,预防性维护就是采用先进的软件工程 方法对需要维护的软件或软件中的某一部分,主动地进行重 新设计、编码和测试。
8.3.1 维护组织 虽然通常并不需要建立正式的维护组织,但是,即使对
于一个小的软件开发团体而言,非正式地委托责任也是绝 对必要的。维护机构成员一般包括:配置管理员、维护控 制员、系统管理员、一般维护工作人员。
每个维护要求都通过维护管理员转交给相应的系统管理 员去评价,见下页图示。
维护机构
维护要求 (软件问题报告)
● 当必须把软件工程师调去从事维护工作时,将在开发 过程中造成混乱。
8.1.2.3 维护的问题很多
与软件维护有关的绝大多数问题,都可归因于软件定 义和软件开发的方法有缺点。在软件生命周期的头两个时 期没有严格而又科学的管理和规划,几乎必然会导致在最 后阶段出现问题。下面列出和软件维护有关的部分问题:
8.1.2.2 维护的代价高昂 8.1.2.3 维护的问题很多
8.1.2.1 结构化维护与非结构化维护差别悬殊
2. 适应性维护
计算机科学技术领域的各个方面都在迅速进步,大约每 过38个月就有新一代的硬件宣告出现;另一方面,应用软 件的使用寿命却很容易超过十年,远远长于最初开发这个 软件时的运行环境的寿命。因此,适应性维护就是为了和 变化了的环境适当地配合而进行的修改软件的活动,是既 必要又经常的维护活动。
4. 预防性维护
当为了提高未来的可维护性或可靠性,或为了给未来的 改进工作奠定更好的基础而修改软件时,就出现了第四类维 护活动,这类维护活动称为预防性维护。通常,把预防性维 护定义为:“把今天的方法学应用于昨天的系统以满足明天 的需要”。也就是说,预防性维护就是采用先进的软件工程 方法对需要维护的软件或软件中的某一部分,主动地进行重 新设计、编码和测试。
8.3.1 维护组织 虽然通常并不需要建立正式的维护组织,但是,即使对
于一个小的软件开发团体而言,非正式地委托责任也是绝 对必要的。维护机构成员一般包括:配置管理员、维护控 制员、系统管理员、一般维护工作人员。
每个维护要求都通过维护管理员转交给相应的系统管理 员去评价,见下页图示。
维护机构
维护要求 (软件问题报告)
● 当必须把软件工程师调去从事维护工作时,将在开发 过程中造成混乱。
8.1.2.3 维护的问题很多
与软件维护有关的绝大多数问题,都可归因于软件定 义和软件开发的方法有缺点。在软件生命周期的头两个时 期没有严格而又科学的管理和规划,几乎必然会导致在最 后阶段出现问题。下面列出和软件维护有关的部分问题:
8.1.2.2 维护的代价高昂 8.1.2.3 维护的问题很多
8.1.2.1 结构化维护与非结构化维护差别悬殊
《软件工程》教学课件09软件维护等
完善性维护
为了满足用户新的需求或改进软件性 能而进行的修改和增强。
预防性维护
为了预防软件可能出现的问题而进行 的修改,如优化代码结构、提高系统 稳定性等。
常用软件维护技术
程序理解技术
通过阅读源代码和相关文档,理解软件的内部结构和功能。
重构技术
在不改变软件外部行为的前提下,对软件内部结构进行调整和优化, 提高软件的可维护性。
代码重构
通过对代码进行重构,提高代码的可 读性、可维护性和可扩展性,降低未 来维护的难度。
03 软件维护策略与技术
软件可维护性度量指标
可理解性
软件内部逻辑结构、 数据结构和代码的可 读性。
可测试性
软件进行测试的难易 程度,包括测试数据 的准备和执行测试的 自动化程度。
可修改性
软件进行修改、增加 或删除功能的容易程 度。
错误来源
错误可能来源于需求分析、设计、编码、测试等 各个阶段,因此需要在整个软件开发生命周期中 持续进行错误跟踪和管理。
纠正措施
纠正措施可能包括修改源代码、更新文档、重新 进行测试等,以确保错误得到彻底修复。
适应性维护
01
02
03
适应环境变化
随着外部环境的变化,如 操作系统升级、数据库迁 移等,软件需要进行适应 性维护以适应新的环境。
软件维护分类
根据维护的性质和目的,软件维护可 分为改正性维护、适应性维护、完善 性维护和预防性维护。
软件维护目标与意义
软件维护目标
确保软件的持续可用性、可靠性和效率,同时满足用户和业务需求的变化。
软件维护意义
延长软件生命周期,提高软件质量,降低软件总成本,增强用户满意度。
软件维护过程模型
【全版】软件工程软件维护推荐PPT
▪ 预防性维护
• 为了提高产品或项目的可靠性和可维护性, 有利于系统的进一步改造或升级换代
预防性 维护4%
完善性 维护50%
改正性维护 21%
适应性 维护25%
改正性维护 适应性维护 完善性维护 预防性维护
软件维护的种类
❖ 软件维护的原则
▪ 尽可能少地发生改动
▪ 低风险情况下进行改动 就是软件交付使用之后,在新版本产品升级之前这段时间里,软件厂商向客户提供的服务工作。
为了产品适应变化了的硬件、系统软件的运行环境,如系统升级
• 产品或项目中存在缺陷或错误,在测试和验收时 为了给系统增加新的功能,使产品或项目的功能更加完善和合理,又不至于对系统进行大的改造,这类活动占维护活动的大部分 未发现,到了使用过程中逐步暴露出来,需要改 为了提高产品或项目的可靠性和可维护性,有利于系统的进一步改造或升级换代 正。 为了给系统增加新的功能,使产品或项目的功能更加完善和合理,又不至于对系统进行大的改造,这类活动占维护活动的大部分
为了提高产品或项目的可靠性和可维护性,有利于系统的进一步改造或升级换代 其宗旨就是提高客户对软件产品的满意度。
▪ 必要的情况下才进行改动 其宗旨就是提高客户对软件产品的满意度。
其宗旨就是提高客户对软件产品的满意度。 其宗旨就是提高客户对软件产品的满意度。 其宗旨就是提高客户对软件产品的满意度。 产品或项目中存在缺陷或错误,在测试和验收时未发现,到了使用过程中逐步暴露出来,需要改正。 其宗旨就是提高客户对软件产品的满意度。 产品或项目中存在缺陷或错误,在测试和验收时未发现,到了使用过程中逐步暴露出来,需要改正。 为了给系统增加新的功能,使产品或项目的功能更加完善和合理,又不至于对系统进行大的改造,这类活动占维护活动的大部分 其宗旨就是提高客户对软件产品的满意度。 就是软件交付使用之后,在新版本产品升级之前这段时间里,软件厂商向客户提供的服务工作。
• 为了提高产品或项目的可靠性和可维护性, 有利于系统的进一步改造或升级换代
预防性 维护4%
完善性 维护50%
改正性维护 21%
适应性 维护25%
改正性维护 适应性维护 完善性维护 预防性维护
软件维护的种类
❖ 软件维护的原则
▪ 尽可能少地发生改动
▪ 低风险情况下进行改动 就是软件交付使用之后,在新版本产品升级之前这段时间里,软件厂商向客户提供的服务工作。
为了产品适应变化了的硬件、系统软件的运行环境,如系统升级
• 产品或项目中存在缺陷或错误,在测试和验收时 为了给系统增加新的功能,使产品或项目的功能更加完善和合理,又不至于对系统进行大的改造,这类活动占维护活动的大部分 未发现,到了使用过程中逐步暴露出来,需要改 为了提高产品或项目的可靠性和可维护性,有利于系统的进一步改造或升级换代 正。 为了给系统增加新的功能,使产品或项目的功能更加完善和合理,又不至于对系统进行大的改造,这类活动占维护活动的大部分
为了提高产品或项目的可靠性和可维护性,有利于系统的进一步改造或升级换代 其宗旨就是提高客户对软件产品的满意度。
▪ 必要的情况下才进行改动 其宗旨就是提高客户对软件产品的满意度。
其宗旨就是提高客户对软件产品的满意度。 其宗旨就是提高客户对软件产品的满意度。 其宗旨就是提高客户对软件产品的满意度。 产品或项目中存在缺陷或错误,在测试和验收时未发现,到了使用过程中逐步暴露出来,需要改正。 其宗旨就是提高客户对软件产品的满意度。 产品或项目中存在缺陷或错误,在测试和验收时未发现,到了使用过程中逐步暴露出来,需要改正。 为了给系统增加新的功能,使产品或项目的功能更加完善和合理,又不至于对系统进行大的改造,这类活动占维护活动的大部分 其宗旨就是提高客户对软件产品的满意度。 就是软件交付使用之后,在新版本产品升级之前这段时间里,软件厂商向客户提供的服务工作。
《软件维护》PPT课件
Development Time VS. Maintenance Time
●Typical development project takes between 1 and 2 years. Requires an additional 5 to 6 years of maintenance time !
(2)维护小组: 可以由原开发小组承担,也可以指定专门的维护 小组进展。其职责是:进展具体的维护工作。
2.维护时期的配置管理 ●软件配置:一个软件在生存周期内,它的各种形 式、各种版本的文档与程序的总称。 ●对软件配置进展科学的管理,是保证软件质量的 重要手段。 ●常用的配置管理工具有: (1)配置管理数据库 (2)版本控制库
11.3 软件维护的实施 1.软件维护的工作流程
纠错工程表
维护 申请
不严重
纠错性
区分 类型
严重性 评价 严
重
适应性
错误 分析
完善性
优先度 高 评价低 Nhomakorabea问题 分析
开发工程表
维护 过程
已修改 的配置
配置 复审
图11.3 维护的步
已修改 的软件
批准交付 的配置
2. 维护申请单和修改报告单 (1)维护申请单:又称软件问题报告单,由申请 维护的用户填写。 ●纠错性维护的申请单应说明导致错误发生的环 境,包括输入数据、输出数据和其他有关材料。 ●适应性或完善性维护的申请,只需提出一个简 要的需求说明。 (2)软件修改报告单:用于记录在维护时期对软 件所作的每一次修改,包括问题来源、错误类型、 修改内容以及批准修改的负责人等。修改报告单 由直接进展修改和负责文档管理的人员共同填写。
2.适应性维护(Adaptive Maintenance): 为使软件适应运行环境的改变而进展的维护。 ●运行环境的改变包括: ① 硬件和支撑软件(如操作系统改版、增加数 据库等〕的变化。 ② 将软件移植到新的机种上运行。 ③ 软件使用对象的变更,等等。 ●适应性维护约占整个维护工作量的25% 。
软件工程 软件维护(共10张PPT)
预防性维护(Preventive Maintenance)
为了进一步改善软件的可靠性和易维护性,或者为 将来的维护奠定更好的基础而对软件进行修改。
第3页,共10页。
四类软件维护的比例
预防性
涉及到软件开发的所有阶段。
维护4%
可维护性(可测试性、可理解性、可修改性)
维护费用高达开发费用的55% — 70%,而
完善性维护(Perfective Maintenance) 人
50%
维护工作令人生畏,事倍功半。
维护 25%
适应性 维护21%
按照不同的维护目的,维护工作可分成4类。
P—生产性活动
K—经验常数
纠错性维护 适应性维护 完善性维护 预防性维护
第4页,共10页。
二、维护的步骤
用户ห้องสมุดไป่ตู้
维护人员
修改过
的软件
确定更
N Y
第7页,共10页。
N Y
9.2 软件维护的特性
一、结构化维护与非结构化维护 结构化维护 — 指软件开发过程是按照软件工
程方法,软件的维护过程,有一整套完整的方案、 技术、审定过程。
非结构化维护 — 缺乏必要的文档说明,难于 确定数据结构、系统接口等特性。维护工作令人生畏,事
倍功半。
第8页,共10页。
纠错性维护(Corrective Maintenance)
对在测试阶段未能发现的,在软件投入使用后才逐 渐暴露出来的错误的测试、诊断、定位、纠错以及 验证、修改的回归测试过程。
第2页,共10页。
软件维护的类型 适应性维护(Adaptive Maintenance)
要使运行的软件能适应运行环境的变动而修改软件 的过程。
为了进一步改善软件的可靠性和易维护性,或者为 将来的维护奠定更好的基础而对软件进行修改。
第3页,共10页。
四类软件维护的比例
预防性
涉及到软件开发的所有阶段。
维护4%
可维护性(可测试性、可理解性、可修改性)
维护费用高达开发费用的55% — 70%,而
完善性维护(Perfective Maintenance) 人
50%
维护工作令人生畏,事倍功半。
维护 25%
适应性 维护21%
按照不同的维护目的,维护工作可分成4类。
P—生产性活动
K—经验常数
纠错性维护 适应性维护 完善性维护 预防性维护
第4页,共10页。
二、维护的步骤
用户ห้องสมุดไป่ตู้
维护人员
修改过
的软件
确定更
N Y
第7页,共10页。
N Y
9.2 软件维护的特性
一、结构化维护与非结构化维护 结构化维护 — 指软件开发过程是按照软件工
程方法,软件的维护过程,有一整套完整的方案、 技术、审定过程。
非结构化维护 — 缺乏必要的文档说明,难于 确定数据结构、系统接口等特性。维护工作令人生畏,事
倍功半。
第8页,共10页。
纠错性维护(Corrective Maintenance)
对在测试阶段未能发现的,在软件投入使用后才逐 渐暴露出来的错误的测试、诊断、定位、纠错以及 验证、修改的回归测试过程。
第2页,共10页。
软件维护的类型 适应性维护(Adaptive Maintenance)
要使运行的软件能适应运行环境的变动而修改软件 的过程。
《软件维护》幻灯片PPT
✓面向缺陷维护是较小的维护
✓面向功能维护是较大的维护
40
第1种方法:C/S法
以客户机/效劳器两层构造来划分软件维护。
➢ 对这种构造的应用软件维护的方法是,将客户机和 效劳器上的两局部软件分开维护。
➢ 客户机上的软件修改后,制作成自动安装的光盘, 传递给用户自己安装,替换原来的软件。
➢ 效劳器上的软件由维护人员直接在效劳器上修改、 测试、安装、运行。
➢ 逆向工程与再生工程是目前预防性维护采用 的主要技术。
37
2、什么是逆向工程
所谓软件的逆向工程就是分析已有的程序, 寻求比源代码更高级的抽象表现形式。逆向 工程是对原有设计恢复的过程,使用逆向工 程工具可以从已存在的程序中抽取数据构造、 体系构造及各种有用的程序设计信息。
38
3、什么是再工程
再工程是在获得程序设计信息的同时,利用这些 信息修改或重构软件系统的工作。根据用户的需 求,软件人员利用再工程重新实现已有程序,同 时增加新的功能或改进性能。
系统开发日志、 错误记载、 系统维护日志、 测试文档
35
逆向工程与再工程
36
1、什么是预防性维护
➢ 预防性维护工作主要针对一些多年前开发出 来的“较老〞的软件,这些软件的功能仍然 能够满足人们的某些需求,但是,由于这些 软件所采用的体系构造或数据构造等方面较 差,用户在使用时存在一定困难,因此,需 要对软件进展全面修改,以适应用户需求。
31
提高软件可维护性的方法:
可从以下几方面着手: ⑴建立明确的软件质量目标; ⑵选择可维护的程序设计语言; ⑶采用构造化技术提高软件质量;
32
⑴建立明确的软件质量目标
假设要使程序满足可维护性的七个特性的全部要求是 不现实的,为保证可维护性应在一定程度上满足可维 护性的各个特性,各个特性的重要性也应随着程序用 途的不同或计算机环境的不同而改变。
✓面向功能维护是较大的维护
40
第1种方法:C/S法
以客户机/效劳器两层构造来划分软件维护。
➢ 对这种构造的应用软件维护的方法是,将客户机和 效劳器上的两局部软件分开维护。
➢ 客户机上的软件修改后,制作成自动安装的光盘, 传递给用户自己安装,替换原来的软件。
➢ 效劳器上的软件由维护人员直接在效劳器上修改、 测试、安装、运行。
➢ 逆向工程与再生工程是目前预防性维护采用 的主要技术。
37
2、什么是逆向工程
所谓软件的逆向工程就是分析已有的程序, 寻求比源代码更高级的抽象表现形式。逆向 工程是对原有设计恢复的过程,使用逆向工 程工具可以从已存在的程序中抽取数据构造、 体系构造及各种有用的程序设计信息。
38
3、什么是再工程
再工程是在获得程序设计信息的同时,利用这些 信息修改或重构软件系统的工作。根据用户的需 求,软件人员利用再工程重新实现已有程序,同 时增加新的功能或改进性能。
系统开发日志、 错误记载、 系统维护日志、 测试文档
35
逆向工程与再工程
36
1、什么是预防性维护
➢ 预防性维护工作主要针对一些多年前开发出 来的“较老〞的软件,这些软件的功能仍然 能够满足人们的某些需求,但是,由于这些 软件所采用的体系构造或数据构造等方面较 差,用户在使用时存在一定困难,因此,需 要对软件进展全面修改,以适应用户需求。
31
提高软件可维护性的方法:
可从以下几方面着手: ⑴建立明确的软件质量目标; ⑵选择可维护的程序设计语言; ⑶采用构造化技术提高软件质量;
32
⑴建立明确的软件质量目标
假设要使程序满足可维护性的七个特性的全部要求是 不现实的,为保证可维护性应在一定程度上满足可维 护性的各个特性,各个特性的重要性也应随着程序用 途的不同或计算机环境的不同而改变。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
• Perfective maintenance extends the software beyond its original functional requirements. • Preventive maintenance,often called software reengineering,makes changes to computer programs so that they can be more easily corrected,adapted,and enhanced.
SOFTWARE ENGINEERING
软件维护
(Software maintenance)
SOFTWARE ENGINEERING
软件维护分类
• Corrective maintenance changes the software to correct defects.
• Adaptive maintenance results in modification to the software to accommodate change to its environment.
SOFTWARE ENGINEERING
影响软件维护的因素
影响软件维护的因素包括:人员因素,技术因 素和管理因素,程序自身的因素,具体如下: • 系统的规模。系统规模越大,维护越困难。 • 系统的年龄。系统运行时间越长,在维护中 结构的多次修改会造成维护的困难。 • 系统的结构。不合理的程序结构会带来维护 困难。 • 使用软件工程方法开发的软件,虽然不能保 证维护没有问题,但可以减少维护的工作量, 并提高质量。
• 统计资料表明:大部分的维护工作是由用户 的需求改变而引起的,而不是由可靠性问题 引起的。
SOFTWARE ENGINEERING
软件维护
(Software maintenance)
• 软件维护是软件 生命周期中历时 最长,人力和资 源耗费最多的一 个阶段,也是研 究最少的一个阶 段。
í ¼ È þ ¿ ª · ¢ í ¼ È þ Î ¬ » ¤
软件维护
(Software maintenance)
福州大学· 软件学院· 计算机教研室
王灿辉
SOFTWARE ENGINEERING
软件维护
(Software maintenance)
• 软件维护是指软件系统交付使用以后对它所 做的改变,也是软件生命周期中最后一个阶 段(不属于开发阶段)。 • The maintenance phase focuses on change that is associated with error correction, adaptations required as the software’s environment evolves,and changes due to enhancements brought by changing customer requirements.
SOFTWARE ENGINEERING
软件维护中的问题(2)
• 绝大多数软件在设计时不考虑以后可能的改变。除 非采用功能独立的模块化设计方法,否则软件修改 将是困难的,而且还容易引入新的错误。 • 追踪软件的建立过程非常困难。 • 维护被看作是毫无吸引力的工作,高水平的程序员 自然不愿主动去做,而公司也舍不得让高水平的程 序员去做。带着低沉情绪的低水平的程序员只会把 维护工作搞得一塌糊涂。 • 维护将会产生不良的副作用,不论是修改代码、数 据或文档,都有可能产生新的错误。
SOFTWARE ENGINEERING
软件维护费用
• 软件维护费用不断上升,从上世纪六十年代 的40%左右到目前超过60%。 • 维护一行源代码的代价大概是开发的40倍! • 维护工作量模型: M=P+K.e(c-d) ,其中,
M:用于维护工作的总工作量;P:生产性的工作 量(维护时对软件分析、评价、设计、修改和编码 所需要的工作量);K:经验常数;c:软件复杂程 度的度量(如未采用结构化设计和缺少文档所引起 的复杂性);d:对该软件熟悉程度的度量。
SOFTWARE ENGINEERING
软件维护
(Software maintenance)
• The maintenance phase reapplies the steps of the definition and development phases,but does so in the context of existing software.
SOFTWARE ENGINEERING
软件维护分类
Í ê Ê £ Ð ä Æ
É Æ ¦ Ó ý Õ ü Ë
Ð Ô Ô Ð Ô Ð ¬ Î
Î » ¬ ¤ ¬ » Î ¤ ¬ » Î ¤ ¤ »
SOFTWARE ENGINEERING
软件维护中的问题(1)
• 读懂他人编写的程序通常相当困难,特别是一些非 结构化程序。如果只有程序代码而没有文档说明问 题将会十分严重。 • 软件人员经常流动,所以当要求对软件进行维护时, 不可能依靠原开发人员提供对软件的解释(即使可 能有时也因时间太久而导致原开发人员无法提供帮 助)。 • 没有文档、文档严重不足,文档难于理解,或文档 与程序不一致。 • 通过多种版本或发行,要追踪软件的演化变得很困 难,甚至不可能。
SOFTWARE ENGINEERING
软件的可维护性
• 软件的可维护性可以定义为:软件能够 被理解、改正、适应和完善以适应新的 环境的难易程度。 • 如果软件是可测试的,可理解的,可修 改的,可移植的,可靠的,有效的和可 用的,则说该软件是可维护的。
SOFTWARE ENGINEERING
软件维护费用
• 软件维护是既破财又费神的工作。看得见的 代价是那些为了维护而投入的人力与财力。 而看不见的维护代价则更加高昂,我们称之 为“机会成本”,即为了得到某种东西所必 须放弃的东西。 • 把很多程序员和其它资源用于维护工作,必 然会耽误新产品的开发甚至ቤተ መጻሕፍቲ ባይዱ丧失机遇,这 种代价是无法估量的。