ImageVerifierCode 换一换
格式:DOCX , 页数:7 ,大小:21.23KB ,
资源ID:5456352      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/5456352.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(第八章 软件维护.docx)为本站会员(b****3)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

第八章 软件维护.docx

1、第八章 软件维护第八章 软件维护软件投入使用后就进入软件维护阶段。维护阶段是软件生存周期中时间最长的一个阶段,所花费的精力和费用也是最多的一个阶段。软件维护是软件工程的一个重要任务,作为理论,本章的内容比较简单,多为识记领会内容,主要应注意一些概念。其中的软件可维护性是本章的重点内容。8.1软件维护的内容 软件维护内容有四种:校正性维护,适应性维护,完善性维护和预防性维护。 1.校正性维护 在软件交付使用后,由于在软件开发过程中产生的错误并没有完全彻底的在测试中发现,因此必然有一部分隐含的错误被带到维护阶段来。这些隐含的错误在某些特定的使用环境下会暴露出来。为了识别和纠正错误,修改软件性能上的

2、缺陷,应进行确定和修改错误的过程,这个过程就称为校正性维护。校正性维护占整个维护工作的21%左右。 2.适应性维护 随着计算机的飞速发展,计算机硬件和软件环境也在不断发生变化,数据环境也在不断发生变化。为了使应用软件适应这种而修改软件的过程称为适应性维护。这种维护活动占整个维护活动的25%。 3.完善性维护 在软件漫长的运行时期中,用户往往会对软件提出新的功能要求与性能要求。这是因为用户的业务会发生变化,组织机构也会发生变化。为了适应这些变化,应用软件原来的功能和性能需要扩充和增强,为达到这个目的而进行的维护活动称为完善性维护,占整个维护活动的50%。 4.预防性维护 为了提高软件的可维护性和

3、可靠性而对软件进行的修改称为预防性维护。这是为以后进一步的运行和维护打好基础,占整个维护工作的4%。8.2 维护的特点8.2.1非结构化维护和结构化维护软件的开发过程对软件的维护过程有较大的影响。若不采用软件过程的方法开发软件,则软件只有程序而无文档,维护工作非常难,这就是一种非结构化的维护。若采用软件工程的方法开发软件,则各阶段都有相应的文档,这容易进行维护工作,这是一种结构化的维护。1.非结构化维护因为只有源程序,而文档很少或没有文档,维护活动只能从阅读、理解、分析源程序开始。这是软件工程时代以前进行维护的情况。2.结构化维护用软件工程思想开发的软件具有各阶段的文档,这对于理解和掌握软件功

4、能、性能、系统结构、数据结构、系统接口和设计约束有很大作用。这种维护对减少精力、减少花费、提高软件维护效率有很大的作用。8.2.2维护的困难性软件维护的困难性是由于软件需求分析和开发方法的缺陷。软件生存周期中的开发阶段没有严格而又科学的管理和规划,就会引起软件运行时的维护困难。表现在以下几个方面:1.读懂别人的程序是困难的。2.文档的不一致性。由于开发过程中文档管理不严所造成的,在开发过程中经常会出现修改程序却遗忘了修改与其相关的文档,使得文档前后不一致。3.软件开发和软件维护在人员和时间上的差异由于维护阶段持续时间很长,正在运行的软件可能是十几、二十年前开发的,开发工具、方法、技术与当前的工

5、具、方法、技术差异很大,这又是维护困难的另一因素。4.软件维护不是一项吸引人的事由于维护工作的困难性,维护工作经常遭受挫折,而且很难出成果,不像软件开发工作那样吸引人。8.2.3软件维护的费用软件维护的费用在总费用中的比重是不断增加的。七十年代占35%40%,八十年代上升到40%60%,九十年代上升到70%80%。软件维护费用不断上升,这只是软件维护有形的代价,无形的代价是要占用更多的资源,并在维护时对软件的改动,引入了潜在的故障,从而降低了软件的质量。用于软件维护工作的活动可分为生产性活动和非生产性活动两种。生产性活动包括分析评价、修改设计和编写程序代码等。非生产性活动包括理解程序代码功能、

