软件工程ppt-08软件维护课件

上传人:94****0 文档编号:240805931 上传时间:2024-05-10 格式:PPT 页数:87 大小:423.14KB
收藏 版权申诉 举报 下载
软件工程ppt-08软件维护课件_第1页
第1页 / 共87页
软件工程ppt-08软件维护课件_第2页
第2页 / 共87页
软件工程ppt-08软件维护课件_第3页
第3页 / 共87页
资源描述:

《软件工程ppt-08软件维护课件》由会员分享,可在线阅读,更多相关《软件工程ppt-08软件维护课件(87页珍藏版)》请在装配图网上搜索。

1、授课教师授课教师:梁丽梁丽西华大学计算机与数理学院西华大学计算机与数理学院授课教师:梁丽软件工程西华大学计算机与数理学院1我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物第八章第八章 软件维护软件维护n内容要点:内容要点:本章主要介绍软件维护内容本章主要介绍软件维护内容、特点、实施特点、实施及提高软件可维护性的方法。及提高软件可维护性的方法。n教学重点:教学重点:n校正性维护、适应性维护、完善性维校正性维护、适应性维护、完善性维护、预防性维护护、预防性维护n可维护性及其量度可维护性及其量度n提高可维护性方法

2、提高可维护性方法第八章 软件维护内容要点:2我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物 软件维护的概念软件维护的概念 软件维护活动软件维护活动 可维护性可维护性 提高可维护性的方法提高可维护性的方法 软件维护软件维护 软件维护的概念软件维护3我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物软件维护的概念软件维护的概念n 软件维护的定义软件维护的定义n 影响维护工作量的因素影响维护工作量的因素n 软件维护的策略软件维

3、护的策略n 维护成本维护成本软件维护的概念 软件维护的定义4我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物软件维护的定义软件维护的定义n n在软件运行维护阶段在软件运行维护阶段对软件产对软件产品进行的修改品进行的修改就是所谓的维护。就是所谓的维护。n n维护的类型有四种:维护的类型有四种:n n 改正性维护改正性维护n n 适应性维护适应性维护n n 完善性维护完善性维护n n 预防性维护预防性维护软件维护的定义在软件运行维护阶段对软件产品进行的修改就是所5我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把

4、它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物改正性维护改正性维护n n在软件交付使用后,因开发时测在软件交付使用后,因开发时测试的试的不彻底不彻底、不完全不完全,必然会有,必然会有部分隐藏的错误遗留到运行阶段。部分隐藏的错误遗留到运行阶段。n n这些隐藏下来的错误这些隐藏下来的错误在某些特定在某些特定的使用环境下就会暴露出来的使用环境下就会暴露出来。n n为了为了识别和纠正软件错误、改正识别和纠正软件错误、改正软件性能上的缺陷、排除实施中软件性能上的缺陷、排除实施中的误使用的误使用,应当进行的诊断和改,应当进行的诊断和改正错误的过程就叫做改正性维护。

5、正错误的过程就叫做改正性维护。改正性维护在软件交付使用后,因开发时测试的不彻底、不完全,必6我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物适应性维护适应性维护n n在使用过程中,在使用过程中,n n 外部环境外部环境(新的硬、软件配置新的硬、软件配置)n n 数据环境数据环境(数据库、数据格式、数据库、数据格式、数据输入数据输入/输出方式、数据存储输出方式、数据存储介质介质)可能发生变化。可能发生变化。n n为使软件适应这种变化,而去修为使软件适应这种变化,而去修改软件的过程就叫做适应性维护。改软件的过程

6、就叫做适应性维护。适应性维护在使用过程中,7我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物完善性维护完善性维护n n在软件的使用过程中,用户往往会在软件的使用过程中,用户往往会对软件提出新的对软件提出新的功能功能与与性能性能要求。要求。n n为了满足这些要求,需要修改或再为了满足这些要求,需要修改或再开发软件,以开发软件,以扩充软件功能扩充软件功能、增强增强软件性能软件性能、改进加工效率改进加工效率、提高软提高软件的可维护性件的可维护性。n n这种情况下进行的维护活动叫做完这种情况下进行的维护活动叫做完善

7、性维护。善性维护。完善性维护在软件的使用过程中,用户往往会对软件提出新的功能与8我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物n n实践表明,在几种维护活动中,完实践表明,在几种维护活动中,完善性维护所占的比重最大。善性维护所占的比重最大。即大部即大部分维护工作是改变和加强软件,而分维护工作是改变和加强软件,而不是纠错不是纠错。n n完善性维护不一定是救火式的紧急完善性维护不一定是救火式的紧急维修,而可以维修,而可以是有计划、有预谋的是有计划、有预谋的一种再开发活动一种再开发活动。n n事实证明,来自用户

8、要求扩充、加事实证明,来自用户要求扩充、加强软件功能、性能的维护活动约占强软件功能、性能的维护活动约占整个维护工作的整个维护工作的5050。实践表明,在几种维护活动中,完善性维护所占的比重最大。即大部9我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物预防性维护预防性维护n n预防性维护是为了预防性维护是为了提高软件的可维提高软件的可维护性护性、可靠性等可靠性等,为以后进一步改,为以后进一步改进软件打下良好基础。进软件打下良好基础。n n预防性维护定义为:预防性维护定义为:采用先进的软采用先进的软件工程方法对

