软件工程 第4版 教学课件 ppt 作者 张海藩 吕云翔 编著 14

上传人:E**** 文档编号:89494204 上传时间:2019-05-25 格式:PPT 页数:49 大小:627KB
返回 下载 相关 举报
软件工程 第4版  教学课件 ppt 作者  张海藩 吕云翔 编著 14_第1页
第1页 / 共49页
软件工程 第4版  教学课件 ppt 作者  张海藩 吕云翔 编著 14_第2页
第2页 / 共49页
软件工程 第4版  教学课件 ppt 作者  张海藩 吕云翔 编著 14_第3页
第3页 / 共49页
软件工程 第4版  教学课件 ppt 作者  张海藩 吕云翔 编著 14_第4页
第4页 / 共49页
软件工程 第4版  教学课件 ppt 作者  张海藩 吕云翔 编著 14_第5页
第5页 / 共49页
点击查看更多>>
资源描述

《软件工程 第4版 教学课件 ppt 作者 张海藩 吕云翔 编著 14》由会员分享,可在线阅读,更多相关《软件工程 第4版 教学课件 ppt 作者 张海藩 吕云翔 编著 14(49页珍藏版)》请在金锄头文库上搜索。

1、北航软件学院 吕云翔,第十四章 软件维护与软件文档,14.1 软件维护,软件维护是软件产品生命周期的最后一个阶段。在产品交付并且投入使用之后,为了解决在使用过程中不断发现的各种问题,保证系统正常运行,同时使系统功能随着用户需求的更新而不断升级,软件维护的工作是非常必要的。,14.1 软件维护,进行软件维护通常需要软件维护人员与用户建立一种工作关系,使软件维护人员能够充分了解用户的需要,及时解决系统中存在的问题。通常,软件维护是软件生命周期中延续时间最长、工作量最大的阶段。,14.1 软件维护,据统计,软件开发机构60%以上的精力都用在维护已有的软件产品上了。对于大型的软件系统,一般开发周期是1

2、3年,而维护周期会高达510年,维护费用甚至会高达开发费用的45倍。,14.1.1 软件维护的过程 14.1.2 软件维护的分类 14.1.3 软件的可维护性 14.1.4 软件维护的副作用,14.1 软件维护,14.1.1 软件维护的过程,可以把软件维护过程看成是一个简化或修改了的软件开发过程。为了提高软件维护工作的效率和质量,降低维护成本,同时使软件维护过程工程化、标准化、科学化,在软件维护的过程中需要采用软件工程的原理、方法和技术。,14.1.1 软件维护的过程,典型的软件维护的过程可以概括为:建立维护机构,用户提出维护申请并提交维护申请报告,维护人员确认维护类型并实施相应的维护工作,整

3、理维护记录并对维护工作进行评审,对维护工作进行评价。,14.1.1 软件维护的过程,1建立维护机构 对于大型的软件开发公司,建立独立的维护机构是非常必要的。维护机构中要有维护管理员、系统监督员、配置管理员和具体的维护人员。对于一般的软件开发公司,虽然不需要专门建立一个维护机构,但是设立一个产品维护小组是必需的。,14.1.1 软件维护的过程,2. 用户提出维护申请并提交维护申请报告 当用户发现问题并需要解决时,首先应该向维护机构提交一份维护申请报告。申请报告中需要详细记录软件产品在使用过程中出现的问题,比如数据输入、系统反应、错误描述等。维护申请报告是维护人员研究问题和解决问题的基础,因此它的

4、正确性、完整性是后续维护工作的关键。,14.1.1 软件维护的过程,3维护人员确认维护类型并实施相应的维护工作 软件维护有多种类型,对不同类型的维护工作所采取的具体措施也有所不同。维护人员根据用户提交的申请报告,对维护工作进行类型划分,并确定每项维护工作的优先级,从而确定多项维护工作的顺序。,14.1.1 软件维护的过程,在实施维护的过程中,需要完成多项技术性的工作,比如: 对软件开发过程中相关文档进行更新; 对源代码进行检查和修改; 单元测试; 集成测试; 软件配置评审等。,14.1.1 软件维护的过程,4整理维护记录并对维护工作进行评审 为了方便后续的维护评价工作,以及对软件产品运行状况的

5、评估,需要对维护工作进行简单的记录。,14.1.1 软件维护的过程,维护的实施工作完成后,最好对维护工作进行评审。维护评审可以为软件开发机构的有效管理提供反馈信息,对以后的维护工作产生重要的影响。维护评审时,评审人员应该对以下问题进行总结。,14.1.1 软件维护的过程,在当前的环境下,设计、编码或测试的工作中是否还有改进的余地和必要? 缺乏哪些维护资源? 维护工作遇到的障碍有哪些? 从维护申请的类型来看,是否还需要有预防性维护?,14.1.1 软件维护的过程,5对维护工作进行评价 当维护工作完成时,需要对维护工作完成的好坏进行评价。维护记录中的各种数据是维护评价的重要参考。如果维护记录完成得