6、解释数据结构接口特点和设计约束。维护活动总的工作两由下式表示:M=P+Kexp(C-D) 其中:M表示维护工作的总工作量; P表示生产性活动工作量; K表示经验常数; C表示复杂性程度; D表示维护人员对软件的熟悉程度;上式表明,若C越大,D越小,那么维护工作量将成指数增加;C增加表示软件因未用软件工程方法开发,从而使得软件为非结构化设计,文档缺少,程序复杂性高。D表示维护人员不是原来的开发人员,对软件熟悉程度低,重新理解软件花费很多时间。8.3维护任务的实施8.3.1维护的组织 为了有效地进行软件维护,应事先开始组织工作,建立维护机构。这种维护机构通常以维护小组形式出现。维护小组分为临时维护

7、小组和长期维护小组。8.3.2维护的流程 软件维护的流程如下: (1)制定维护申请报告。 (2)审查申请报告并批准。 (3)进行维护并做详细记录。 (4)复审。1.制定维护申请报告所有软件维护申请报告应按照规定的方式提出。该报告也称为软件问题报告。它是维护阶段的一种文档,由申请维护的用户填写。维护申请报告是一种由用户产生的文档,在软件维护组织内部还要制定一份软件修改报告,该报告是维护阶段的另一种文档。提出维护申请报告之后,由维护机构来评审维护请求。评审工作很重要,通过评审回答要不要维护,从而可以避免盲目的维护。2.维护过程 一个维护申请提出之后,经评审需要维护则按下列过程实施维护: (1)首先

8、确定要进行维护的类型。 (2)对校正性维护从评价错误的严重性开始。 (3)对适应性维护和完善性维护。 (4)实施维护任务。不管维护类型如何,大体上要开展相同的技术工作。这些工作包括修改软件设计、必要的代码修改、单元测试、集成测试、确认测试以及复审。每种维护类型的侧重点不一样。 (5)“救火”维护。在发生重大问题时,需要立即解决的问题。 3.维护的复审 在维护任务完成后,要对维护任务进行复审。8.3.3维护技术 有两类维护技术,它们是面向维护的技术和维护支援技术。 1.面向维护的技术 面向维护的技术涉及软件开发的所有阶段,是在软件开发阶段用来减少错误、提高软件可维护性的技术。 2.维护支援技术维

9、护支援技术是在软件维护阶段用来提高维护作业的效率和质量的技术。维护支援技术包括下列方面的技术: .信息收集; .错误原因分析; .维护方案评价; .软件分析与理解; .代码与文档修改; .修改后的确认; .远距离的维护;8.3.4维护的副作用 维护的目的是为了延长软件的寿命并让创造更多的价值,经过一段时间的维护,软件中的错误减少了,功能增强了。但修改软件会造成软件的错误,这种因修改软件而造成的错误或其他不希望出现的情况称为维护的副作用。 维护的副作用有编码副作用、数据副作用、文档副作用三种。 1.编码副作用 在使用程序设计语言修改源代码时可能引入错误。 2.数据副作用 在修改数据结构时,有可能

10、造成软件设计与数据结构不匹配,因而导致软件错误。 3.文档副作用 对数据流、软件结构、模块逻辑或任何其他有关特性进行修改时,必须对相关技术文档进行相应修改,否则会导致文档与程序功能不匹配、缺省条件改变、新错误信息不正确等错误,使文档不能反映软件当前的状态。8.4 软件可维护性 软件的维护是十分困难的,为了使软件能易于维护,必须考虑使软件具有可维护性。8.4.1可维护性定义 软件可维护性的定义:软件能够被理解、校正、适应及增强功能的容易程度。 软件的可维护性、可使用性、可靠性是衡量软件质量的几个主要特性,也是用户十分关心的几个问题。 软件的可维护性是软件开发阶段的关键目标。影响软件可维护性的因素

