第11章 软件维护要点

合集下载

软件工程综合练习题

软件工程综合练习题

《软件工程》课程练习题第一章软件工程概述一、选择题1、瀑布模型本质上是一种()。

A、线性迭代模型B、顺序迭代模型C、线性顺序模型D、及早见产品模型2、计算机辅助软件工程,简称()。

A、SAB、SDC、SCD、CASE3、以下判断正确的是()。

A、所谓软件开发就是编写程序。

B、利用软件工程的思想,已成功的解决了软件危机。

C、完成软件测试工作以后,为了缩短程序的长度应删除程序中的注释。

D、一般来说,程序中存在错误的概率与在该段程序中已发现的错误数成正比。

4、_____是以提高软件质量为目的的技术活动。

A.技术创新B.测试C.技术创造D.技术评审5、瀑布模型的存在问题是()。

A.用户容易参与开发B.缺乏灵活性C.用户与开发者易沟通D.适用可变需求6、软件生命周期中所花费用最多的阶段是()。

A.详细设计B.软件编码C.软件测试D.软件维护7、计算机系统就是()A.主机,显示器,硬盘,软驱,打印机等。

B.CPU,存储器,控制器,I/O接口及设备。

C.计算机硬件系统和软件系统。

D.计算机及其应用系统。

8、产生软件危机的原因主要与两个方面的问题有关:A.软件在计算机中很难识别,存在磁盘中也看不到。

B.软件设计对人的智商要求很高,也要求很高的资金投入。

C.软件产品本身的特点与其它工业产品不一样,而且在软件的开发和维护过程中用的方法不正确。

D.软件很难理解,硬件也很复杂。

9、软件开发瀑布模型中的软件定义时期各个阶段依次是()A.可行性研究,问题定义,需求分析。

B.问题定义,可行性研究,需求分析。

C.可行性研究,需求分析,问题定义。

D.以上顺序都不对。

10、下列选项中()是软件开发中存在不正确的观念、方法。

A.重编程、轻需求B.重开发,轻维护C.重技术,轻管理D.以上三条都是二、填空题1、软件工程的三个基本要素包括()、()和()。

2、一般软件应该有三部分组成:()、()和()。

3、按软件的功能可将软件分成()、()和()等三类。

软件维护整理ppt课件

软件维护整理ppt课件

结构化维护
• 在结构化维护的过程中,所开发的软件具有各 个阶段的文档,它对于理解和掌握软件的功能、 性能、体系结构、数据结构、系统接口和设计 约束等有很大的作用。维护时,开发人员从分 析需求规格说明开始,明白软件功能和性能上 的改变,对设计说明文档进行修改和复查,再 根据设计修改进行程序变动,并用测试文档中 的测试用例进行回归测试,最后将修改后的软 件再次交付使用。这种维护有利于减少工作量 和降低成本,大大提高软件的维护效率。
• 许多大型软件公司为维护已有软件耗费大量人 力、财力。因此,必须建立一套评估、控制和 实施软件维护的机制,这就是本章重点讨论的 内容。
内容提要
▪ 软件维护的定义 ▪ 软件维护的类型 ▪ 结构化维护VS非结构化维护 ▪ 影响软件维护工作量的因素 ▪ 软件维护的过程 ▪ 可维护性 ▪ 软件维护的管理
结构化维护 非结构化维护
文档 程序
结构化维护VS非结构化维护
结构化维护
维护要求 y 文件有吗 n
非结构化维护
分析设计
苦读代码
制定计划 修改计划
编码
复审通过 y
n
n n
交付使用
找到问题 y
编码
复审通过 y
维护要求
软件
配置
代码
评价设计
评价代码



构 化
计划途径

构 化
维 护
修改设计
维 护
重编程序
重编程序
远程维护 √ 现场维护
的测评,如管理人员只能对管理人员
软件:√ 纠错维护
进行测评,教师只能测评教师。
适应维护
维护类型
完善维护
硬件: 系统设备
外部设备

《软件维护整》课件

《软件维护整》课件

软件维护的重要性
确保软件质量
通过软件维护,可以发现和修复 软件中存在的问题,提高软件的 质量和可靠性。
延长软件寿命
通过及时的软件维护,可以延长 软件的寿命,使其更好地适应不 断变化的应用需求。
提高用户满意度
通过软件维护,可以改进和完善 软件的功能和性能,提高用户的 使用体验和满意度。
软件维护的分类
代码质量参差不齐
由于历史原因和技术限制,一些软件系统的代码质量可能较差,这增 加了维护的难度和风险。
文档不完整或缺失
在软件开发过程中,如果没有及时编写或更新文档,可能会给软件维 护带来困难。
依赖性高
软件系统可能依赖于许多外部因素,如硬件、其他软件或网络资源。 这些因素的变化可能会影响软件系统的正常运行。
逆向工程技术
逆向工程
通过反编译、反汇编等技术手段,将软件程序还 原成可读性更高的源代码或设计文档。
逆向工程工具
如IDA Pro、Ghidra、Hopper等,支持多种编程 语言和平台。
逆向工程流程
包括反编译、反汇编、代码分析等步骤,帮助维 护人员理解软件结构和实现逻辑。
代码审查技术
代码审查
通过多人对代码进行审核和检查,确保代码 质量符合要求。
缺陷修复
根据测试结果和用户反馈,修复软件中存在 的缺陷和错误。
功能改进
根据用户需求和软件维护计划,对软件功能 进行改进和优化。
代码重构
对软件代码进行重构,优化软件结构和代码 质量,提高软件可维护性和可扩展性。
维护测试与验收
功能测试
对修复和改进后的软件进行功能测试,确保软件 功能正常。
安全测试
对修复和改进后的软件进行安全测试,确保软件 安全性得到保障。

