《软件维护》PPT课件

合集下载

软件维护

软件维护
维 护(Maintenance)
—— 亦称 Software Evolution
1.软件维护的概念 2.维护的特点 3.维护的过程 4.可维护性 5.软件再工程过程
2018年7月2日星期一
计算机科学与工程学院
1
6.8.软件系统维护的基本概念
1.软件维护定义:
是指在软件系统已经交付使用之后,软件使用人员为了 适应新的要求、满足新的需要或为了改正软件中存在的错误 而对软件系统进行修改的过程。
2018年7月2日星期一 计算机科学与工程学院
8
维护工作量的经验模型:
M=P+K×exp(c-d) 其中: M是维护用的总工作量; P是生产性工作量; K是经验常数; c是复杂程度(非结构化设计和缺少文档都会增加软件 的复杂程度); d是维护人员对软件的熟悉程度。
上面的模型表明,如果软件的开发途径不好(即,没 有使用软件工程方法学),而且原来的开发人员不能参加 维护工作,那么维护工作量(和费用)将指数地增加。
2018年7月2日星期一 计算机科学与工程学院 17
⑴ 可理解性(Understandability) 指由文档代码理解功能运行的容易程度。对外又称 user friendliness. 好程序的特征:模块化、结构化、代码与设计风格一致, 高级语言实现。 度量方法:90 - 10 Test ——读源程序10分钟,能否默写 出90%? ⑵可测试性(Testability) 是指论证程序正确性的容易程度。 好程序的特征:可理解、可靠、简单。 度量方法:程序复杂度(第五章中已讨论)
文档:开发文档 和测试文档
缺乏文档 不能进行回归测试
原因:没有使用良好定义的方法学开发出来。 回归测试:为了保证所做的修改没有在以前可以正常使用的软件 功能中引入错误而重复过去做过的测试。

软件工程课件之第8章维护第6版张海潘编著

软件工程课件之第8章维护第6版张海潘编著
(1) 必须描述如何使用这个系统,没有这种描述时即 使是最简单的系统也无法使用; (2) 必须描述怎样安装和管理这个系统; (3) 必须描述系统需求和设计; (4) 必须描述系统的实现和测试,以便使系统成为可 维护的。
用户文档
用户文档至少应该包括下述5方面的内容:
功能描述,说明系统能做什么; 安装文档,说明怎样安装这个系统以及怎样使系统
软件维护过程
维护报告
维护要求表或称软件问题报告表,由申请维 护的用户填写。
软件修改报告,由软件组织内部制定,指明:
满足某个维护要求表中提出的要求所需要的工 作量;
维护要求的性质; 这项要求的优先级; 与修改有关的事后数据;
维护的事件流
维护的事件流
尽管维护申请的类型不同,但都要进行同样 的技术工作:
系统文档
所谓系统文档指从问题定义、需求说明到验收 测试计划这样一系列和系统实现有关的文档。
描述系统设计、实现和测试的文档对于理解程 序和维护程序极端重要
从概貌到每个方面每个特点,从抽象到具体, 有逻辑地介绍系统
可维护性复审
在需求分析阶段的复审过程中,应该对将来要 改进的部分和可能会修改的部分加以注意并指 明;应该讨论软件的可移植性问题,并且考虑 可能影响软件维护的系统界面。
维护的问题
与软件维护有关的绝大多数问题,都可归 因于软件定义和软件开发的方法有缺点:
① 理解别人写的程序通常非常困难,而且困难程 度随着软件配置成分的减少而迅速增加。
② 需要维护的软件往往没有合格的文档,或者文 档资料显著不足。
③ 当要求对软件进行维护时,不能指望由开发人 员给我们仔细说明软件。
的。
软件维护工作量
各类维护工作量 所占比例
维护工作量在软件生 命周期所占比例

软件工程学维护