11、较多,设计、编码及测试中的疏忽和低劣的软件配置,缺少文档等都对软件的可维护性产生不良影响。软件可维护性可用下面七个质量特性来衡量,即可理解性、可测试性、可修改性、可靠性、可移植性、可使用性和效率。对于不同类型的维护,这七种特性的侧重点也是不相同。8.4.2可维护性的度量 目前有若干对软件可维护性进行综合度量的方法,但要对可维护性作出定量度量还是困难的。还没有一种方法能够使用计算机对软件的可维护性进行综合性的定量评价。 下面是度量一个可维护的软件的七种特性时常采用的方法,即质量检查表、质量测试、质量标准。 质量检查表是用于测试程序中某些质量特性是否存在的一个问题清单。 质量测试与质量标准则用于定

12、量分析和评价程序的质量。由于许多质量特性是相互抵触的,要考虑几种不同的度量标准去度量不同的质量特性。8.4.3提高可维护性的方法 从下面五个方面来阐述如何提高软件的可维护性: 1.建立明确的软件质量目标 如果要程序满足可维护性七个特性的全部要求,那么要付出很大的代价,甚至是不现实的,但有些可维护性是相互促进的,因此要明确软件所追求的质量目标。 2.使用先进的软件开发技术和工具 利用先进的软件开发技术能大大提高软件质量和减少软件费用。面向对象的软件开发方法就是一个非常实用而强有力的软件开发方法,用面向对象方法开发出来的软件系统,稳定性好,比较容易修改,比较容易理解,易于测试和调试,因此,可维护性

13、好。 3.建立明确的质量保证 质量保证是指为提高软件质量所做的各种检查工作。质量保证检查是非常有效的方法,不仅在软件开发的各阶段中得到了广泛应用,而且在软件维护中也是一个非常主要的工具。为了保证可维护性,以下四类检查是非常有用的: (1)在检查点进行检查。 (2)验收检查。 (3)周期性的维护检查。 (4)对软件包的检查。 4.选择可维护的语言 程序设计语言的选择对维护影响很大。低级语言很难掌握,很难理解,因而很难维护。一般来说,高级语言比低级语言更容易理解,第四代语言更容易理解,容易编程,程序容易修改,改进了可维护性。 5.改进程序的文档 程序文档是对程序功能、程序各组成部分之间的关系、程序

14、设计策略、程序实现过程的历史数据等的说明和补充。程序文档对提高程序的可阅读性有重要作用。为了维护程序,人们必须阅读和理解程序文档。第8章例题分析与解答一、填空题1.为了识别和纠正运行中产生的错误而进行的维护称为_维护。答案:校正性2.采用软件工程方法开发软件,各阶段均有文档,容易维护,这种维护是_。答案:结构性维护3.为提高可维护性,要使用的先进的、强有力的、实用的软件开发方法是_。答案:面向对象方法4.在软件维护中,因修改软件而导致出现的错误或其他情况称为_。答案:维护的副作用二、选择题1.为增加软件功能和性能而进行的软件修改维护过程是( )。A.校正性维护B.适应性维护C.完善性维护D.预

15、防性维护答案:C2.维护中用来指出修改的工作量、工作性质、优先权、修改的事后性质的文档是( )。A.软件需求说明 B.软件修改报告 C.软件问题报告 D.测试分析报告答案:B3.维护中,因修改全局或公用数据而引起的错误是( )。A.文档副作用 B.数据副作用 C.编码副作用 D.设计副作用答案:B4.生产性维护活动是( )。A.修改设计 B.理解设计C.解释数据结构 D.理解功能答案:A第8章自测题及参考答案一、名词解释1校正性维护 2适应性维护 3完善性维护4预防性维护 5软件可维护性6软件维护的副作用二、填空题1维护阶段是软件生存周期中时间最长的阶段,也是花费精力和费用_的阶段。(最多)2

16、在软件交付使用后,由于在软件开发过程中产生的错误没有完全彻底在开发阶段发现,必然有一部分隐含错误带到_阶段。(维护)3采用手工方法开发软件只有程序而无文档,维护困难,这是一种_维护。(非结构化)4软件维护费用增加的主要原因是维护的_非常低。(生产率)5软件维护工作的活动分为生产性活动和_活动。(非生产性)6所有软件维护申请报告要按规定方式提出,该报告也称_报告。(软件问题)7有两类维护技术:在开发阶段使用来减少错误,提高软件可维护性的面向维护技术;在维护阶段用来提高维护的效率和质量的_技术。(维护支援)三、选择题1在生存周期中,时间长、费用高、困难大的阶段是(D )。A.需求分析 B.编码 C