6、全面、具体、准确,会在很大程度上方便维护的评价工作。,14.1.1 软件维护的过程 14.1.2 软件维护的分类 14.1.3 软件的可维护性 14.1.4 软件维护的副作用,14.1 软件维护,14.1.2 软件维护的分类,根据维护工作的特征以及维护目的的不同,软件维护可以分为纠错性维护、适应性维护、完善性维护和预防性维护4种类型,14.1.2 软件维护的分类,纠错性维护是为了识别并纠正软件产品中所潜藏的错误,改正软件性能上的缺陷所进行的维护。在软件的开发和测试阶段,必定有一些缺陷是没有被发现的。这些潜藏的缺陷会在软件系统投入使用之后逐渐地暴露出来。用户在使用软件产品的过程中,如果发现了这类

7、错误,可以报告给维护人员,要求对软件产品进行维护。,14.1.2 软件维护的分类,适应性维护是为了使软件产品适应软硬件环境的变更而进行的维护。随着计算机的飞速发展,软件的运行环境也在不断地升级或更新,比如,软硬件配置的改变、输入数据格式的变化、数据存储介质的变化、软件产品与其他系统接口的变化等。如果原有的软件产品不能够适应新的运行环境,维护人员就需要对软件产品做出修改。,14.1.2 软件维护的分类,完善性维护是软件维护的主要部分,它是针对用户对软件产品所提出的新需求所进行的维护。完善性维护的过程一般会比较复杂,可以看成是对原有软件产品的“再开发”。在所有类型的维护工作中,完善性维护所占的比重

8、最大。此外,进行完善性维护的工作,一般都需要更改软件开发过程中形成的相应文档。,14.1.2 软件维护的分类,预防性维护主要是采用先进的软件工程方法对已经过时的、很可能需要维护的软件系统的某一部分进行重新设计、编码、测试,以达到结构上的更新,它为以后进一步维护软件打下了良好的基础。实际上,预防性维护是为了提高软件的可维护性和可靠性。在所有类型的维护工作中,预防性维护的工作量最小。,14.1.2 软件维护的分类,14.1.1 软件维护的过程 14.1.2 软件维护的分类 14.1.3 软件的可维护性 14.1.4 软件维护的副作用,14.1 软件维护,14.1.3 软件的可维护性,软件的可维护性

9、是用来衡量对软件产品进行维护的难易程度的标准,它是软件质量的主要特征之一。软件产品的可维护性越高,纠正并修改其错误或缺陷,对其功能进行扩充或完善时,消耗的资源越少,工作越容易。开发可维护性高的软件产品是软件开发的一个重要目标。,14.1.3 软件的可维护性,影响软件可维护性的因素有很多,如可理解性、可测试性、可修改性等。可理解性是指人们通过阅读软件产品的源代码和文档,来了解软件的系统结构、功能、接口和内部过程的难易程度。可理解性高的软件产品应该具备一致的编程风格,准确、完整的文档,有意义的变量名称和模块名称,清晰的源程序语句等特点。,14.1.3 软件的可维护性,可测试性是指诊断和测试软件缺陷

10、的难易程度。程序的逻辑复杂度越低,就越容易测试。透彻地理解源程序有益于测试人员设计出合理的测试用例,从而有效地对程序进行检测。 可修改性是指在定位了软件缺陷以后,对程序进行修改的难易程度。一般来说,具有较好的结构且编码风格好的代码比较容易修改。,14.1.3 软件的可维护性,(1) 建立完整的文档。 完整、准确的文档有利于提高软件产品的可理解性。文档包括系统文档和用户文档,它是对软件开发过程的详细说明,是用户及开发人员了解系统的重要依据。完整的文档有助于用户及开发人员对系统进行全面的了解。,14.1.3 软件的可维护性,(2) 采用先进的维护工具和技术。 先进的维护工具和技术可以直接提高软件产

11、品的可维护性。例如,采用面向对象的软件开发方法、高级程序设计语言以及自动化的软件维护工具等。,14.1.3 软件的可维护性,(3) 注重可维护性的评审环节。 在软件开发过程中,每一阶段的工作完成前,都必须通过严格的评审。由于软件开发过程中的每一个阶段都与产品的可维护性相关,因此对软件可维护性的评审应该贯穿于每个阶段完成前的评审活动中。,14.1.3 软件的可维护性,在需求分析阶段的评审中,应该重点标识将来有可能更改或扩充的部分。在软件设计阶段的评审中,应该注重逻辑结构的清晰性,并且尽量使模块之间的功能独立。在编码阶段的评审中,要考查代码是否遵循了统一的编写标准,是否逻辑清晰、容易理解。严格的评

