第八章 GIS软件维护工程.ppt_第1页
第八章 GIS软件维护工程.ppt_第2页
第八章 GIS软件维护工程.ppt_第3页
第八章 GIS软件维护工程.ppt_第4页
第八章 GIS软件维护工程.ppt_第5页
已阅读5页,还剩34页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第八章 GIS软件维护工程,第一节 概述 第二节 软件系统的维护 第三节 软件维护活动 第四节 程序修改的步骤及副作用 第五节 软件可维护性,第一节 概述,维护阶段是软件生存周期中时间最长的一个阶段,所花费的精力和费用也是最多的一个阶段。 一 软件维护的类型 (1)非结构化维护 软件开发过程中,如果不采用软件工程的方法开发软件,则软件只有程序没有文档,维护工作非常困难,此时的维护称为非结构化维护。 (2)结构化维护 采用软件工程的方法开发软件,各阶段有相应文档,容易维护,称为结构化维护。,二 软件维护的困难 软件维护的困难主要由软件需求分析和开发方法的缺陷引起。如果在软件开发阶段没有科学的管理

2、和规划,就会引起软件运行时的维护困难。 软件维护困难主要在以下几个方面 (1)读懂别人的程序是困难的 (2)文档的不一致性,表现在各种文档之间的不一致以及文档与程序之间的不一致 (3)软件开发和维护在人员和时间上的差异 (4)软件维护不是一项吸引人的工作,三 软件维护的费用 软件维护的费用在总费用中的比重是不断增加的,它在1920年占3540,1980年上升到4060,1990年上升到3540。 软件维护费用不断上升,这只是软件维护有形的代价,另外还有无形的代价,即要占用更多的资源。,四 软件维护的分类 软件维护有改正性维护、适应性维护、完善性维护和预防性维护四类。 (1)改正性维护 为了识别

3、和纠正软件错误、改正软件性能上的缺陷、排除实施中的错误使用,应当进行的诊断和改正错误的过程,称为改正性维护。 (2)适应性维护 为了适应系统外部环境(新的硬件和软件配置)或数据环境(数据库、数据格式、数据输入方式)的变化而修改软件的过程称为适应性维护。,(3)完善性维护 在软件的使用过程中,用户会对软件提出新的功能与性能要求。为了满足这些要求,需要修改或再开发软件,以扩充功能、增强性能、改进效率、提高可维护性。这种维护称为完善性维护。 (4)预防性维护 预防性维护是为了提高软件的可维护性、可靠性等,为进一步改进软件而进行的维护。 预防性维护通常定义为:把今天的方法学用于昨天的系统以满足明天的需

4、要。,完善性维护50,适应性维护25,改正性维护20,预防性维护5,维护70.8,四种维护所占的比例,维护在软件生存周期所占的比例,第二节 软件系统的维护,一 概述 软件系统维护的内容包括数据维护、硬件维护和软件本身的维护等。 1 数据维护 基础地理信息和专题地理信息都需要进行经常的维护和更新。 应根据系统的规模和实际需求,建立系统的数据维护更新机制,规定系统数据维护更新的周期,使系统的所有数据都相对地处于最新的状态。,2 硬件维护 在GIS软件运行中,应建立硬件设备的日常维护制度,并根据设备的使用说明进行及时的维护,以保证设备完好和系统的正常运行。如果硬件太差,可以考虑硬件更新。 3 软件维

5、护的原因 (1)需要改正在特定的使用条件下暴露出来的一些潜在程序错误或设计缺陷; (2)数据环境发生变化或处理环境发生变化,需要修改软件以适应这种变化; (3)用户和数据处理人员在使用时经常提出改进现有功能、增加新的功能以及改善性能的要求。,二 软件维护的过程 1 确定要进行维护的类型,如校正性维护、适应性维护和完善性维护等。 2 对校正性维护从评价错误的严重性开始。如果存在严重错误,则立即开始分析问题,如果错误不严重,则校正性维护与其他维护同时进行。 3 适应性和完善性维护。 4 实施维护任务,所有的维护类型都要开展修改软件设计、代码修改、单元测试、集成测试等过程,不过每一种维护类型的侧重点

6、不同。 5 “救火”维护,指对突发性的重大故障的维护。,三 软件维护技术 软件维护技术有两种,即面向维护的技术和维护支援技术。面向维护的技术是在软件开发阶段用来减少错误、提高软件可维护性的技术;维护支援技术是在软件维护阶段用来提高维护作业的效率和质量的技术。 1 面向维护的技术 面向维护的技术设计涉及到软件开发的所有阶段。需求分析阶段对需求的严格分析和定义,设计阶段结构化分析和设计方法,编码阶段采用灵活的数据结构和良好的程序设计风格,测试阶段保存测试用例和测试数据等。,2 维护支援技术 维护支援技术包括下列各方面的技术 信息收集 错误原因分析 软件分析与理解 维护方案评价 代码与文档修改 修改