软件维护(2)

软件维护(2)

用于维护工作的劳动:
生产性活动(分析评价、修改设计、编写程序代码等)
非生产性活动(理解程序、解释数据结构、接口特点、
2024年7月6日
性能限度等)
4
如何提高软件的可维护性
维护工作量的一个模型:
M =P +K ×exp ( c -d ) 其中
M––维护用的总工作量 P–––生产性工作量 K–––经验常数 c–––复杂程度
DO WHILE NOT END-OF-STREAM
IF CODE=S
THEN NUMBER=NUMBER+1
TOTALTIME=TOTALTIME-STARTIME
ELSE TOTALTIME=TOTALTIME+ENDTIME
ENDIF
PRINT NUMBER OF SESSION=NUMBER
(2) 存储在计算机中的文档容易修改和维护,因此保持文档 和程序代码完全一致的可能性更大;
(3) 可以自动确定文档正文的格式,并且能用整齐清晰的格 式印出来;
(4) 可以从不同角度自动地分析文档正文,产生不同类型的 索引,并且检查拼写和打字的错误;
(5) 可以由几个同时书写一份文档; (6) 简化了文档的管理。
一直是软件生存周期中被忽视的阶段
关于维护的文献很少 几乎没有提出什么有效的技术途径和“方法”
软件可维护性––––维护人员理解、改正、 改动和改进某软件的难易程度
2024年7月6日
2
如何提高软件的可维护 性
一、维护的特点 文档齐 全
从三个不同的方面考虑:
1. 为了完成维护任务需要 进行的活动,以及软
2024年7月6日
27
文档
一个功能齐全的正文编辑系统是最重要的文档工具 UNIX操作系统中的nroff/troff系统是典型的格式程序 常见的文档管理工具:

第11章 软件维护

第11章 软件维护

第2种方法:站在三层结构的角度上,来划分软件 维护的方法。 B/C/S的三层结构是一种最有发展潜力的应用 软件结构。客户机上的软件维护不需到用户现场去, 只需在系统后台服务器上借助网络的运行,使得软件 的安装与升级变成了一个完全透明的过程,再不用担 心光盘的安装或软盘的损伤。 这就是三层结构的优点之一。也是网络革命带来 的软件维护革命,使用户能享受简单、方便、全面、 及时的维护与升级服务。 常见的杀病毒工具升级办法就是这样一种维护。
2.维护管理文档 软件维护管理文档有: · 用户意见反馈表。 · 用户意见分类整理表。 · 维护申请单。 · 维护文档评审报告。 · 产品缺陷统计表。 · 功能扩充统计表。 · 未答复问题汇总表。 · 未验证问题汇总表。 · 已修改问题汇总表。 · 已验证问题汇总表。 · 维护费用统计表。
11.4 本章小结 要将软件维护变为一种美差事,就必须做到: · 开发文档、管理文档、维护文档必须齐全,使 所有的维护工作都变为集成化维护工作,即提高系统 的可维护性。 · 在签订合同时必须将软件的维护工作范围、内 容、期限和费用增加进去,并明确甲乙双方在维护工 作中的责任。 · 维护人员在缺陷维护(即程序级维护)和功能维护 (即设计级维护)上虽然不能随意地创新,但是可以分 析维护前系统的缺陷或毛病,收集并整理用户的意见 与建议,从而去策划新版本的蓝图,在新版本的升级 上做到有所创新。
首先,定义指出,软件维护是针对一种软件产品 而言的,维护活动发生在该产品的生存周期之内。 其次,定义将软件维护定义为一种面向客户提供 的服务。在激烈的软件市场竞争中,同类软件产品的 价格、功能、性能、接口都不相上下,那么用户如何 选择产品呢?软件厂商要推销自己的产品,推销的焦 点就是服务。谁的售后服务及时、到位,谁的产品就 可能占领市场。

软件工程基础之 软件维护

软件工程基础之 软件维护