17、.测试 D.维护2为适应软硬件环境变化而修改软件的过程是(B )。A.校正性维护 B.适应性维护 C.完善性维护 D.预防性维护3软件维护困难的主要原因是(C )。A.费用低B.人员少C.开发方法的缺陷 D.维护难4软件维护费用高的主要原因是(B )。A.生产率高 B.生产率低 C.人员多 D.人员少5维护阶段的文档是(C )。A.软件需求说明 B.操作手册 C.软件问题报告 D.测试分析报告6产生软件维护的副作用,是指(C )。A.开发时的错误 B.隐含的错误C.因修改软件而造成的错误 D.运行时误操作7维护中,因误删除一个标识符而引起的错误是(C )副作用。A.文档 B.数据 C.编码 D

18、.设计8可维护性的特性中相互促进的是(A )。A.可理解性和可测试性 B.效率和可移植性C.效率和可修改性 D.效率和结构好9可维护性的特性中,相互矛盾的是(C )。A.可修改性和可理解性 B.可测试性和可理解性C.效率和可修改性D.可理解性和可读性 软件工程习题参考答案81、软件维护有哪些内容? 答:(1)校正性维护。在软件交付使用后,一些隐含的错误在某些特定的使用环境下会暴露出来。为了识别和纠正错误,修改软件性能上的缺陷,应进行确定和修改错误的过程,这个过程就称为校正性维护。 (2)适应性维护。为了使应用软件适应计算机硬件、软件环境及数据环境的不断发生的变化而修改软件的过程称为适应性维护。

19、 (3)完善性维护。为增加软件功能、增强软件性能、提高软件运行效率而进行的维护活动称为完善性维护。 (4)预防性维护。为了提高软件的可维护性和可靠性而对软件进行的修改称为预防性维护。 2、 软件维护的特点是什么? 答:主要体现在三个方面: (1) 非结构化维护和结构化维护。软件的开发过程对软件的维护有很大的影响。若不采用软件工程的方法开发软件,则软件只有程序而无文档,维护工作非常困难,这是一种非结构化的维护。若采用软件工程的方法开发软件,则各阶段都有相应的文档,容易进行维护工作,这是一种结构化的维护。 (2) 维护的困难性。软件维护的困难性是由于软件需求分析和开发方法的缺陷。软件生存周期中的开

20、发阶段没有严格而又科学的管理和规划,就会引起软件运行时的维护困难。(3) 软件维护的费用。软件维护的费用在总费用中的比重是在不断增加的,这是软件维护有形的代价。另外还有无形的代价,即要占有更多的资源。软件维护费用增加的占有原因是软件维护的生产率非常低。 3、 软件维护的流程是什么? 答:软件维护的流程如下:制定维护申请报告、审查申请报告并批准、运行维护并做详细记录、复审。 4、 软件维护的副作用有哪些? 答:维护的副作用有以下三种: (1) 编码副作用。在使用程序设计语言修改源代码时可能引入的错误。 (2) 数据副作用。在修改数据结构时,有可能造成软件设计与数据结构不匹配,因而导致软件错误。数据副作用是修改软件信息结构导致的结果。但它可以通过详细的设计文档加以控制。 (3) 文档副作用。如果对可执行软件的修改没有反映在文档中,就会产生文档副作用。 5、什么是软件可维护性?可维护性度量的特性是什么?答:软件可维护性的定义:软件能够被理解、校正、适应及增强功能的容易程度。软件的可维护性可用以下七个质量特性来衡量,即可理解性、可测试性、可修改性、可靠性、可移植性、可使用性和效率。 6、 提高可维护性的方法有哪些? 答:(1)建立明确的软件质量目标。 (2)使用先进的软件开发技术和工具。 (3)建立明确的质量保证。 (4)选择可维护性的程序设计语言。 (5)改进程序的文档。

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1