7、后的确认 远距离的维护,四 影响维护工作量的因素 (1)系统大小,可以根据源程序语句数、程序数、输入输出文件数、数据库所占字节数以及预定义的用户报表数来度量。 (2)程序设计语言,使用功能强的程序设计语言可以控制程序的规模。 (3)系统的年龄,老系统比新系统需要更多的维护工作量。 (4)数据库技术的应用 (5)先进的软件开发技术 (6)应用类型、数学模型、任务难度等都对维护有一定的影响。,五 软件维护的策略 针对三种典型的维护,James等人提出了一些相应策略。 1 改正性维护 通过使用新技术,可以大大提高可靠性,减少改正性维护的需要,这些技术包括数据库管理技术、软件开发环境、程序自动生成系统

8、、较高级语言等。 此外,利用应用软件包可以开发可靠性更高的软件;采用结构化技术使软件易于理解和测试;防错性程序设计;周期性维护审查。,2 适应性维护 这一类维护不可避免,但是可以控制。 (1)在配置管理时,把硬件、操作系统和其他相关环境因素的可能变化考虑在内,可以减少某些适应性维护的工作量; (2)把与硬件、操作系统以及其他外围设备有关的程序归到特定的程序模块中,可以把因环境变化而必须修改的程序局限于某些程序模块之中。 (3)使用内部程序列表、外部文件,以及处理的例行程序包,可以为维护时修改程序提供方便。,3 完善性维护 前面的方法也可以减少完善性维护。特别是数据库管理系统、程序生成器、应用软

9、件包,可以减少系统或程序员的维护工作量。 建立软件系统的原型,在实际系统开发之前提供给用户,用户通过研究原型,进一步完善他们的功能要求,可以减少以后完善性维护的需要。,六 维护成本 维护工作量可以分成生产性活动(如分析和评价、设计修改和实现)和“轮转”活动(如力图理解代码在做什么,试图判明数据结构、接口特征、性能界限等)。维护工作量的模型为: MpKecd 其中:M是维护中消耗的总工作量,p是上面描述的生产性工作量,K是一个经验常数,c是因缺乏好的设计和文档而导致复杂性的度量,d是对软件熟悉程度的度量。,第三节 软件维护活动,为了有效进行软件维护,需要建立维护的机构,申明提出维护申请报告的过程

10、及评价的过程,为每一个维护申请规定标准的处理步骤,建立维护活动的等级制度以及规定评价和评审的标准。 一 软件维护机构 除了较大的软件开发公司外,软件维护并没有一个正式的组织机构。但是在开发部门,建立一个非正式的维护机构是十分必要的。 下图是一个维护机构的组织方案。,维护管理员、系统监督员、修改负责人等都代表维护工作的某个职责范围。修改负责人和维护管理员可以是指定的某个人,也可以是一个包括管理人员和技术人员在内的小组。,二 软件维护申请报告 软件维护组织提供维护申请报告,由申请维护的用户填写。 如果是改正性维护,用户需要完整说明产生错误的情况,包括输入数据、错误清单及其他有关材料;如果申请的是适

11、应性维护或完善性维护,用户必须提出一份修改说明书,列出所有希望的修改。 维护申请报告是软件维护的基础,由维护管理员和系统监督员研究处理,需要对其进行相应的修改。修改后应提交给修改负责人,经批准后才能开始进行维护工作。,三 软件维护的流程,确定更改要求,维护人员,用户,判明维护类型,评价优先次序,评价错误严重程度,开始问题分析,安排改正性维护,开始问题分析,维护实施,复审,维护要求,改正性,完善性,适应性,错误改正列入计划,低,高,把安排好的开发工作量列入计划,不严重,严重,救火,人员安排,人员安排,修改过的软件,理解程序并分析原设计,安排计划修改程序,测试过的程序,通过并交付使用的软件,四 软

12、件维护记录 为了估计软件维护的有效程度,确定软件产品的质量,需要在维护过程中做好维护档案记录。 内容包括: 程序名称、源程序语句条数、机器代码指令条数、所用的程序设计语言、程序安装的日期、程序安装后的运行次数、与程序安装后运行次数有关的处理故障次数、程序改变的层次及名称、修改程序所增加和减少的源程序语句条数、每次修改所付出的时间、修改程序的日期、维护人员名单等等。,五 软件维护活动的评价 维护活动的评价比较困难,可以根据维护的档案记录作出一些参考度量值。 (1)每次程序运行的平均出错次数 (2)花费在每类维护上的总“人时”数 (3)每个程序、语言、维护类型的修改次数 (4)增加或删除每个源程序