可维护性改进
代码重构
对代码进行重新组织和优化,使其更易于阅读、理解和维护 。
文档更新
更新软件文档,以反映软件的新功能、性能优化和修复的缺 陷,方便后续维护和开发。
05
适应性维护
环境变化处理
操作系统升级
当操作系统升级时,软件也需要进行相应的调整以适应新的操作系统。这可能涉及到修改软件与操作系统的接口、更 新系统调用等。
软件版本控制
为了确保软件的版本兼容性和升级的顺利进行,需要进行软件版本的控制和管理 。这可能涉及到版本号的分配、版本升级流程的制定和实施等。
兼容性测试
在软件升级后,需要进行兼容性测试以确保新版本软件与旧版本软件的兼容性。 这可能涉及到测试用例的设计、测试环境的搭建和测试执行等。
THANKS
感谢观看
04
完善性维护
功能增强
增加新功能
根据用户需求或市场需求,对软 件进行功能扩展或升级,增加新 的特性和功能。
优化现有功能
对现有功能进行改进和调整,提 高其性能、稳定性和用户体验。
性能优化
提升运行速度
通过优化算法、减少冗余计算或使用 更高效的存储结构等方式,提高软件 的运行速度。
降低资源消耗
优化软件对内存、CPU等资源的利用 ,降低软件运行成本和维护成本。
文档化与标准化
文档是软件维护的重要依据,包 括系统架构、系统功能、接口协
议等方面的文档。
标准化则是指遵循统一的编码规 范、命名规范、接口规范等,提
高代码的可读性和可维护性。
文档化和标准化有助于提高软件 的可维护性和可扩展性,降低维
护成本。
03
改正性维护
错误识别与定位
错误报告
01

软件系统日常维护内容

软件系统日常维护内容

软件系统日常维护内容
软件系统的日常维护内容包括以下几个方面:
1. 故障排除和修复:处理系统中的错误、故障和异常,并追踪和修复问题。

2. 更新和升级:根据需求和技术发展,及时更新和升级系统,包括安全补丁、新功能、性能优化等。

3. 数据备份和恢复:定期备份系统数据,并确保数据能够按照需要恢复。

4. 安全管理:定期进行安全检查和漏洞扫描,确保系统的安全性,并采取相应的安全措施,如加密、防火墙等。

5. 日志管理:监控系统日志,及时发现问题和异常情况,进行日志分析,并采取相应措施。

6. 性能监控与优化:定期监控系统的性能指标,如响应时间、吞吐量等,并对性能进行优化,提高系统的稳定性和运行效率。

7. 用户支持和培训:提供系统用户的支持,解答用户问题,培训用户使用系统。

8. 硬件设备管理:负责维护和管理系统所需的硬件设备,包括服务器、网络设备等,确保其正常运行。

9. 文件管理和维护:管理系统中的文件和数据,包括文件备份、归档和清理等。

10. 系统文档和知识库维护:及时更新和维护系统文档和知识库,包括用户手册、技术文档等。

以上是软件系统的一般日常维护内容,具体维护内容还会根据具体系统需求、技术和业务特点等而有所不同。

软件工程软件维护课件

软件工程软件维护课件

二、软件维护分类
按照维护的起因分类四类: 纠错性维护 适应性维护 完善性维护 预防性维护
2024/7/26
1. 纠错性维护(Corrective Maintenance)
——为改正软件系统中潜藏的错误而进行的活动。
纠错性维护是指在系统开发阶段已发生而系统测试阶段尚未发 现的错误。这方面的维护工作量占整个维护工作量的17%21%。所发现的错误有的不太重要,不影响系统的正常运行 ,其维护工作可随时进行;而有的错误非常重要,甚至影响整 个系统的正常运行,其维护工作必须制定计划,进行修改,并 且要进行复查和控制。
2024/7/26
(2)数据副作用 数据副作用是由于修改数据结构带来的副作用。容
易引起数据副作用的修改包括: ①局部和全局常量的再定义; ②记录或文件格式的再定义; ③增减数据或是由于修改数据结构的定义导致 数据结构长度的改变; ④修改全局数据; ⑤重新初始化控制标志和指针; ⑥重新排列I/O表或子程序参数表。。
2.熟悉软件系统
熟悉所维护软件的功能是非常重要的,也是进行软件维护工作的第 一步。首先阅读现有的文档,最好能对文档中提到的内容亲自进 行测试。掌握现实中软件的使用方法,确保你要知道最常用的使 用情形。有时候用户会要求提供一些已经存在的功能特性,只是 因为他们不知道软件中已经具有了这些功能。
最后只能研究代码了,试着去理解函数、模块和组件在软件中所扮 演的角色。使用调试器单步执行程序中不同的分支,查看当代码 的不同部分执行时将会发生什么。要把熟悉软件的体系结构当做 一个持续进行的过程,而不是一次就能完成的事情。当你修改bug 或添加新的特性时,可能对系统有更好的理解。以上过程一定要 记录结果,这样对维护工作有巨大的帮助。
y 队列中还有维护请求吗?

软件产品售后服务及维护流程指南精选全文

软件产品售后服务及维护流程指南精选全文