9、需要维护的软件或软件工程方法对需要维护的软件或软件中的某一部分(重新)进行设计、件中的某一部分(重新)进行设计、编制和测试。编制和测试。预防性维护预防性维护是为了提高软件的可维护性、可靠性等,为以10我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物n n在整个软件维护阶段所花费的全部工作在整个软件维护阶段所花费的全部工作量中,量中,完善性维护占了几乎一半的工作完善性维护占了几乎一半的工作量。量。n n软件维护活动所花费的工作占整个生存软件维护活动所花费的工作占整个生存期工作量的期工作量的70%以上以上,这是

10、由于在漫长,这是由于在漫长的软件运行过程中需要不断对软件进行的软件运行过程中需要不断对软件进行修改,以修改,以改正新发现的错误改正新发现的错误、适应新的、适应新的环境和用户新的要求,这些修改需要花环境和用户新的要求,这些修改需要花费很多精力和时间,而且有时会引入新费很多精力和时间,而且有时会引入新的错误。的错误。在整个软件维护阶段所花费的全部工作量中,完善性维护占了几乎一11我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物 三类维护占三类维护占 维护在软件生存期维护在软件生存期 总维护比例总维护比例 所占比

11、例所占比例 三类维护占 维护在软件生存期 总维护12我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物影响维护工作量的因素影响维护工作量的因素n n在软件的维护过程中,需要花费在软件的维护过程中,需要花费大量的工作量,从而直大量的工作量,从而直接影响了接影响了软件维护的成本软件维护的成本。n n应当考虑应当考虑有哪些因素影响软件维有哪些因素影响软件维护的工作量护的工作量,相应,相应应该采取什么应该采取什么维护策略维护策略,才能,才能有效地维护软件有效地维护软件并并控制维护的成本控制维护的成本。影响维护工作量的

12、因素在软件的维护过程中,需要花费大量的工作量13我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物n n系统大小系统大小:系统越大,理解掌握起来:系统越大,理解掌握起来越困难。系统越大,所执行功能越复越困难。系统越大,所执行功能越复杂。因而需要更多的维护工作量。杂。因而需要更多的维护工作量。n n程序设计语言程序设计语言:使用强功能的程序:使用强功能的程序设计语言可以控制程序的规模。语言设计语言可以控制程序的规模。语言的功能越强,生成程序的模块化和结的功能越强,生成程序的模块化和结构化程度越高,所需的指令数就

13、越少,构化程度越高,所需的指令数就越少,程序的可读性越好。程序的可读性越好。系统大小:系统越大,理解掌握起来越困难。系统越大,所执行功能14我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物n n系统年龄:系统年龄:n n 老系统随着不断的修改,结构越来越老系统随着不断的修改,结构越来越乱;乱;n n 维护人员经常更换,程序又变得越来维护人员经常更换,程序又变得越来越难于理解。越难于理解。n n 许多老系统在当初并未按照软件工程许多老系统在当初并未按照软件工程的要求进行开发,因而没有文档,或文的要求进行开发,

14、因而没有文档,或文档太少。档太少。n n 在长期的维护过程中文档在许多地方在长期的维护过程中文档在许多地方与程序实现变得不一致,在维护时就会与程序实现变得不一致,在维护时就会遇到很大困难。遇到很大困难。系统年龄:15我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物n n数据库技术的应用数据库技术的应用:使用数据库,可以使用数据库,可以使用数据库,可以使用数据库,可以简单而有效地管理和存储用户程序中的数简单而有效地管理和存储用户程序中的数简单而有效地管理和存储用户程序中的数简单而有效地管理和存储用户程序中的数

15、据,还可以减少生成用户报表应用软件的据,还可以减少生成用户报表应用软件的据,还可以减少生成用户报表应用软件的据,还可以减少生成用户报表应用软件的维护工作量维护工作量维护工作量维护工作量。n n先进的软件开发技术先进的软件开发技术:在软件开发时,在软件开发时,在软件开发时,在软件开发时,若使用能使软件结构比较稳定的分析与设若使用能使软件结构比较稳定的分析与设若使用能使软件结构比较稳定的分析与设若使用能使软件结构比较稳定的分析与设计技术,及程序设计技术,如面向对象技计技术,及程序设计技术,如面向对象技计技术,及程序设计技术,如面向对象技计技术,及程序设计技术,如面向对象技术、复用技术等,可减少大量

16、的工作量。术、复用技术等,可减少大量的工作量。术、复用技术等,可减少大量的工作量。术、复用技术等,可减少大量的工作量。数据库技术的应用:使用数据库,可以简单而有效地管理和存储用户16我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物n n其它:其它:n n 应用的类型应用的类型n n 数学模型数学模型n n 任务的难度任务的难度n n 开关与标记、开关与标记、IFIF嵌套深度、索引或嵌套深度、索引或下标数等下标数等对维护工作量都有影响。对维护工作量都有影响。n n许多软件在开发时并未考虑将来的许多软件在开发时