软件工程学维护
对已经存在的软件,重新进行开发是可行的,因为: ① 维护一行源代码的成本可能是该行代码初始开发成本的
20-40倍。 ② 使用现代设计概念重新设计软件体系结构,对未来的维护
工作将有很大的帮助。 ③ 由于软件原型已经存在,软件开发生产率将远远高于平均
水平。 ④ 由于用户已经有较丰富的软件使用经验,所以很容易确定
为了使软件和变化了的环境(如软/硬件升级、新数据库 等)适当地配合而修改软件的活动。约占全部维护活动的18 % ~25%。
§1. 软件维护的定义
③ 完善性维护(perfective maintenance) 为了增加软件新功能、改已有功能(如改造界面)、增强软
件性能、提高运行效率等,而修改软件的活动。 约占全部维护活动的50% ~66%。
④ 预防性维护(preventive maintenance)
为了改进未来的可维护性或可靠性,或为了给未来的改进奠 定更好的基础而主动修改软件的活动。与其它维护活动共占总 维护的4%左右。
注:① 一般维护的工作量占生存周期70%以上,维护成本约 为开发成本的4倍;
② 文档维护与代码维护同样重要。
§2. 软件维护的特点
1、建立维护组织(maintenance team)
在维护活动开始之前就明确维护责任是十分必要的,这样可 以大大减少维护过程中可能出现的混乱。
§3. 软件维护过程
钱太少 要
任务评价

不干!
求 维
客户要求





任务评价
维护管理员
系 统 管 理 员
2、维护报告
§3. 软件维护过程
⑴ 维护要求表(Maintenance Request Form)

软件维护PPT课件

软件维护PPT课件

• 系统管理员对维护任务做出评价之后,由变化授
权人决定应该进行的活动。
16
2. 维护报告
• 应该用标准化的格式表达所有软件维护 申请(要求)。
• 维护申请报告或称软件问题报告,由申 请维护的用户填写。
• 用户必须完整地说明产生错误的情况, 包括输入数据、错误清单以及其它有关 材料。
• 如果申请的是适应性维护或完善性维护, 用户必须提出一份修改说明书,列出所 有希望的修改。
第9章 软件维护
1
第9章 软件维护
9.1 软件维护的定义
软件维护 ---- 就是在软件已经交付使用之后,
为了改正错误或满足新的需要而修改软件的过 程。
维护的类型有四种: 改正性维护 适应性维护 扩充与完善性维护 预防性维护
2
1.改正性维护 --- Corrective Maintenance
• 在软件交付使用后,因开发时测试的不 彻底、不完全,必然会有部分隐藏的错 误遗留到运行阶段。
13
9.3 软件维护过程
• 维护过程本质上是修改和压缩了的软件定义和开 发过程,而且事实上远在提出一项维护要求之前,
与软件维护有关的工作已经开始了。 • 为了有效地进行软件维护,应事先就开始做组织
工作。 – 首先建立维护的机构 – 申明提出维护申请报告的过程及评价的过程 – 为每一个维护申请规定标准的处理步骤 – 建立维护活动的记录保管,并规定复审的标准
17
• 维护申请报告将由维护管理员和系统管理员 来研究处理。
• 他们应相应地做出软件修改报告,指明: – 所需修改变动的性质; – 申请修改的优先级; – 为满足某个维护申请报告,所需的工作量 – 预计修改后的状况.
数据输入/输出方式、数据存储介 质) 可能发生变化。

第11章 软件维护

第11章 软件维护

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

软件维护ppt课件-PPT文档资料

软件维护ppt课件-PPT文档资料
第八章、软件维护
一、计算机病毒 二、硬盘的整理 三 虚拟机的使用
计算机病毒的特征
非授权可执行性 隐蔽性 传染性 潜伏性 表现性或破坏性 可触发性
计算机病毒的分类
病毒存在的媒体
病毒可以划分为网络病毒,文件病毒,引导型病毒。
病毒破坏的能力
根据病毒破坏的能力可划分为以下几种: 无害型: 除了传染时减少磁盘的可用空间外,对系统没有其它
影响。 无危险型: 这类病毒仅仅是减少内存、显示图像、发出声音 危险型: 这类病毒在计算机系统操作中造成严重的错误。 非常危险型:这类病毒删除程序、破坏数据、清除系统内存区和
操作系统中重要的信息。
计算机病毒的预防
不打开来历不明邮件的附件 首次安装防病毒软件时,一定要对计算机做一
最新病毒介绍
AV杀手病毒名称: Trojan/KillAV.ak“AV杀手”变种ak是“AV杀手”木马家族的最新 成员之一,采用Delphi语言编写,并经过加壳处理。“AV杀手”变种ak运 行后,自我修改文件属性为“隐藏”。强行篡改注册表相关键值,致使文件 夹选项中的“显示隐藏文件”功能失效。利用Windows映像劫持技术 (IFEO),修改注册表,致使许多与安全相关的软件无法启动运行。在被 感染计算机的后台调用系统“spoolsv.exe”进程,将恶意代码注入其中并 调用运行,隐藏自我,防止被查杀。在后台连接骇客指定远程服务器站点, 下载恶意程序并在被感染计算机上自动调用运行。在所有盘根目录下生成 “autorun.inf”文件(磁盘映像劫持文件)和病毒体文件,实现用户一双 击盘符就启动“AV杀手”变种ak运行的功能。
次彻底的病毒扫描 不要从任何不可靠的渠道下载任何软件 不要用共享的软盘安装软件,或者更为糟糕的