可编辑修改精选全文完整版软件产品售后服务及维护流程指南第一章:售后服务概述 (3)1.1 售后服务的重要性 (3)1.2 售后服务范围与目标 (3)第二章:客户接待与问题诊断 (4)2.1 客户接待流程 (4)2.1.1 接听客户电话或接待客户来访 (4)2.1.2 确认客户信息 (4)2.1.3 了解客户问题 (4)2.1.4 记录客户问题 (4)2.1.5 提供初步解决方案 (4)2.1.6 安排技术支持人员 (4)2.2 问题诊断方法 (5)2.2.1 远程诊断 (5)2.2.2 现场诊断 (5)2.2.3 问题复现 (5)2.2.4 分析日志文件 (5)2.2.5 查询技术资料 (5)2.3 问题分类与优先级 (5)2.3.1 问题分类 (5)2.3.2 问题优先级 (5)第三章:售后服务方案制定 (5)3.1 制定售后服务方案的原则 (6)3.2 售后服务方案的内容 (6)3.3 售后服务方案的执行 (6)第四章:维修与技术支持 (7)4.1 维修流程 (7)4.1.1 故障报告 (7)4.1.2 故障分类 (7)4.1.3 故障处理 (7)4.2 技术支持方式 (7)4.2.1 电话支持 (7)4.2.2 邮件支持 (8)4.2.3 在线支持 (8)4.3 技术支持工具与资源 (8)4.3.1 故障诊断工具 (8)4.3.2 技术支持资源 (8)第五章:备件管理 (8)5.1 备件分类 (8)5.2.1 备件采购 (9)5.2.2 备件存储 (9)5.3 备件使用与回收 (9)5.3.1 备件使用 (9)5.3.2 备件回收 (9)第六章:售后服务进度跟踪 (10)6.1 进度跟踪方式 (10)6.1.1 系统跟踪 (10)6.1.2 人工跟踪 (10)6.2 进度报告与沟通 (10)6.2.1 定期报告 (10)6.2.2 临时报告 (10)6.2.3 沟通渠道 (10)6.3 进度调整与客户反馈 (11)6.3.1 进度调整 (11)6.3.2 客户反馈 (11)第七章:售后服务质量评估 (11)7.1 售后服务质量指标 (11)7.2 质量评估方法 (12)7.3 质量改进措施 (12)第八章:客户关怀与满意度提升 (12)8.1 客户关怀策略 (12)8.1.1 制定关怀计划 (12)8.1.2 多元化关怀方式 (13)8.1.3 建立客户关怀团队 (13)8.2 客户满意度调查 (13)8.2.1 调查方法 (13)8.2.2 调查频率 (13)8.2.3 调查内容 (13)8.3 满意度改进措施 (14)8.3.1 分析调查结果 (14)8.3.2 制定改进计划 (14)8.3.3 落实改进措施 (14)第九章:售后服务团队建设 (14)9.1 团队组织结构 (14)9.2 员工培训与发展 (14)9.3 团队激励机制 (15)第十章:售后服务与业务协同 (15)10.1 售后服务与销售协同 (15)10.1.1 目标 (15)10.1.2 工作流程 (15)10.1.3 注意事项 (16)10.2 售后服务与研发协同 (16)10.2.2 工作流程 (16)10.2.3 注意事项 (16)10.3 售后服务与市场协同 (16)10.3.1 目标 (16)10.3.2 工作流程 (16)10.3.3 注意事项 (17)第一章:售后服务概述1.1 售后服务的重要性在当今竞争激烈的市场环境中,软件产品的售后服务已经成为企业竞争的关键因素之一。

软件维护知识点总结

软件维护知识点总结

软件维护知识点总结软件维护的类型软件维护可以分为四种类型:纠错维护、适应性维护、完善性维护和预防性维护。

1.纠错维护:主要是为了修复软件系统中发现的错误,包括修复软件的缺陷、错误和故障,以确保软件系统能够正常运行。

2.适应性维护:主要是为了适应环境变化和新的需求,包括对软件的功能、性能、安全性等方面进行调整,以满足用户不断变化的需求。

3.完善性维护:主要是为了改进软件系统的质量和性能,包括对软件架构、设计和模块进行重构,优化软件的性能和可维护性。

4.预防性维护:主要是为了预防未来可能出现的问题,包括对软件进行监控、分析和优化,以提前发现和解决潜在的问题。

软件维护的过程软件维护的过程可以分为四个阶段:需求分析、变更实现、验证测试和发布部署。

1.需求分析:在进行软件维护前,需要对用户的需求和问题进行分析和理解,包括对软件系统的功能、性能、安全性等方面进行评估,以确定需要进行的维护工作。

2.变更实现:根据需求分析的结果,进行软件系统的修改和优化,包括对软件代码、数据库、界面等方面进行变更,以满足用户的需求。

3.验证测试:在完成变更实现后,需要对软件系统进行验证测试,包括单元测试、集成测试、系统测试等,以确保软件系统的质量和稳定性。

4.发布部署:在验证测试通过后,将修改后的软件系统发布和部署到生产环境中,让用户进行试用和反馈,以确保软件系统能够正常运行并满足用户需求。

软件维护的技术软件维护涉及到多种技术和工具,主要包括:版本管理、问题跟踪、自动化测试、持续集成、容器化和云计算等。