17、并未考虑将来的修改,为软件的维护带来许多问题。修改,为软件的维护带来许多问题。其它:17我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物软件维护的策略软件维护的策略n n改正性维护改正性维护通常要生成通常要生成100可靠的软件并不一定可靠的软件并不一定合算,成本太高合算,成本太高。但通过使用新技术,可但通过使用新技术,可大大减少进行改正性维护的需要大大减少进行改正性维护的需要。这些技术包括:这些技术包括:数据库管理系统数据库管理系统、软件开软件开发环境发环境、程序自动生成系统程序自动生成系统、较高级较高级(

18、第第四代四代)的语言的语言。以及以及新的开发方法新的开发方法、软件软件复用复用、防错程序设计防错程序设计及及周期性维护审查周期性维护审查等等。软件维护的策略改正性维护18我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物n n适应性维护适应性维护这一类维护不可避免,可以控制。这一类维护不可避免,可以控制。(1)(1)在配置管理时,把硬件、操作系统和在配置管理时,把硬件、操作系统和其它相关环境因素的可能变化考虑在内其它相关环境因素的可能变化考虑在内。(2)(2)把与硬件、操作系统,以及其它外围把与硬件、操作系统

19、,以及其它外围设备有关的程序归到特定的程序模块中。设备有关的程序归到特定的程序模块中。(3)(3)使用内部程序列表、外部文件,以及使用内部程序列表、外部文件,以及处理的例行程序包,可为维护时修改程序处理的例行程序包,可为维护时修改程序提供方便。提供方便。适应性维护19我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物n n完善性维护完善性维护利用前两类维护中列举的方法,也可利用前两类维护中列举的方法,也可以减少这一类维护。特别是以减少这一类维护。特别是数据库管理系数据库管理系统统、程序生成器程序生成器、应用软

20、件包应用软件包,可减少维,可减少维护工作量。护工作量。此外,建立软件系统的原型,把它在此外,建立软件系统的原型,把它在实际系统开发之前提供给用户。用户通过实际系统开发之前提供给用户。用户通过研究原型,进一步完善他们的功能要求,研究原型,进一步完善他们的功能要求,就可以减少以后完善性维护的需要。就可以减少以后完善性维护的需要。完善性维护20我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物维护成本维护成本n n有形的软件维护成本有形的软件维护成本是花费了多少是花费了多少钱,钱,无形的维护成本无形的维护成本有更大

21、的影响。有更大的影响。n n 一些一些合理的修复或修改请求不能及合理的修复或修改请求不能及时安排时安排,使得客户不满意;,使得客户不满意;n n 变更的结果变更的结果引入新的故障引入新的故障,使得软件,使得软件整体质量下降;整体质量下降;n n 把软件人员抽调到维护工作中,干扰把软件人员抽调到维护工作中,干扰了软件开发工作。了软件开发工作。维护成本有形的软件维护成本是花费了多少钱,无形的维护成本有更21我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物n n软件维护的软件维护的代价代价是是降低了生产率降低了生

22、产率,在做老,在做老程序的维护时非常明显。程序的维护时非常明显。n n例如,例如,开发每一行源代码耗资开发每一行源代码耗资25美元美元,维维护每一行源代码需要耗资护每一行源代码需要耗资1000美元美元。n n维护工作量包括维护工作量包括生产性活动生产性活动(如分析和评(如分析和评价、设计修改和实现)和价、设计修改和实现)和“轮转轮转”活动活动(如力图理解代码在做什么、试图判明数(如力图理解代码在做什么、试图判明数据结构、接口特性、性能界限等)。据结构、接口特性、性能界限等)。软件维护的代价是降低了生产率,在做老程序的维护时非常明显。22我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样

23、一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物维护工作量的模型维护工作量的模型n n M是维护中消耗的总工作量是维护中消耗的总工作量n n p是上面描述的生产性工作量是上面描述的生产性工作量n n K是一个经验常数是一个经验常数n n c是因缺乏好的设计和文档而导致复是因缺乏好的设计和文档而导致复杂性的度量杂性的度量n n d是对软件熟悉程度的度量。是对软件熟悉程度的度量。维护工作量的模型 M是维护中消耗的总工作量23我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物n n模型

24、指明,如果使用了不好的软模型指明,如果使用了不好的软件开发方法(未按软件工程要求件开发方法(未按软件工程要求做),原来参加开发的人员或小做),原来参加开发的人员或小组不能参加维护,则工作量(及组不能参加维护,则工作量(及成本)将按指数级增加。成本)将按指数级增加。模型指明,如果使用了不好的软件开发方法(未按软件工程要求做)24我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物软件维护活动软件维护活动n n为了有效地进行软件维护,应事为了有效地进行软件维护,应事先就开始做组织工作。先就开始做组织工作。n n 首