13、语句的时间 (5)用于每种语言的平均“人时”数 (6)维护申请报告的平均处理时间 (7)各类维护申请的百分比,第四节 程序修改的步骤及副作用,修改源程序需要经历以下三个步骤。 一 分析和理解程序 在这个过程中,必须做到 (1)理解程序的功能和目标 (2)掌握程序的结构信息 (3)了解数据流信息 (4)了解控制流信息 (5)理解程序的操作要求,二 修改程序 1 设计程序的修改计划 修改计划的内容主要包括: (1)规格说明信息:数据修改、处理修改、作业控制语言修改、系统之间接口修改等; (2)维护资源:新程序版本、测试数据、所需的软件系统、计算机时间等; (3)人员:程序员、用户相关人员、技术支持

14、人员、数据录入人员等; (4)提供:纸面、计算机媒体等,2 修改代码的要求 (1)正确有效地编写修改代码 (2)尽量保持程序的风格及格式,谨慎修改 (3)不要删除程序语句,除非肯定其无用 (4)为了避免冲突或混淆用途,应自行设置变量,不要共用已有的临时变量或工作区 (5)插入错误检测语句 (6)在修改过程中做好详细记录,消除变更中任何有害的副作用。,3 修改程序的副作用 因修改软件而造成的错误或其他不希望出现的情况,称为修改程序的副作用或维护的副作用。 (1)代码的副作用 修改源代码所引入的错误,如删除或修改一个子程序、删除或修改一个标号、标识符等。 (2)数据的副作用 数据副作用是修改软件数

15、据结构导致的结果,如重新定义记录或文件格式、修改公共数据等。 (3)文档的副作用 如果对可执行软件的修改不反映在文档,就会产生文档的副作用。,三 重新验证程序 修改后程序提交用户之前需要进行确认和测试 1 静态确认 为了能够作出正确的判断,验证修改后的程序至少需要两个人参加,需要检查 (1)修改是否涉及到规格说明?结果是否符合规格说明?有没有歪曲规格说明? (2)程序修改是否足以修正软件中的问题?源程序代码有无逻辑错误?修改时有无修补失误? (3)修改部分对其他部分有无副作用?,2 计算机确认 用计算机对修改程序进行确认测试 (1)确认测试顺序:先对修改部分进行测试,然后隔离修改部分,测试程序

16、的未修改部分,最后进行集成测试。这种测试称为回归测试。 (2)准备标准的测试用例 (3)充分利用软件工具帮助重新验证过程 (4)在重新确认过程中,需要邀请用户参加。,3 维护后的验收 (1)全部文档是否完备,并已经更新 (2)所有测试用例和测试结果已经正确记载 (3)记录软件配置所有副本的工作已经完成 (4)维护工序和责任已经确定 验收标准可以用相应的表格来说明。,第五节 软件可维护性,一 软件可维护性定义 软件可维护性是指纠正软件系统出现错误和缺陷、以及为满足新的要求进行修改、扩充或压缩的容易程度。可维护性主要特征及侧重点(见表)。,二 软件可维护性度量 1 可理解性 通过阅读源代码和相关文

17、档,了解程序功能及其如何运行的容易程度。 衡量方法9010测试 将待测试源程序清单阅读10分钟,如果能够凭记忆写出该程序的90%,则认为具有可理解性。 2 可靠性 表明程序在给定时间内正确执行的概率,度量的标准有平均失效间隔时间、平均修复时间以及有效性等。,3 可测试性 表明论证程序正确性的容易程度。对于程序模块,可以用程序复杂性来度量可测试性,程序复杂性越大,测试的难度就越大。 4 可修改性 表明程序容易修改的程度。 测试可修改性的一种定量方法是修改练习,基本思想是通过做几个简单的修改评价修改的难度。 设C是各个模块的平均复杂性,n是必须修改的模块数,A是要修改的模块的平均复杂度,则 DA/

18、C 若D1,则说明该程序修改困难。,5 可移植性 可移植性表明程序有效地在各种计算环境中运行的容易程度。 6 效率 表明一个程序能执行预定功能而又不浪费机器资源的程度。机器资源包括内外存容量、通道容量和执行时间等。 7 可使用性 程序方便、实用和易于使用的程度。 8 其他间接定量度量可维护性的方法 如问题识别的时间、收集维护工具的时间、分析和诊断问题的时间等。,三 提高可维护性的方法 1 建立明确的软件质量目标和优先级 2 使用提高软件质量的技术和工具 (1)模块化 (2)结构化程序设计 (3)使用结构化程序设计技术 采用备用件的方法 采用自动重建结构和重新格式化的工具 改进现有程序的不完善文档 采用结构化小组程序设计的思想和结构文档工具,3 进行明确的质量保证审查 (1)在检查点进行复审 在每一开发阶段的终点设置检查点进行检查。 (2)验收检查 交付使用前的最后一次检查。 (3)周期性维护审查 (4)对软件包进行检查,4 选择可维护的程序设计语言,第一代语言,第二代语言,第三代语言,第四代语言,机器语言,汇编语言,高级语言,查询语言、报表生成语言、图像语言,可维护性

温馨提示

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

评论

0/150

提交评论