1.版本管理:通过版本管理工具(如Git、SVN等),可以管理软件系统的源代码、配置文件和文档等,帮助团队成员进行协同开发和版本控制。

2.问题跟踪:通过问题跟踪工具(如JIRA、Bugzilla等),可以跟踪和管理软件系统中发现的问题和需求,帮助团队成员进行问题定位和解决。

3.自动化测试:通过自动化测试工具(如JUnit、Selenium等),可以自动化执行软件系统的测试用例,帮助团队成员提高测试效率和质量。

软件系统维护及常见问题的检查、处理等相关内容。

软件系统维护及常见问题的检查、处理等相关内容。

软件系统维护及常见问题的检查、处理等相关内容一、引言如今,软件系统在人们的生活和工作中扮演着越来越重要的角色。

然而,随着软件系统的不断更新和使用,系统维护和常见问题的检查与处理也变得至关重要。

本文将就软件系统维护的概念、重要性以及常见问题的检查、处理等相关内容展开全面评估。

二、软件系统维护的概念和重要性1. 软件系统维护的定义软件系统维护是指对已经投入使用的软件系统进行修正性、适应性、完善性和预防性的修改和完善的过程。

它包括对软件系统中发现的问题进行修复,对新的需求进行适应性修改,以及对系统进行持续的改进等内容。

2. 软件系统维护的重要性在软件系统的整个生命周期中,维护阶段占据了绝大部分的时间和成本。

良好的软件系统维护能够确保系统的稳定性和可靠性,使系统能够持续地满足用户的需求。

系统维护还能够延长软件系统的使用寿命,为企业节约成本,提高系统的可用性和性能。

三、常见问题的检查、处理等相关内容1. 软件系统常见问题在软件系统的使用过程中,常见的问题主要包括性能问题、安全问题、兼容性问题、以及用户体验问题等。

这些问题可能来自于系统本身的设计缺陷,也可能源自外部环境的变化。

对这些常见问题进行及时的检查和处理显得尤为重要。

2. 软件系统问题的检查在进行软件系统问题的检查时,需要从多个维度进行全面的评估。

首先要对系统的性能进行检查,包括系统的响应速度、并发处理能力、以及资源利用率等。

其次要对系统的安全性进行检查,包括数据的加密与解密、用户权限的控制、以及漏洞的修复等。

另外,还要检查系统的兼容性和用户体验,确保系统能够适应不同的环境和满足用户的需求。

3. 软件系统问题的处理一旦发现软件系统存在问题,就需要对问题进行及时的处理和修复。

在处理问题时,通常需要先对问题进行定位和分析,找出问题的根源。

根据问题的性质和严重程度,制定合适的解决方案,并进行相应的实施。

还需要对问题进行跟踪和监控,确保问题得到彻底的解决。

四、个人观点和理解软件系统维护是软件工程中不可或缺的一环,它对于保障软件系统的稳定运行和持续改进具有重要意义。

软件维护与更新

软件维护与更新

软件维护与更新随着科技的不断发展,计算机和互联网已经成为现代人生活中不可或缺的重要组成部分。

各种软件应用不断涌现,为人们的工作和生活提供了极大的便利。

但是,随着软件的使用时间越来越长,无论是桌面应用程序还是移动应用程序,都会出现各种各样的问题。

这时,软件维护和更新就体现出了重要性。

一、软件维护软件维护是指对软件的修改、优化、增强和保养等活动,以保持软件的稳定性和完整性,使其能够为用户提供更高质量的服务。

软件维护的过程包括问题识别、问题分析、解决方案制定、测试和验证以及实施修改等环节。

在软件维护中,问题识别是最关键的环节。

只有清楚地了解出现问题的原因和范围,才能制定出有效的解决方案。

例如,某个移动应用在某些设备上运行异常,就需要对这些设备的硬件配置和操作系统版本进行分析,找出导致应用程序崩溃的原因。

对于一些大型软件项目,维护人员需要制定详细的维护计划和流程,对每个组件和模块进行分类管理,确保每个部分的正常运行。

此外,维护人员还需要定期备份数据,以便在发生突发故障时,能够及时恢复数据。

维护人员还可以通过软件性能监控和日志分析等手段,对软件系统进行动态监测,发现问题,及时进行处理。

二、软件更新软件更新是指在软件已经上线或者客户端已经安装后,更新软件的一种方式。

软件更新可以修复软件中的错误、漏洞和安全问题,增加新的功能,提高软件性能等。

通常,软件更新分为两种方式:自动更新和手动更新。

自动更新是指软件在后台自动检查更新,并提示用户更新。

自动更新可以节省用户的时间和精力,同时也可以保证用户始终使用的是最新版本的软件,因为在新版本中通常修复了一些问题,增加了更多功能,提供更好的性能。

手动更新是指用户需要手动对软件进行更新。

当软件有较大的改动时,需要用户手动更新软件。

虽然手动更新比自动更新麻烦,但是它给用户更多的选择和控制的权力。

在软件更新中,细节非常的重要。