25、先首先建立维护的机构建立维护的机构n n 申明申明提出维护申请报告的过程提出维护申请报告的过程及及评评价的过程价的过程n n 为每一个维护申请规定为每一个维护申请规定标准的处理标准的处理步骤步骤n n 建立建立维护活动的登记制度维护活动的登记制度以及规定以及规定评价和评审的标准评价和评审的标准。软件维护活动为了有效地进行软件维护,应事先就开始做组织工作。25我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物维护机构维护机构n n除了较大的软件开发公司外,通除了较大的软件开发公司外,通常在软件维护工作方面,并不

26、保常在软件维护工作方面,并不保持一个正式的组织机构。持一个正式的组织机构。n n虽然不要求建立一个正式的维护虽然不要求建立一个正式的维护机构,但是在开发部门确立一个机构,但是在开发部门确立一个非正式的维护机构则是非常必要非正式的维护机构则是非常必要的。的。维护机构除了较大的软件开发公司外,通常在软件维护工作方面,并26我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物软件维护的机构软件维护的机构软件维护的机构27我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证

27、实我的猜测没有错:表里边有一个活的生物n n维护申请维护申请提交给提交给维护管理员维护管理员,他把,他把申请交给某个申请交给某个系统监督员系统监督员去去评价评价。n n一旦做出评价,由一旦做出评价,由修改负责人修改负责人确定确定如何进行修改如何进行修改。n n在修改程序的过程中,由在修改程序的过程中,由配置管理配置管理员员严格把关,严格把关,控制修改的范围控制修改的范围,对对软件配置进行审计软件配置进行审计。n n在维护之前,就把责任明确下来,在维护之前,就把责任明确下来,可以减少维护过程中的混乱。可以减少维护过程中的混乱。维护申请提交给维护管理员,他把申请交给某个系统监督员去评价。28我吓了

28、一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物软件维护申请报告软件维护申请报告n n维护申请报告或称维护申请报告或称软件问题报告软件问题报告,由由申请维护的用户申请维护的用户填写填写。n n用户必须用户必须完整地说明产生错误的完整地说明产生错误的情况情况,包括,包括输入数据输入数据、错误清单错误清单以及以及其它有关材料其它有关材料。n n如果申请的是适应性维护或完善如果申请的是适应性维护或完善性维护,用户必须提出一份修改性维护,用户必须提出一份修改说明书,列出所有希望的修改。说明书,列出所有希望的修改。软件维护

29、申请报告维护申请报告或称软件问题报告,由申请维护的用29我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物n n维护申请报告将由维护申请报告将由维护管理员维护管理员和和系系统监督员统监督员来研究处理。来研究处理。n n他们应相应地做出他们应相应地做出软件修改报告软件修改报告,指明:指明:n n 所需修改变动的性质;所需修改变动的性质;n n 申请修改的优先级;申请修改的优先级;n n 为满足某个维护申请报告,所需的工为满足某个维护申请报告,所需的工作量;作量;n n 预计修改后的状况预计修改后的状况.维护申请

30、报告将由维护管理员和系统监督员来研究处理。30我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物n软件修改报告应提交修改负软件修改报告应提交修改负责人,经批准后才能开始进责人,经批准后才能开始进一步安排维护工作。一步安排维护工作。软件修改报告应提交修改负责人,经批准后才能开始进一步安排维护31我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物软件维护软件维护工作流程工作流程软件维护工作流程32我吓了一跳,蝎子是多么丑恶和恐怖

31、的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物n n尽管维护申请的类型不同,但都要尽管维护申请的类型不同,但都要进行同样的技术工作。进行同样的技术工作。n n 修改软件需求说明修改软件需求说明n n 修改软件设计修改软件设计n n 设计评审设计评审n n 对源程序做必要的修改对源程序做必要的修改n n 单元测试单元测试n n 集成测试集成测试(回归测试回归测试)n n 确认测试确认测试n n 软件配置评审等软件配置评审等。尽管维护申请的类型不同,但都要进行同样的技术工作。33我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个

32、美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物 在每次软件维护任务完成后进行情况评在每次软件维护任务完成后进行情况评审,对以下问题做一总结:审,对以下问题做一总结:(1)(1)在目前情况下,设计、编码、测试在目前情况下,设计、编码、测试中的哪一方面可以改进中的哪一方面可以改进?(2)(2)哪些维护资源应该有但没有哪些维护资源应该有但没有?(3)(3)工作中主要的或次要的障碍是什么工作中主要的或次要的障碍是什么?(4)(4)从维护申请的类型来看是否应当有从维护申请的类型来看是否应当有预防性维护预防性维护?情况评审对将来的维护工作如何进行会情况评审对将来的维护工作如何进

33、行会产生重要的影响。产生重要的影响。在每次软件维护任务完成后进行情况评审,对以下问题做一总结:34我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物维护档案记录维护档案记录n n程序名称程序名称n n源程序语句条数源程序语句条数n n机器代码指令条数机器代码指令条数n n所用的程序设计语言所用的程序设计语言n n程序安装的日期程序安装的日期n n程序安装后的运行次数程序安装后的运行次数n n与程序安装后运行次数有关的处与程序安装后运行次数有关的处理故障次数理故障次数n n程序改变的层次及名称程序改变的层次及名

