软件维护与软件文档编制.ppt
《软件维护与软件文档编制.ppt》由会员分享,可在线阅读,更多相关《软件维护与软件文档编制.ppt(59页珍藏版)》请在三一办公上搜索。
1、第七章 软件维护与软件文档编制,软件投入运行后,软件的开发工作已经结束,进入软件的维护阶段。软件维护所需的工作量相当大,许多国外的软件开发组织估计,软件维护所占的比例占有软件整个生命周期的60%以上的工作量,随着软件规模和数量的增大,软件维护工作将会束缚开发组织的手脚,使他们没有余力开发新的软件。人们对软件维护工作的认识加深后,软件技术服务已经可以独立承包给独立的技术厂商,由专门的技术服务公司进行软件维护,软件开发公司得以继续开发新的软件产品。,7.1 软件维护的内容,软件维护就是在软件已经交付使用以后,为了改正错误或满足新的需要而修改软件的过程。一般来说,要求进行维护的原因大致有以下几种:(
2、1)改正程序中的错误和缺陷。(2)改进设计以适应新的软、硬件环境。(3)增加新的应用范围。,7.1 软件维护的内容,综合以上几种要求进行维护的原因,我们可以把软件维护有四种基本形式:(1)改正性维护:软件测试不可能找出一个大型软件系统中的所有潜在的软件错误,所以在软件使用期间仍有可能发现错误,诊断和改正这类错误的过程称为改正性维护;(2)适应性维护:由于计算机技术发展迅速,计算机硬件设备的不断更新,计算机操作系统的新版本也会不断出现,计算机外部设备也要经常改进,而软件的使用寿命往往超出当时开发该软件系统时设备环境的寿命,为适应新的变化而要对软件进行的修改,称为适应性维护;,7.1 软件维护的内
3、容,(3)完善性维护:软件投入使用后,用户会提出增加新功能,修改已有的功能以及提出一般的改进要求和建议,为了满足和部分满足这类要求,就要进行完善性维护,这类工作较多,占了维护工作的大部分;(4)预防性维护:为了进一步改进软件的维护性和可靠性,或者为进一步改进提供更好的基础而对软件进行的修改,称之为预防性维护;这类工作相对较少。,7.2 影响软件维护工作的主要因素,软件维护与进行新软件产品的开发是一对矛盾,导致软件维护困难的根源大多来自软件计划和开发工作的缺点:如果软件的文档配置不全,会使得维护工作付出很大的代价,因而浪费了精力,挫伤了人的积极性。如果使用软件工程的方法,软件有一个完整配置,维护
4、任务就从评价设计文档开始,确定这个软件的重要结构特性,性能特性、接口特性。确定软件修改带来的影响,并找出一些处理方法,先修改设计,进行设计复审,再修改源程序代码,并利用以前的测试用例进行回归测试,最后将修改过的软件交付使用。,7.2 影响软件维护工作的主要因素,这种维护方式使维护工作量大大减少,易于维护,而且可以提高软件维护的质量。可维护性是指进行软件修改、变更时的难易程度。决定可维护性的主要软件质量因素有三方面:可理解性、可测试性、可修改性。这些又与可扩充性、一致性、简洁性、清晰性、结构性等因素相关。,7.2 影响软件维护工作的主要因素,影响软件维护工作的主要因素有:(1)软件开发的方法:软
5、件开发方法直接影响软件的易维护性;模块化结构、详细设计等文档、软件维护记录报告等将有助于理解软件的结构、界面的功能和内部的数据与控制逻辑流程、理解当前软件的版本状态;(2)软件开发的条件:软件开发过程所涉及到的软硬件资源特性也对软件的维护产生影响,如程序设计语言的特性、软件开发工具等对于理解软件有着明显的影响;,7.2 影响软件维护工作的主要因素,(3)软件规模的大小:软件规模越大,系统越复杂,维护所需的工作量也越大;(4)软件投入运行后的时间:老系统比新系统需要更多的维护工作量,在长期的维护过程中,也许软件的文档与实际的程序实现已变得不一致,维护工作会遇到更多的困难;(5)其它设计因素、人员
6、交替与外部环境因素:开发时,原来软件的设计对软件维护工作的考虑,软件外部环境的变化,人员的交替和管理工作,都会对软件的维护工作产生影响;,7.3 软件维护的特点,7.3.1 软件工程与软件维护的关系,7.3.2 维护成本,退出,7.3.3 维护的问题,7.3.1 软件工程与软件维护的关系,无形的维护成本:(1)一些看起来是合理的改错或修改的要求不能及时满足,使得用户不满意;(2)维护时产生的改动,可能会带来新的潜伏的故障,从而降低了软件的整体质量;(3)当必须把软件开发人员抽调去进行维护工作时,将在开发过程中造成混乱。,7.3.2 维护成本,用于软件维护的工作量可以分为两部分:一部分用于生产性
7、活动,另一部分用于非生产性活动。下面的表达式是由Belady和Lehman提出的维护工作量的计算模型:,MpKe(c d)M:维护中消耗的总工作量;p:生产性工作量;K:经验常数;c:复杂程度;d:维护人员对软件的熟悉程度。通过这个模型可以看出,如果使用了不好的软件开发方法,参加维护的人员都不是原来开发的人员,那么维护工作量(及成本)将按指数级增加。,(1)理解他人编写的程序一般都有一定的困难性。(2)软件配置的文档严重不足甚至没有,或者没有合格的文档。(3)当需要对软件进行维护时,由于软件人员经常流动,维护阶段持续的时间又很长,所以一般不能指望由原来的开发人员来完成或提供软件的解释。(4)绝
8、大多数软件在设计时没有考虑到将来的修改问题。(5)软件维护可以说是一项毫无吸引力的工作。之所以形成这样一种观念,一方面是因为软件维护工作量大,看不到什么“成果”,更主要的原因是因为维护工作难度大,又经常遭受挫折。,7.3.3 维护的问题,7.4 软件维护过程,7.4.1 维护机构,7.4.2 维护申请报告,退出,7.4.3 维护的工作流程,7.4.4 维护记录,7.4.5 维护评价,7.4.1 维护机构,维护管理员负责接受维护申请,然后把维护申请交给某个系统管理员去评价。系统管理员是一名技术人员,他必须熟悉软件产品的某一部分。系统管理员对维护申请做出评价,然后交与修改负责人确定如何进行修改。,
9、维护申请报告,维护申请报告是由软件组织外部提交的文档,它是计划维护活动的基础。软件组织内部应依此制定相应的软件修改报告,这个报告包括以下内容:(1)为满足某个维护申请要求所需的工作量;(2)所需修改变动的性质;(3)申请修改的优先级;(4)与修改有关的事后数据。软件修改报告应提交修改负责人进行审核批准,以便进行下一步工作。,维护的工作流程,无论是哪一种类型的维护,都要进行以下工作:,(1)修改软件设计;(2)设计复审;(3)对源代码的必要修改;(4)单元测试;(5)集成测试,包括回归测试;(6)验收测试;(7)软件配置复审。在每次软件维护任务完成后,需要进行必要的情况评审。这种评审是对以下问题
10、的一个小结:(1)在当前情况下,设计、编码、测试中的哪些方面能够改进?(2)哪些维护资源是应该有而实际上却没有的?(3)工作中的主要和次要的障碍是什么?(4)要求的维护类型中有预防性维护吗?,维护记录,对于维护记录中的内容,Swanson给出了下述的项目表:(1)程序名称;(2)源程序语句条数;(3)机器代码指令条数;(4)使用的程序设计语言;(5)程序的安装日期;(6)程序安装后的运行次数;(7)与程序安装后运行次数有关的处理故障的次数;,(8)程序修改的层次和名称;,(9)由于程序修改而增加的源程序语句条数;(10)由于程序修改而删除的源程序语句条数;(11)每项修改所付出的“人时”数;(
11、12)程序修改的日期;(13)软件维护人员的姓名;(14)维护申请报告的名称;(15)维护类型;(16)维护开始时间和维护结束时间;(17)用于维护的累计“人时”数;(18)维护工作的净收益。,维护评价,一般来说,可以从以下七个方面来评价维护工作:(1)每次程序运行时的平均出错次数;(2)用于每一类维护活动的总“人时”数;(3)每个程序、每种语言、每种维护类型所做的平均修改数;(4)维护过程中,增加或删除每条源程序语句花费的平均“人时”数;(5)用于每种语言的平均“人时”数;(6)一张维护申请报告的平均处理时间;(7)各类维护类型所占的百分比。,7.5 软件可维护性,7.5.1 软件可维护性的
12、度量,7.5.2 提高软件可维护性的方法,退 出,可以从以下四个方面来度是软件的可维护性:1可理解性 2可测试性 3可修改性 4可移植性,7.5.1 软件可维护性的度量,提高软件可维护性的方法,1建立明确的软件质量标准2利用先进的软件技术和工具3建立明确的质量保证制度4选择可维护的程序设计语言5改进软件的文档,7.6 软件维护的副作用,(1)对子程序的删除或修改;(2)对语句标号的删除或修改;(3)对标识符的删除或修改;(4)为改进程序执行性能所做的修改:(5)改变文件的打开或关闭;(6)对逻辑运算符的修改;(7)把设计的修改翻译成程序代码的修改;(8)对判定的边界条件所做的修改。为确保编码修
13、改没有引入新的错误,应进行严格的回归测试。一般情况下,通过回归测试,可以发现并纠正修改编码所带来的副作用。,1、修改编码的副作用,(1)重新定义局部常量或全程常量;(2)重新定义记录格式或文件格式;(3)改变一个数组或高阶数据结构的大小;(4)修改全程变量;(5)重新初始化控制标记或指针;(6)重新排列输入输出或子程序的自变量。修改数据的副作用可以通过完善的设计文档来加以限制。这种文档描述了数据结构,并且提供了一种把数据元素、记录、文件及其它结构与软件模块联系起来的交叉对照功能。,2、修改数据的副作用,维护应该着眼于整个软件配置,而不只是源程序代码的修改。如果源代码的修改没有反映在设计文档或用
14、户文档中时,就会发生文档的副作用。每当对数据流图、软件结构、模块算法过程和其它有关的特征进行修改时,必须同时对相应的文档资料进行更新。在软件再次交付使用之前,对整个软件配置进行评审将大大减少文档的副作用。实际上,某些维护申请的提出只是由于用户文档不够清楚。这时,只需对文档进行维护即可,并不要求修改软件设计或源程序。,3、修改文档的副作用,7.7 软件版本控制,利用维护工具进行软件维护,可以降低维护费用,提高维护效率。比较典型的是版本控制系统,用于协调软件各种版本和配置的生成。版本控制的主要功能有:存贮、更新、检索模块的各个版本;控制修改权限,对模块采取保护措施,仅允许程序员对指定的模块进行修改
15、;利用版本号、日期和时间等信息,系统自动识别装入的模块,确定正确的代码模块版本;自动记录对每个模块进行修改的程序员的名字,记录修改的内容、时间和原因等。可以实现版本的跟踪、恢复和升级。,7.8 软件工程标准中的文档标准,7.8.1 标准化机构与组织,7.8.2 文档的作用,退 出,7.8.3 文档的分类和标准,7.8.1 标准化机构与组织,随着软件工程学的发展,人们对计算机软件的认识逐步深入。软件工作的范围从单纯的使用程序设计语言编制程序,扩展到整个软件生存期。在软件产品的开发过程中,同时产生了许多技术管理工作和确认验证工作,这些工作常常是跨越软件生存期各个阶段的专门工作,需要软件行业的标准或
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件 维护 文档 编制

链接地址:https://www.31ppt.com/p-6377460.html