第一步是了解软件的改变,找出软件的重点和重大改变。

在更新之前,最好备份一下软件或数据,避免更新时出现意外。

软件维护方法

软件维护方法
31
在每次软件维护任务完成后进行情 况评审,对以下问题做一总结: (1) 在目前情况下,设计、编码、测 试中的哪一方面可以改进? (2) 哪些维护资源应该有但没有? (3) 工作中主要的或次要的障碍是什 么? (4) 从维护申请的类型来看是否应当 有预防性维护? 情况评审对将来的维护工作如何进 行会产生重要的影响。
7
预防性维护 • 预防性维护是为了提高软件的
可维护性、可靠性等,为以后进 一步改进软件打下良好基础。 • 预防性维护定义为:采用先进的 软件工程方法对需要维护的软 件或软件中的某一部分(重新) 进行设计、编制和测试。
8
• 在整个软件维护阶段所花费的全部 工作量中,完善性维护占了几乎一 半的工作量。
• 静态确认 修改软件,伴随着引起新的错误 的危险。为了能够做出正确的判 断,验证修改后的程序至少需要 两个人参加。要检查:
40
• 计算机确认 在进行了以上确认的基础上,用计算 机对修改程序进行确认测试: (1) 确认测试顺序:先对修改部分 进行测试,然后隔离修改部分,测 试程序的未修改部分,最后再把它 们集成起来进行测试。这种测试称 为回归测试。 (2) 准备标准的测试用例。 (3) 充分利用软件工具帮助重新验 证过程。
14
• 其它:
– 应用的类型 – 数学模型 – 任务的难度 – 开关与标记、IF嵌套深度、索引或下
标数等
对维护工作量都有影响。 • 许多软件在开发时并未考虑将来的
修改,为软件的维护带来许多问题。
15
软件维护的策略
• 改正性维护 通常要生成100%可靠的软件并不 一定合算,成本太高。但通过使用 新技术,可大大减少进行改正性 维护的需要。
• 这种情况下进行的维护活动叫做完 善性维护。

第11章 软件维护要点

第11章 软件维护要点


11.2 软件维护活动
• 维护档案记录
内容包括程序名称、源程序语句条数、机器代码指令条数、 所用的程序设计语言、程序安装的日期、程序安装后的运 行次数、与程序安装后运行次数有关的处理故障次数、程 序改变的层次及名称、修改程序所增加的源程序语句条数、 修改程序所减少的源程序语句条数、每次修改所付出的 “人时”数、修改程序的日期、软件维护人员的姓名、维 护申请报告的名称、维护类型、维护开始时间和维护结束 时间、花费在维护上的累计“人时”数、维护工作的净收 益等。对每项维护任务都应该收集上述数据。
11.1 软件维护的概念
• 软件维护的策略
根据影响软件维护工作量的各种因素,针对3种典型维 护,James Martin等提出了一些策略,以控制维护成本。
1.改正性维护
应用一些诸如数据库管理系统、软件开发环境、程序自
动生成系统和高级(第四代)语言等新技术可大大提高可 靠性,并减少进行改正性维护的需要。此外,还可考虑利 用应用软件包、防错性程序设计、通过周期性维护审查等 策略。
适应网络环境或已升级改版的操作系统要求。
11.1 软件维护的概念
3.完善性维护
为了满足新的功能与性能要求,需要修改或再开发软件, 以扩充软件功能、增强软件性能、改进加工效率、提高软件 的可维护性。这种情况下进行的维护活动叫做完善性维护 (perfective maintenance)。例如,完善性维护可能是修
11.3 程序修改的步骤及修改的副作用
(3)掌握程序的结构信息,即从程序中细分出若干结构成
分,如程序系统结构、控制结构、数据结构和输入/输
出结构等; (4)了解数据流信息,即所涉及的数据来自何处,在哪里 被使用; (5)了解控制流信息,即执行每条路径的结果; (6)如果设计存在,则可利用它们来帮助画出结构图和高 层流程图; (7)理解程序的操作(使用)要求。

如何做好软件维护

如何做好软件维护

如何做好软件维护xxxxx(XXXXXXXXXXXXXXXXXXXXXXXX)软件维护是软件生存期中时间最长的一个阶段,也是消耗人力最多的一个时期。

阐述了软件维护及其在项目管理中的重要性,并根据作者在软件工程教学和系统开发实践中积累的经验,总结出做好软件维护的有效方法。

这样就大大束络了开发新的软件的能力。

所以,软件工程方法学的一个主要目的就是如何减小花费在软件维护上的工作量。

关键词:软件维护; 项目管理; 软件维护任务单1 软件维护概述软件维护是软件生命周期的最后一个阶段,处于系统投入生产性运行以后的时期。

所谓软件维护,就是在软件已经交付使用之后,为了改正错误或满足新的需求而进行修改软件的过程。