34、称维护档案记录程序名称35我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物n n修改程序增加的源程序语句条数修改程序增加的源程序语句条数n n修改程序减少的源程序语句条数修改程序减少的源程序语句条数n n每次修改所付出的每次修改所付出的“人时人时”数数n n修改程序的日期修改程序的日期n n软件维护人员的姓名软件维护人员的姓名n n维护申请报告的名称、维护类型维护申请报告的名称、维护类型n n维护开始时间和维护结束时间、维护开始时间和维护结束时间、n n花费在维护上的累计花费在维护上的累计“人时人时”数数n

35、 n维护工作的净收益等。维护工作的净收益等。修改程序增加的源程序语句条数36我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物维护评价维护评价n n评价维护活动比较困难评价维护活动比较困难,因为缺,因为缺乏可靠的数据。乏可靠的数据。n n如果维护的档案记录做得比较好,如果维护的档案记录做得比较好,可以得出一些维护可以得出一些维护“性能性能”方面方面的度量值。的度量值。n n 每次程序运行时的平均出错次数;每次程序运行时的平均出错次数;n n 花费在每类维护上的总花费在每类维护上的总“人时人时”数;数;n n每

36、个程序、每种语言、每种维护每个程序、每种语言、每种维护类型的程序平均修改次数;类型的程序平均修改次数;维护评价评价维护活动比较困难,因为缺乏可靠的数据。37我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物n n因为维护,增加或删除每个源程序语因为维护,增加或删除每个源程序语句所花费的平均句所花费的平均“人时人时”数;数;n n 用于每种语言的平均用于每种语言的平均“人时人时”数;数;n n 维护申请报告的平均处理时间;维护申请报告的平均处理时间;n n 各类维护申请的百分比。各类维护申请的百分比。因为维护,

37、增加或删除每个源程序语句所花费的平均“人时”数;38我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物软件可维护性软件可维护性n n许多软件的维护十分困难,原因在许多软件的维护十分困难,原因在于这于这些软件的文档不全些软件的文档不全、质量差质量差、开发过程不注意采用好的方法开发过程不注意采用好的方法,忽忽视程序设计风格视程序设计风格等。等。n n许多维护要求并不是因为程序中出许多维护要求并不是因为程序中出错而提出的,而是为错而提出的,而是为适应环境变化适应环境变化或或需求变化需求变化而提出的。而提出的。n n

38、为了使得软件能够易于维护,必须为了使得软件能够易于维护,必须考虑使软件具有考虑使软件具有可维护性可维护性。软件可维护性许多软件的维护十分困难,原因在于这些软件的文档不39我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物 软件可维护性的定义软件可维护性的定义n n软件可维护性软件可维护性是指是指纠正软件系统纠正软件系统出现的错误和缺陷,以及为满足出现的错误和缺陷,以及为满足新的要求进行修改、扩充或压缩新的要求进行修改、扩充或压缩的容易程度的容易程度。n n可维护性可维护性、可使用性可使用性、可靠性可靠性是是衡

39、量软件质量的主要质量特性,衡量软件质量的主要质量特性,也是用户十分关心的几个方面。也是用户十分关心的几个方面。n n软件的软件的可维护性可维护性是是软件开发阶段软件开发阶段各个时期的关键目标各个时期的关键目标。软件可维护性的定义软件可维护性是指纠正软件系统出现的错40我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物n目前广泛使用的是用如下的七目前广泛使用的是用如下的七个特性来衡量程序的可维护性。个特性来衡量程序的可维护性。可理解性可理解性可使用性可使用性可测试性可测试性可移植性可移植性可修改性可修改性效率效

40、率可靠性可靠性n而且对于不同类型的维护,这而且对于不同类型的维护,这七种特性的侧重点也不相同七种特性的侧重点也不相同。目前广泛使用的是用如下的七个特性来衡量程序的可维护性。41我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物在各类维护中的侧重点在各类维护中的侧重点 在各类维护中的侧重点 42我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物n n这些质量特性通常体现在软件产品的这些质量特性通常体现在软件产品的许多方面许多方

41、面;n n为使每一个质量特性都达到预定的要为使每一个质量特性都达到预定的要求,需要在软件开发的各个阶段采取求,需要在软件开发的各个阶段采取相应的措施加以保证。相应的措施加以保证。n n这些质量要求要渗透到而各开发阶段这些质量要求要渗透到而各开发阶段的各个步骤当中的各个步骤当中。因此,软件的可维。因此,软件的可维护性是产品投入运行以前各阶段面向护性是产品投入运行以前各阶段面向上述各质量特性要求进行开发的最终上述各质量特性要求进行开发的最终结果。结果。这些质量特性通常体现在软件产品的许多方面;43我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我

42、的猜测没有错:表里边有一个活的生物可维护性的度量可维护性的度量n人们一直期望人们一直期望对软件的可维护对软件的可维护性做出定量度量性做出定量度量,但要做到这,但要做到这一点并不容易。一点并不容易。n常用的度量一个可维护的程序常用的度量一个可维护的程序的七种特性的方法。就是的七种特性的方法。就是n n 质量检查表质量检查表n n 质量测试质量测试n n 质量标准质量标准可维护性的度量人们一直期望对软件的可维护性做出定量度量,但要44我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物n n质量检查表质量检查表是用