12、审工作,可以从很大程度上对软件产品的质量进行控制,提高其可维护性。,14.1.1 软件维护的过程 14.1.2 软件维护的分类 14.1.3 软件的可维护性 14.1.4 软件维护的副作用,14.1 软件维护,14.1.4 软件维护的副作用,软件维护是存在风险的。对原有软件产品的一个微小的改动都有可能引入新的错误,造成意想不到的后果。软件维护的副作用主要有三类,包括修改代码的副作用、修改数据的副作用和修改文档的副作用。,14.1.4 软件维护的副作用,人类通过编程语言与计算机进行交流,每种编程语言都有严格的语义和语法结构。编程语言的微小错误,哪怕是一个标点符号的错误,都会造成软件系统无法正常运

13、行。因此,每次对代码的修改都有可能产生新的错误。虽然每次对代码的修改都可能导致新的错误产生,但是相对而言,以下修改更具危险性:,14.1.4 软件维护的副作用,删除或修改一个子程序; 删除或修改一个语句标号; 删除或修改一个标识符; 为改进性能所做的修改; 修改文件的打开或关闭模式;,14.1.4 软件维护的副作用,修改运算符,尤其是逻辑运算符; 把对设计的修改转换成对代码的修改; 修改边界条件的逻辑测试。 修改数据的副作用是指数据结构被改动时有新的错误产生的现象。,14.1.4 软件维护的副作用,重新定义局部变量或全局变量。 重新定义记录格式或文件格式。 更改一个高级数据结构的规模。 修改全

14、局数据。 重新初始化控制标志或指针。 重新排列输入/输出或子程序的自变量。,14.1.4 软件维护的副作用,文档是软件产品的一个重要组成部分,它不仅会对用户的使用过程提供便利,还会为维护人员的工作带来方便。如果对源程序的修改没有反映到文档中,或对文档的修改没有反映到源程序中,造成文档与源程序不一致,对后续的使用和维护工作都会带来极大的不便。,14.2 软件文档,文档是指某种数据介质和其中所记录的数据。软件文档是用来表示对需求、过程或结果进行描述、定义、规定或认证的图示信息,它描述或规定了软件设计和实现的细节。在软件工程中,文档记录了从需求分析到产品设计再到产品实现及测试的过程,甚至到产品交付以

15、及交付后的使用情况等各个阶段的相关信息。,14.2 软件文档,软件文档的编制在软件开发工作中占有突出的地位和相当的工作量。具体来讲,文档一方面充当了各个开发阶段之间的桥梁,作为前一阶段的工作成果及结束标志,它使分析有条不紊地过渡到设计,再使设计的成果物化为软件。,14.2 软件文档,另一方面,文档在团队的开发中起到了重要的协调作用。它告诉每个成员应该做什么,不应该做什么,应该按着怎样的要求去做,以及要遵守哪些规范。此外,还有一些与用户打交道的文档成为用户使用软件产品时最得力的助手。,14.2 软件文档,(1) 及时性。 在一个阶段的工作完成后,此阶段的相关文档应该及时地完成,而且开发人员应该根

16、据工作的变更及时更改文档,保证文档是最新的。可以说,文档的组织和编写是不断细化、不断修改、不断完善的过程。,14.2 软件文档,(2) 完整性。 应该按有关标准或规范,将软件各个阶段的工作成果写入有关文档,极力防止丢失一些重要的技术细节而造成源代码与文档不一致的情况出现,从而影响文档的使用价值。,14.2 软件文档,(3) 实用性。 文档的描述应该采用文字、图形等多种方式,语言准确、简洁、清晰、易懂。 (4) 规范性。 文档编写人员应该按有关规定采用统一的书写格式,包括各类图形、符号等的约定。此外,文档还应该具有连续性、一致性和可追溯性。,14.2 软件文档,(5) 结构化。 文档应该具有非常清晰的结构,内容上脉络要清楚,形式上要遵守标准,让人易读、易理解。 (6) 简洁性。 切忌无意义地扩充文档,内容才是第一位的。充实的文档在于用简练的语言,深刻而全面地对问题展开论述,而不在于文档的字数多少。,14.2 软件文档,14.2 软件文档,(1) 可行性研究报告:说明该软件开发项目的实现在技术上、经济上和社会因素上的可行性,评述为了合理地达到开发目标可供选择的各种可能实

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号