按性质不同,一般将软件维护划分为如下四类:一是纠错性维护:用户在使用软件时仍会发现在前期的测试中没有揭露的软件系统中的潜在错误,诊断和改正这些错误的过程称为纠错性维护;二是适应性维护:由于操作系统或编译系统的升级,为了使软件能适应新的环境而引起的程序修改活动;三是完善性维护:在软件的使用过程中,为了满足用户新的需求而增加或扩充软件功能的活动;四是预防性维护:为了提高软件的可维护性和可靠性,为未来的进一步改进打下基础而修改软件的活动。

软件维护是软件生命周期中耗费最多,延续时间最长的活动。

通常大型软件的维护成本是开发成本的4 倍左右,软件开发组织中60%以上的人力用于软件维护。

要想延长软件生命,充分发挥软件的作用,必须搞好软件维护。

在重视服务质量的今天,任何一家不重视软件维护的公司必定失去客户,最终难逃失去整个市场的厄运。

2 如何做好软件维护2. 1 如何做好软件维护准备工作软件维护所要做的主要准备工作是熟悉所维护的软件功能、用户的业务以及软件架构体系。

熟悉所维护软件功能的主要方法是阅读该软件的设计文档或用户手册。

在软件维护的过程中,如果修改部分涉及到设计文档或用户手册更改的,一定要及时更改,这样就能达到事半功倍。

如何做好软件维护工作

如何做好软件维护工作

如何做“好”软件维护工作摘要:项目管理如何面对维护工作?这是很多国内实施项目面临的难题,PMBOK也未将维护作为一个知识领域来研究,但对实施项目来说,这是一个无法回避并且非常关键的一项任务。

本文并没有全面描述软件维护工作都需要哪些工具、方法和规章制度,但提供了一种工作思路,点明维护工作的意义,对软件维护人员进行工作指导。

一、如何做“好”软件维护工作如何做“好”软件维护工作,很多人的看法是:1、做好日常检察工作;2、做好备份工作。

这也是大多数软件维护人员都在做的事情,也正是这种看法让很多人觉得软件维护工作很简单,很枯燥,很“低能”,有理想有抱负的有志青年是“很不屑”干这个工作的。

首先想说的是:“做工作”和“做好工作”是两种完全不同的工作追求态度,也就必然导致两种完全不同的工作层次,也正是这种不同的态度决定了人生命运的不同!做好日常检查和备份是做维护工作必须完成的任务,但只做这些肯定无法达到“好”这个层次。

这两项任务的目的都是预防软件系统出现故障和问题,早发现早解决。

可以这么说,如果没有问题产生,没有人会意识到有“软件维护工程师”存在。

换个角度来看,对大多数用户来说,软件维护人员存在的价值就是为用户解决问题。

一套稳定的系统是不会频繁出问题的,但出了问题的关键时刻就是维护人员体现价值、大显身手的时刻,问题的解决情况也是决定用户对维护人员评价“优秀”、“一般”和“很差”的主观依据。

如何做好软件问题的解决,我归纳为3关3“度”:“态度”、“速度”和“深度”。

先说第一关:态度。

这是一个现在谈的有点滥的两个字,所有管理学的书籍中几乎都会谈到,但这也说明了这两个字的重要性。

生活其实在重复着许多简单的真理和原则,但可惜的是很多人做不到。

在遇到问题的时候,求助者的心情很多是很急迫、紧切的,如果他在电话或者当面看到你是“沉着而又冷静,甚至慢条斯理”,在他眼里很可能就变成了“麻木不仁”。

因此,在接受求助的时候,无论是电话或者当面,表现出“热情而关切”的态度首先就是给求助者注射了一针稳定剂,让他体会到你对问题的重视,你就通过了第一关。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

11.2 软件维护活动
• 软件维护工作流程
软件维护工作流程如下图所示。
11.2 软件维护活动
在每次软件维护任务完成后,最好进行一次情况评审,对 以下问题做一总结:

在目前情况下,设计、编码、测试中的哪一方面可以改 进? 哪些维护资源应该有,但没有? 工作中主要的或次要的障碍是什么? 从维护申请的类型来看是否应当有预防性维护? 情况评审对将来的维护工作如何进行会产生重要的影响, 并可为软件机构的有效管理提供重要的反馈信息。

11.1 软件维护的概念
• 影响维护工作量的因素
在软件维护中,影响维护工作量的因素主要有以下6种: (1)系统规模。 (2)程序设计语言。 (3)系统年龄大小。 (4)数据库技术的应用水平。
(5)所采用的软件开发技术及软件开发工程化的程度。
(6)其他:如应用的类型、数学模型、任务的难度、IF嵌 套深度、索引或下标数等,对维护工作量都有影响。
11.1 软件维护的概念


各类维护占总维护工作量的比例
在整个软件维护阶段花费的全部工 作量中,预防性维护只占很小的比 例,而完善性维护占了几乎一半的 工作量。
11.1 软件维护的概念

维护工作量在软件生存期中所占比例
软件维护活动花费的工作量占整个生存期工作量的70%以 上(工作量的比例直接反映了成本的比例)

改正性维护