43、于测试程序中某些是用于测试程序中某些质量特性是否存在的一个问题清单。质量特性是否存在的一个问题清单。n n评价者针对检查表上的每一个问题,评价者针对检查表上的每一个问题,依据自己的定性判断,回答依据自己的定性判断,回答“Yes”Yes”或者或者“No”No”。n n质量测试质量测试与与质量标准质量标准则用于定量分则用于定量分析和评价程序的质量。析和评价程序的质量。n n由于许多质量特性是相互抵触的,由于许多质量特性是相互抵触的,要要考虑几种不同的度量标准考虑几种不同的度量标准,相应,相应地去度量不同的质量特性。地去度量不同的质量特性。质量检查表是用于测试程序中某些质量特性是否存在的一个问题清单

44、45我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物1.可理解性可理解性n n可理解性表明人们通过阅读源代可理解性表明人们通过阅读源代码和相关文档,了解程序功能及码和相关文档,了解程序功能及其如何运行的容易程度。其如何运行的容易程度。n n一个可理解的程序应具备以下一一个可理解的程序应具备以下一些特性:些特性:模块化模块化,风格一致性风格一致性,不使用令人捉摸不定或含糊不清不使用令人捉摸不定或含糊不清的代码的代码,使用有意义的数据名和使用有意义的数据名和过程名过程名,结构化结构化,完整性完整性等。等。1.可

45、理解性可理解性表明人们通过阅读源代码和相关文档,了解46我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物2.可靠性可靠性n可靠性表明一个程序按照用户可靠性表明一个程序按照用户的要求和设计目标,在给定的的要求和设计目标,在给定的一段时间内正确执行的概率。一段时间内正确执行的概率。2.可靠性可靠性表明一个程序按照用户的要求和设计目标,在给47我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物度量可靠性的方法度量可靠性的方法n

46、n 根据程序错误统计数字,进行可靠性根据程序错误统计数字,进行可靠性预测预测。常用方法是利用一些常用方法是利用一些可靠性模型可靠性模型,根据程序测试时发现并排除的错误数预根据程序测试时发现并排除的错误数预测平均失效间隔时间测平均失效间隔时间。n n 根据程序复杂性,预测软件可靠性根据程序复杂性,预测软件可靠性。用程序复杂性预测可靠性,用程序复杂性预测可靠性,前提条件是前提条件是可靠性与复杂性有关可靠性与复杂性有关。因此可用复杂性。因此可用复杂性预测出错率。程序复杂性度量标准可用预测出错率。程序复杂性度量标准可用于于预测哪些模块最可能发生错误预测哪些模块最可能发生错误,以及,以及可能出现的错误类

47、型可能出现的错误类型。度量可靠性的方法 根据程序错误统计数字,进行可靠性预测。常48我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物3.可测试性可测试性n n可测试性表明论证程序正确性的容可测试性表明论证程序正确性的容易程度易程度。程序越简单,证明其正确。程序越简单,证明其正确性就越容易。而且设计合用的测试性就越容易。而且设计合用的测试用例,取决于对程序的全面理解。用例,取决于对程序的全面理解。n n一个可测试的程序应当是一个可测试的程序应当是可理解的可理解的,可靠的可靠的,简单的简单的。n n用于可测试性

48、度量的检查项目如下:用于可测试性度量的检查项目如下:n n 程序是否模块化程序是否模块化?结构是否良好结构是否良好?3.可测试性可测试性表明论证程序正确性的容易程度。程序越简49我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物n n 程序是否可理解程序是否可理解?程序是否可靠程序是否可靠?n n 程序是否能显示任意中间结果程序是否能显示任意中间结果?n n 程序是否能以清楚的方式描述它的程序是否能以清楚的方式描述它的输出输出?n n 程序是否能及时地按照要求显示所程序是否能及时地按照要求显示所有的输入有的输

49、入?n n 程序是否有跟踪及显示逻辑控制流程序是否有跟踪及显示逻辑控制流程的能力程的能力?n n 程序是否能从检查点再启动程序是否能从检查点再启动?n n 程序是否能显示带说明的错误信息程序是否能显示带说明的错误信息?程序是否可理解?程序是否可靠?50我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物4.可修改性可修改性n n可修改性表明程序容易修改的程度可修改性表明程序容易修改的程度。n n一个可修改的程序应当是一个可修改的程序应当是可理解的可理解的、通用的通用的、灵活的灵活的、简单的简单的。n n通用性是

50、指程序适用于各种功能变化通用性是指程序适用于各种功能变化而无需修改。而无需修改。n n灵活性是指能够容易地对程序进行修灵活性是指能够容易地对程序进行修改改4.可修改性可修改性表明程序容易修改的程度。51我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物n n测试可修改性的一种定量方法是测试可修改性的一种定量方法是修改练习修改练习。其基本思想是。其基本思想是通过做通过做几个简单的修改几个简单的修改,来评价修改的来评价修改的难度难度。测试可修改性的一种定量方法是修改练习。其基本思想是通过做几个52我吓了一跳,蝎子