第5章 软件维护和软件重用

第5章  软件维护和软件重用

19
19
5.1 软件维护
5.1.3 软件维护过程
软件维护的副作用
维护是为了延长软件的寿命,让软件创造更多的价值。但是维护会产生潜 在的错误或其他不希望出现的情况,称为维护的副作用。维护的副作用有编码 副作用、数据副作用和文档副作用3种。
05
20
20
5.1 软件维护
5.1.3 软件维护过程
编码副作用
使用程序设计语言修改
源程序时可能引入错误。例如, 修改程序的标号、标识符、运 算符、边界条件、程序的时序
软件维护 副作用
关系等,要特别仔细、避免引
入新的错误。
文档副作用
数据副作用 修改数据结构时可能造成软件
设计与数据结构不匹配,从而导致 软件错误。例如,修改局部量、全 局量、记录或文件的格式、初始化 控制或指针、输入/输出或子程序的 参数等容易导致设计与数据不一致。
6
6
5.1 软件维护
5.1.2 软件维护的特点
1)结构化维护与非结构化维护
差别巨大
与非结构化维护相比,结构
化维护能减少工作量并提高维护
的总体质量。这是在软件开发的
01
早期就运用软件工程方法论的结 果。
3)维护的代价高昂
03
02
2)维护的问题很多
7
7
5.1.2 软件维护的特点
5.1.2 软件维护的特点
立即开始维护工作。
12
12
5.1 软件维护
5.1.3 软件维护过程
不管是改正性、完善性还是适应性维护,都需要进行同样的技术工作,包括修改软件 设计、对源程序进行修改、单元测试、组装、有效性测试及复审等。
参加软件维护工作的人员并不是越多越好。一般情况下,对需要维护的软件比较 熟悉的人员,其维护工作的效率比较高。维护人员在维护过程中要做好详细的记录。 对于不同类型的维护,其工作的侧重点会有所不同,但总的处理方法基本上是相同的 。

《软件维护》PPT课件

《软件维护》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% 。

软件工程电子课件第6章 软件维护及软件再工程

软件工程电子课件第6章 软件维护及软件再工程
其他属性,使该软件产品适应修改后的环境。
2021/1/17
4
6.1.2 软件维护的分类
软件需要进行维护的原因很多,归结起来主要有以下 三种:
Ø (1)故障 Ø (2)环境变化 Ø (3)用户和维护人员的要求
2021/1/17
5
6.1.2 软件维护的分类
由这些原因引进的软件维护活动分为四类,每类维护活 动的任务各不相同。 Ø (1)改正性维护(Corrective maintenance) Ø (2)适应性维护(Adaptive maintenance)
变更的范围能够容易地搞清。 Ø (5)逆向工程和再工程的工具可以使一部分作业自动化。 Ø (6)软件配置将可以在完成预防性维护的基础上建立起来。
2021/1/17
26
6.4.2 软件的逆向工程和再工程
逆向工程是从源代码中抽取出来的设计信息。作为逆向工 程的评价,要求抽取出来的信息的抽象程度越高越好。
结构化维护是在软件开发的早期应用软件工
程方法学的结果。虽然有了软件的完整配置并不
能保证维护中没有问题,但是确实能减少精力的
浪费并且能提高维护的总体质量。
Ø (2)非结构化维护
非结构化维护需要付出很大代价(浪费精力并
且遭受挫折的打击),这种维护方式是没有使用
良好定义的方法学开发出来的软件的必然结果。
2021/1/17
逆向工程中得到的信息抽象层次(从低到高);软件过程的 设计表示、程序和数据结构信息、数据和控制流模型和实体、 关系模型。
2021/1/17
27
6.4.2 软件的逆向工程和再工程
再工程(reengineering),它不仅能从已存在的程序中重新 获得设计信息,而且还能使用这些信息来改建或重构现有的系 统.以改进它的综合质量。一般软件人员利用再工程重新实现 已存在的程序,同时加进新的功能或改善它的性能。
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

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% 。
相关文档
最新文档