适应性维护
完善性维护 预防性维护
11.1 软件维护的概念
1.改正性维护
改正性维护(corrective maintenance)为了识别和纠正 软件错误、改正软件性能上的缺陷、排除实施中的误使 用,应进行的诊断和改正错误的过程。例如,改正性维护 可以是改正原来程序中开关使用的错误;解决开发时未能
11.2 软件维护活动
维护申请报告是由软件组织外部提交的文档,它是计划维 护工作的基础。软件组织内部应相应地做出软件修改报告 (software change report,SCR),指明: ● 所需修改变动的性质; ● 申请修改的优先级; ● 为满足某个维护申请报告,所需的工作量; ● 预计修改后的状况。 软件修改报告应提交修改负责人,经批准后才能开始进一 步安排维护工作。

11.2 软件维ቤተ መጻሕፍቲ ባይዱ活动
• 维护档案记录
内容包括程序名称、源程序语句条数、机器代码指令条数、 所用的程序设计语言、程序安装的日期、程序安装后的运 行次数、与程序安装后运行次数有关的处理故障次数、程 序改变的层次及名称、修改程序所增加的源程序语句条数、 修改程序所减少的源程序语句条数、每次修改所付出的 “人时”数、修改程序的日期、软件维护人员的姓名、维 护申请报告的名称、维护类型、维护开始时间和维护结束 时间、花费在维护上的累计“人时”数、维护工作的净收 益等。对每项维护任务都应该收集上述数据。
测试各种可能情况带来的问题等。
11.1 软件维护的概念
2.适应性维护
随着信息技术的飞速发展,软件运行的外部环境(新的 硬、软件配置)或数据环境(数据库、数据格式、数据输入 /输出方式、数据存储介质)可能发生变化,为了使软件适 应这种变化,而修改软件的过程叫做适应性维护(adaptive
maintenance)。例如,需要对已运行的软件进行改造,以
适应网络环境或已升级改版的操作系统要求。
11.1 软件维护的概念
3.完善性维护
为了满足新的功能与性能要求,需要修改或再开发软件, 以扩充软件功能、增强软件性能、改进加工效率、提高软件 的可维护性。这种情况下进行的维护活动叫做完善性维护 (perfective maintenance)。例如,完善性维护可能是修
提供给用户。用户通过研究原型,进一步完善他们的功能
要求,可以减少以后完善性维护的需要。
11.2 软件维护活动
• 软件维护申请报告
所有软件维护申请应按规定的方式提出。软件维护组织通常 提供维护申请报告(maintenance request form,MRF), 或称软件问题报告,由申请维护的用户填写。 如果遇到一个错误,用户必须完整地说明产生错误的情况, 包括输入数据、错误清单以及其他有关材料。 如果申请的是适应性维护或完善性维护,用户必须提出一份 修改说明书,列出所有希望的修改。维护申请报告将由维护 管理员和系统监督员来研究处理。
第11章 软件维护
• • • • • 软件维护的概念 软件维护活动 程序修改的步骤及副作用 软件的维护性 提高软件维护性的方法
11.1 软件维护的概念
• 软件维护的定义
软件维护是指在软件运行/维护阶段对软件产品所进行的修 改就是所谓的维护。根据维护工作的性质,软件维护的活动 可以分为以下4种类型。
11.1 软件维护的概念
2.适应性维护
这一类的维护不可避免,但可以采用以下策略加以控制。 (1)在配置管理时,把硬件、操作系统和其他相关环境因 素的可能变化考虑在内,可以减少某些适应性维护的工作 量。
(2)把与硬件、操作系统,以及其他外围设备有关的程序
归到特定的程序模块中。可把因环境变化而必须修改的程序 局部于某些程序模块之中。
改一个计算工资的程序,使其增加新的扣除项目;缩短系统
的应答时间,使其达到特定的要求等。
11.1 软件维护的概念
4.预防性维护
预防性维护(preventive maintenance)是指把今天的 方法学用于昨天的系统以满足明天的需要。也就是说,采 用先进的软件工程方法对需要维护的软件或软件中的某一部 分(重新)进行设计、编码和测试。
11.1 软件维护的概念
• 软件维护的策略
根据影响软件维护工作量的各种因素,针对3种典型维 护,James Martin等提出了一些策略,以控制维护成本。
1.改正性维护
应用一些诸如数据库管理系统、软件开发环境、程序自
动生成系统和高级(第四代)语言等新技术可大大提高可 靠性,并减少进行改正性维护的需要。此外,还可考虑利 用应用软件包、防错性程序设计、通过周期性维护审查等 策略。
11.1 软件维护的概念
2.适应性维护
(3)使用内部程序列表、外部文件,以及处理的例行程序 包,可为维护时修改程序提供方便。 (4)使用面向对象技术,增强软件系统的稳定性,易于修 改和移植。
11.1 软件维护的概念
3.完善性维护
利用前两类维护中列举的方法,也可以减少这一类维 护。特别是数据库管理系统、程序生成器、应用软件包, 可减少系统或程序员的维护工作量。 此外,建立软件系统的原型,把它在实际系统开发之前
相关文档
最新文档