51、是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物5.可移植性可移植性n n可移植性表明程序转移到一个新可移植性表明程序转移到一个新的计算环境的可能性的大小的计算环境的可能性的大小。或。或者它表明程序可以容易地、有效者它表明程序可以容易地、有效地在各种各样的计算环境中运行地在各种各样的计算环境中运行的容易程度。的容易程度。n n一个可移植的程序应具有一个可移植的程序应具有结构良结构良好好、灵活灵活、不依赖于某一具体计不依赖于某一具体计算机或操作系统的性能算机或操作系统的性能。n n用于可移植性度量的检查项目如用于可移植性度量

52、的检查项目如下:下:5.可移植性可移植性表明程序转移到一个新的计算环境的可能性53我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物n 是否是用高级的独立于机器的语是否是用高级的独立于机器的语言来编写程序言来编写程序?n 是否使用广泛使用的标准化的是否使用广泛使用的标准化的程序设计语言来编写程序程序设计语言来编写程序?是否是否仅使用了这种语言的标准版本和仅使用了这种语言的标准版本和特性特性?n 程序中是否使用了标准的普遍程序中是否使用了标准的普遍使用的库功能和子程序使用的库功能和子程序?n 程序中是否极少使用

53、或根本不程序中是否极少使用或根本不使用操作系统的功能使用操作系统的功能?是否是用高级的独立于机器的语言来编写程序?54我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物n n程序在执行之前是否初始化内存程序在执行之前是否初始化内存?n n 程序在执行之前是否测定当前的输程序在执行之前是否测定当前的输入输出设备入输出设备?n n 程序是否把与机器相关的语句分离程序是否把与机器相关的语句分离了出来,集中放在了一些单独的程了出来,集中放在了一些单独的程序模块中,并有说明文件序模块中,并有说明文件?n 程序是否结构化

54、程序是否结构化?并允许在小一些并允许在小一些的计算机上分段的计算机上分段(覆盖覆盖)运行运行?n n 程序中是否避免了依赖于字母数字程序中是否避免了依赖于字母数字或特殊字符的内部位表示或特殊字符的内部位表示?程序在执行之前是否初始化内存?55我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物6.效率效率n n效率表明一个程序能执行预定功能效率表明一个程序能执行预定功能而又不浪费机器资源的程度而又不浪费机器资源的程度。n n这些机器资源包括这些机器资源包括内存容量内存容量、外存外存容量容量、通道容量通道容量和和

55、执行时间执行时间。n n用于效率度量的检查项目如下用于效率度量的检查项目如下:n n 程序是否模块化程序是否模块化?结构是否良好结构是否良好?n n 是否消除了无用的标号与表达式,是否消除了无用的标号与表达式,以充分发挥编译器优化作用以充分发挥编译器优化作用?6.效率效率表明一个程序能执行预定功能而又不浪费机器资源的56我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物n n 程序的编译器是否有优化功能程序的编译器是否有优化功能?n n 是否把特殊子程序和错误处理子是否把特殊子程序和错误处理子程序都归入了单独

56、的模块中程序都归入了单独的模块中?n n 是否以快速的数学运算代替了较是否以快速的数学运算代替了较慢的数学运算慢的数学运算?n n 是否尽可能地使用了整数运算,是否尽可能地使用了整数运算,而不是实数运算而不是实数运算?n n 是否在表达式中避免了混合数据是否在表达式中避免了混合数据类型的使用,消除了不必要的类类型的使用,消除了不必要的类型转换型转换?程序的编译器是否有优化功能?57我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物n 程序是否避免了非标准的函数程序是否避免了非标准的函数或子程序的调用或子程序的

57、调用?n 在几条分支结构中,是否最有在几条分支结构中,是否最有可能为可能为“真真”的分支首先得到的分支首先得到测试测试?n 在复杂的逻辑条件中,是否最在复杂的逻辑条件中,是否最有可能为有可能为“真真“的表达式首先的表达式首先得到测试得到测试?程序是否避免了非标准的函数或子程序的调用?58我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物7.可使用性可使用性n n从用户观点出发,从用户观点出发,可使用性定义可使用性定义为程序方便、实用、及易于使用为程序方便、实用、及易于使用的程度的程度。一个可使用的程序应是。一

58、个可使用的程序应是易于使用的易于使用的、能允许用户出错和能允许用户出错和改变改变,并,并尽可能不使用户陷入混尽可能不使用户陷入混乱状态的乱状态的程序。程序。n n用于可使用性度量的检查项目如用于可使用性度量的检查项目如下:下:n n 程序是否具有自描述性程序是否具有自描述性?7.可使用性从用户观点出发,可使用性定义为程序方便、实用、59我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物n n 程序是否能始终如一地按照用户程序是否能始终如一地按照用户的要求运行的要求运行?n n 程序是否让用户对数据处理有一程序

59、是否让用户对数据处理有一个满意的和适当的控制个满意的和适当的控制?n n 程序是否容易学会使用程序是否容易学会使用?n n 程序是否使用数据管理系统来自程序是否使用数据管理系统来自动地处理事务性工作和管理格式动地处理事务性工作和管理格式化、地址分配及存储器组织。化、地址分配及存储器组织。n n 程序是否具有容错性程序是否具有容错性?n n 程序是否灵活程序是否灵活?程序是否能始终如一地按照用户的要求运行?60我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物其它间接定量度量可维护性的方法其它间接定量度量可维护

60、性的方法n n问题识别的时间;问题识别的时间;n n因管理活动拖延的时间;因管理活动拖延的时间;n n收集维护工具的时间;收集维护工具的时间;n n分析、诊断问题的时间;分析、诊断问题的时间;n n修改规格说明的时间;修改规格说明的时间;n n具体的改错或修改的时间;具体的改错或修改的时间;n n局部测试的时间;局部测试的时间;n n集成或回归测试的时间;集成或回归测试的时间;n n维护的评审时间;维护的评审时间;其它间接定量度量可维护性的方法问题识别的时间;61我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的

61、生物n这些数据反映了维护全过程中这些数据反映了维护全过程中检错检错纠错验证纠错验证的周期,即的周期,即从检测出从检测出软件存在的问题开始至修正它们并软件存在的问题开始至修正它们并经回归测试验证这段时间经回归测试验证这段时间。n可以粗略地认为,可以粗略地认为,这个周期越短,这个周期越短,维护越容易维护越容易。这些数据反映了维护全过程中检错纠错验证的周期,即从检测出62我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物提高可维护性的方法提高可维护性的方法n n建立明确的软件质量目标和优先级建立明确的软件质量目标和

62、优先级n n使用提高软件质量的技术和工具使用提高软件质量的技术和工具n n进行明确的质量保证审查进行明确的质量保证审查n n选择可维护的程序设计语言选择可维护的程序设计语言n n改进程序的文档改进程序的文档提高可维护性的方法建立明确的软件质量目标和优先级63我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物建立明确的软件质量目标和优先级建立明确的软件质量目标和优先级n n一个可维护的程序应是一个可维护的程序应是可理解的可理解的、可靠的可靠的、可测试的可测试的、可修改的可修改的、可移植的可移植的、效率高的效率高

63、的、可使用的可使用的。n n要实现这所有的目标,需要付出要实现这所有的目标,需要付出很大的代价,而且也不一定行得很大的代价,而且也不一定行得通。通。n n某些质量特性是相互促进的某些质量特性是相互促进的,例,例如可理解性和可测试性、可理解如可理解性和可测试性、可理解性和可修改性。性和可修改性。建立明确的软件质量目标和优先级一个可维护的程序应是可理解的、64我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物n n另一些质量特性是相互抵触的另一些质量特性是相互抵触的,如,如效率和可移植性、效率和可修改性效率和可移

64、植性、效率和可修改性等。等。n n每一种每一种质量特性质量特性的的相对重要性相对重要性应随应随程序的用途及计算环境的不同而不程序的用途及计算环境的不同而不同同。例如,对编译程序来说,可能。例如,对编译程序来说,可能强调效率;但对管理信息系统来说,强调效率;但对管理信息系统来说,则可能强调可使用性和可修改性。则可能强调可使用性和可修改性。n n应当对程序的质量特性,在应当对程序的质量特性,在提出目提出目标标的同时还必须的同时还必须规定它们的优先级规定它们的优先级。另一些质量特性是相互抵触的,如效率和可移植性、效率和可修改65我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界

65、里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物使用提高软件质量的技术和工具使用提高软件质量的技术和工具n模块化模块化n n 如果需要改变某个模块的功能,如果需要改变某个模块的功能,则只要改变这个模块,对其它模则只要改变这个模块,对其它模块影响很小;块影响很小;n n 如果需要增加程序的某些功能,如果需要增加程序的某些功能,则仅需增加完成这些功能的新的则仅需增加完成这些功能的新的模块或模块层;模块或模块层;n n 程序的测试与重复测试比较容程序的测试与重复测试比较容易;易;n n 程序错误易于定位和纠正;程序错误易于定位和纠正;使用提高软件质量的技术和工具模块化66我吓了一跳,

66、蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物n结构化程序设计结构化程序设计n n 程序被划分成分层的模块结构;程序被划分成分层的模块结构;n n 模块调用控制必须从模块的入模块调用控制必须从模块的入口点进入,从其出口点退出。口点进入,从其出口点退出。n n 模块的控制结构仅限于顺序、模块的控制结构仅限于顺序、选择、重复三种,且没有选择、重复三种,且没有GOTO语句。语句。n n 每个程序变量只用于唯一的程每个程序变量只用于唯一的程序目的,而且变量的作用范围序目的,而且变量的作用范围应是明确的、有限制的。应是明确的、有限制的。结构化程序设计67我吓了一跳,蝎子是多么丑恶和恐怖的东西,为什么把它放在这样一个美丽的世界里呢?但是我也感到愉快,证实我的猜测没有错:表里边有一个活的生物n n使用结构化程序设计技术,提高现有使用结构化程序设计技术,提高现有系统的可维护性系统的可维护性n n 采用备用件的方法采用备用件的方法用一个新的结用一个新的结构良好的模块替换掉整个要修改的模构良好的模块替换掉整个要修改的模块。块。n

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!