第五章GIS实施、维护与评价ppt课件.ppt
地理信息系统设计与实现,资源环境与旅游学院,第五章 应用型GIS实施、评价与维护,系统实施阶段的任务,程序编写的组织管理,系统测试与评价,LOGO,5.1系统实施阶段的任务,系统实施是开发应用型GI5的最后一个阶段,其主要内容包括程序编制与调试、数据准备与数据库建立、系统评价与实验,此外还包括人员技术培训等。,LOGO,系统实施阶段的任务,(1)硬件准备 硬件设备包括计算机、输入瀚出设备、存储设备、辅助设备(稳压电源、空调设备等)及通信设备等。要购置、安装、调试这些设备。这方面的工作要花费大量的人力、物力,持续相当长的时间。 (2)软件准备 软件设备包括系统软件、数据库管理系统以及一些应用程序。这些软件有些需要购买,有些需要组织人力编写,这也需要相当多的人力、物力和时间。编写程序是这一阶段的主要任务之一。,5.1系统实施阶段的任务,LOGO,系统实施阶段的任务,(3)人员培训 主要指用户的培训,用户包括主管人员和业务人员。系统投入运行后,他们将在系统中工作。 (4)数据准备 数据的收集、整理、录入是一项既烦琐,劳动量又大的工作。如果没有一定基础数据的准备,系统调试就不能很好地进行。一般说来,确定数据库物理模型之后,就应进行数据的整理、录入。(5)系统安装与调试软件的安装与调试,系统软硬件的综合调试。,5.1系统实施阶段的任务,LOGO,5.2程序编写的组织管理5.2.1程序编写工作的特点,程序编写工作的特点,(1)是系统实施的本质内容,其产品就是一套程序,是GIS开发最终的主要成果。(2)是一项系统工程。投入大量的人力、物力,其目的就在于研制出一个成功的软件产品。(3)程序员的组织管理工作至关重要。 软件生产首先是个人的脑力劳动,程序员各自独立地完成各自的任务,互相之间并没有直接的联系,工作量和效率取决于程序员自身的能力和各自的态度。 大型软件由于它的规模太大,必须由许多人共同完成。,LOGO,程序编写工作的实施,5.2程序编写的组织管理5.2.2程序编写工作的实施,编程就是为各个模块编写程序。这是系统实现阶段的核心工作。在系统开发的各个阶段中,编程是最容易,也是人们己掌握得较好的一项工作。 程序员的水平决定了程序的水平。,LOGO,程序设计语言的三个级别,5.2程序编写的组织管理5.2.2程序编写工作的实施,程序设计语言的三个级别,LOGO,程序设计语言的选择原则,1、程序语言的选择原则,(1)考虑编程的效率及代码的可读性;(2)要符合详细设计的要求;(3)采用通用语言;(4)考虑到程序的执行效率以及对某些特殊硬件的控制和操作要求。(5)考虑编码与维护成本;(6)根据开发的不同规模,选择适合的高级语言;(7)不同平台采用不同的语言;(8)系统的兼容性与可移殖性。,5.2程序编写的组织管理5.2.2程序编写工作的实施,LOGO,程序设计的风格要求层次清晰、结构分明、易读好懂。对于编写一个大型系统,需要多个程序员之间分工协作,这时就更需要保持良好而统一的编程风格,以利于相互通讯,减少因不协调而引起的问题。,程序设计风格要求,2、程序设计的风格要求,(1)层次清晰、结构分明、易读好懂。(2)对于编写一个大型系统,需要多个程序员之间分工协作,这时就更需要保持良好而统一的编程风格,以利于相互通讯,减少因不协调而引起的问题。,5.2程序编写的组织管理5.2.2程序编写工作的实施,LOGO,良好的编程风格,5.2程序编写的组织管理5.2.2程序编写工作的实施,3、良好的编程风格,在适当的位置应该加入必要的注解 数据说明应以方便阅读、理解、查找和维护为目的 变量名等标识符应作到恰如其分地表达内容含义 注意声明次序的标准化 不同变量在同一语句中声明时,应按字母先后顺序排列 语句书写应有层次感,便于理解 程序组织应具有固定的层次 数据输入应进行完整性检查,格式力求统一、简单,应有必要的提示信息及友好的用户界面 对输出的结果应采用良好的格式,并加以必要的说明,LOGO,代码实例,Int Press(int *image, int height, int width, struct LZW *result)/*Press 是一数据压缩模块,其返回值如非0表示有错,其中参数含义如下:image为一个二维整型数组,用于存放图象数据height为图象的高度,width为图象的宽度result为存放压缩数据的数组,其类型定义为,struct LZWint node; int number;*/ int i,j,k,temp,n;/*i, j为循环控制变量,k存放压缩游程长度,temp存放游程内容,n存放数组result的成员号码*/,for (i=0; iwidth;i+) /*按图象的宽度循环*/ if(temp!=imageji) /*判断是否为同一游程*/ resultn.node=temp; /*记录最终游程内容*/ resultn.number=k; k=1; temp=imageji; resultn.node=temp; /*记录初始游程内容*/ resultn.number=k; else k+; /*游程长度加一*/return(0); /*模块返回*/,LOGO,编程顾及的因素,4、编程需顾及的因素,(1)运算速度;(2)对硬、软件环境的依赖程度,对计算机内存的要求;(3)算法的复杂程度:(4)程序的可靠性和适用性:(5)程序调试代价要低:(6)程序要便于修改和维护。,5.2程序编写的组织管理5.2.2程序编写工作的实施,LOGO,编程格式,5、编程格式,(l)程序名称;(2)程序功能;(3)程序设计算法;(4)程序使用方法;(5)需要的存储空间、设备和操作系统;(6)程序设计语言;(7)程序使用的数据文件:(8)其他有关说明等。,5.2程序编写的组织管理5.2.2程序编写工作的实施,LOGO,5.3空间数据库建库,空间数据库建库,步骤:(1)数据准备与预处理(2)数据采集(3)数据处理(4)建库,LOGO,5.3空间数据库建库,空间数据库建库,(1)数据准备与预处理 选择数据源 预处理转换成空间数据库可用的数据 (2)数据采集 主要进行数字化(3)数据处理 编辑图形数据 录入属性数据(4)建库,LOGO,5.4程序的调试与安装 5.4.1程序调试的任务与步骤,程序调试的任务,1、程序调试的任务,进一步论断、改正程序中的错误。,LOGO,5.4程序的调试与安装 5.4.1程序调试的任务与步骤,程序调试的步骤,2、程序调试的步骤,(1)选取足够的测试数据对程序进行试验,记录发生的错误。 (2)定位程序中错误的位置,确定是哪个模块内部发生了错误或模块间调用的错误。 这是调试工作的主要内容,约占调试总工作量的95%。 (3)通过研究程序源代码,找出故障原因,并改正错误。,LOGO,5.4程序的调试与安装 5.4.1程序调试的任务与步骤,程序调试的步骤,LOGO,5.4程序的调试与安装 5.4.2 系统安装,系统安装,概念狭义:侠义的系统安装指的就是GIS软件被安装到计算机的硬盘上。广义:包括硬件、软件;包括安装、调试(1)系统硬件的安装(2)系统硬件的调试(诊断错误 )(3)系统软件的安装(安装相关的支持软件 )(4)系统软件的测试(5)系统的综合调试(软件硬件的协调性调试),LOGO,5.5 系统测试与评价,为什么要测试与评价,(1)GIS软件的开发在经过分析、设计和实施等环节后,整个开发计划接近完成,经适当的补充和完善就可以推向市场或交付客户使用。(2)系统开发者作为一个商品生产者把商品(指GIS软件)推向市场所需要了解:软件系统(包括基础型、专用型和专题应用型)的 性能和功能指标如何。市场潜力如何。(3)把握好系统各性能指标 能够对开发出来的产品进行比较准确的市场定位,寻找潜在用户,扩大产品的商业应用前景。 可给用户以全面、总体的认识,了解产品是否真正符合本部门或本系统的工作要求。 获知软件是否具有进一步扩展的能力以满足今后该部门发展,有效地避免不必要的浪费和重复投资。,软件测试,LOGO,5.5 系统测试与评价 5.5.1 GIS软件测试,测试方法 静态测试 动态测试,软件测试的方法,白盒测试黑盒测试,LOGO,5.5 系统测试与评价 5.5.1 GIS软件测试,静态测试 指不运行被测程序本身,仅通过分析或检查源程序的语法、结构、过程、接口等来检查程序的正确性。(1)软件审查 依赖于人工的方法进行检查。包括代码审查与设计审查。(2)静态排演 通过评论与提问等方式寻找错误(3)检查 主要检查代码和设计的一致性,代码对标准的遵循、可读性,代码的逻辑表达的正确性,代码结构的合理性等方面,软件测试的方法,LOGO,5.5 系统测试与评价 5.5.1 GIS软件测试,动态测试 通过运行程序测试软件称为动态测试。在动态测试中,通常使用白盒测试和黑盒测试从不同的角度设计测试用例,查找软件代码中的错误。包括白盒测试与黑盒测试。,软件测试的方法,LOGO,软件测试的方法,(1)白盒测试 又称 透明盒测试、结构测试等 在白盒测试时,以编程语言的角度来设计测试案例。测试者输入数据验证数据流在程序中的移动路径,并确定适当的输出,类似测试电路中的节点。,LOGO,软件测试的方法,(2)黑盒测试 又称功能测试、数据驱动测试或基于规格说明的测试。 测试者不了解程序的内部情况,不需具备应用程序的代码、内部结构和编 程语言的专门知识。只知道程序的输入、输出和系统的功能,这是从用户的角度针对软件界面、功能及外部结构进行测试,而不考虑程序内部逻辑结构。,LOGO,5.5 系统测试与评价 5.5.1 GIS软件测试,软件测试的过程,根据动态测试在软件开发过程中所处的阶段和作用,动态测试可分为如下几个步骤: (1)单元测试 (2)组装测试(集成测试) (3)确认测试(有效性测试) (4)系统测试,LOGO,5.5 系统测试与评价 5.5.1 GIS软件测试,单元测试,测试内容:(1)模块接口(确保模块的输入/输出参数信息是正确的)(2)局部数据结构(确保临时存储的数据在算法执行的整个过程中都能维持其完整性 )(3)重要的执行路径(确保模块中的所有语句都至少执行一次 )(4)错误处理(解决程序对错误的解决能力)(5)边界条件(确保程序单元在极限或严格的情况下仍能正确地执行),是针对程序中的模块或构件,主要揭露编码阶段产生的错误。,软件测试的过程,LOGO,5.5 系统测试与评价 5.5.1 GIS软件测试,测试过程:(1)在测试模块时,必须为每个被测模块开发一个驱动(driver)程序和若干个桩(stub)模块。,软件测试的过程,LOGO,5.5 系统测试与评价 5.5.1 GIS软件测试,(2)驱动模块接收测试数据,调用被测模块,把测试数据传送给被测模块,被测模块执行后,驱动模块接收被测模块的返回数据,并打印相关结果。,驱动程序的程序结构:数据说明;初始化;输入测试数据;调用被测模块;输出测试结果; 停止,软件测试的过程,LOGO,5.5 系统测试与评价 5.5.1 GIS软件测试,(3)桩模块的功能是替代被被测模块调用的模块,它接受被测模块的调用,验证入口信息,把控制连同模拟结果返回给被测模块。,驱动程序的程序结构:数据说明初始化输出提示信息(表示进入了哪个桩模块验证调用参数打印验证结果将模拟结果送回被测程序 返回,软件测试的过程,LOGO,5.5 系统测试与评价 5.5.1 GIS软件测试,集成测试,集成测试 也称组装测试、联合测试。 针对集成的软件系统,主要揭露设计阶段产生的错误。,软件测试的过程,LOGO,5.5 系统测试与评价 5.5.1 GIS软件测试,经单元测试后,每个模块都能独立工作,但把它们放在一起往往不能正常工作。主要问题在于: 数据可能在通过接口时丢失 一个模块可能对另一个模块产生产生非故意的、有害的影响(即副作用) 当子功能被组合起来时,可能不能达到期望的主功能 单个模块可以接受的不精确性(如误差),连接起来后可能会扩大到无法接受的程度 全局数据结构可能会存在问题,软件测试的过程,LOGO,5.5 系统测试与评价 5.5.1 GIS软件测试,集成的方式 : 非增量式集成 使用“一步到位”的方法来构造程序。先将所有经过单元测试的模块组合在一起,然后对整个程序(作为一个整体)进行测试。这种测试在发现错误时,很难为错误定位。改正错误时容易引入新的错误,新旧错误混在一起,更难定位。 增量式集成 根据程序结构图,按某种次序挑选一个(或一组)尚未测试过的模块,把它集成到已测试好的模块中一起进行测试,每次增加一个(或一组)模块,直至所有模块全部集成到程序中。在增量集成测试过程中发现的错误,往往与新加入的模块有关。,软件测试的过程,LOGO,5.5 系统测试与评价 5.5.1 GIS软件测试,确认测试,确认测试标准 确认测试以软件需求规约为依据,以发现软件与需求不一致的错误。主要检查软件是否实现了规约规定的全部功能要求,文档资料是否完整、正确、合理,其他的需求,如可移植性、可维护性、兼容性、错误恢复能力等是否满足。,软件测试的过程,LOGO,5.5 系统测试与评价 5.5.1 GIS软件测试,确认测试的结果可分为两类: 满足需求规约要求的功能或性能特性,用户可以接受。 发现与需求规约有偏差,此时需列出问题清单。,软件测试的过程,LOGO,5.5 系统测试与评价 5.5.1 GIS软件测试,系统测试,系统测试是对整个基于计算机的系统进行的一系列测试。 系统测试的种类 恢复测试 安全测试 压力测试 性能测试,软件测试的过程,LOGO,5.5 系统测试与评价 5.5.1 GIS软件测试,恢复测试 是通过各种手段,强制软件发生故障,然后来验证系统能否在指定的时间间隔内恢复正常,包括修正错误并重新启动系统。安全测试 用来验证集成在系统中的保护机制能否实际保护系统不受非法侵入。,压力测试 也称强度测试,它是在一种需要非正常数量、频率或容量的方式下执行系统,其目的是检查系统对非正常情况的承受程度。,软件测试的过程,LOGO,5.5 系统测试与评价 5.5.1 GIS软件测试,性能测试 用来测试软件在集成的系统中的运行性能。它对实时系统和嵌入式系统尤为重要。 性能测试可以发生在测试过程的所有步骤中 单元测试时,主要测试一个独立模块的性能,如算法的执行速度。 软件集成后,进行软件整体的性能测试。 计算机系统集成后,进行整个计算机系统的性能测试。,软件测试的过程,LOGO,5.5 系统测试与评价 5.5.2 GIS系统评价,系统评价,系统评价是在GIS测试的基础上的重要环节。是将测试与系统的指标与目标进行比较,考察达到的效果。 包括软件功能评价与总体功能评价。,LOGO,5.5 系统测试与评价 5.5.2 GIS系统评价,系统功能评价,1、软件功能评价 对整个软件各个组成部分的功能进行评价。,用户界面,数据库管理,数据处理,数据分析,数据输出,交互性联机帮助界面友好浮动菜单,空间数据管理属性数据管理,数字化数据编辑,空间查询空间分析,硬拷贝软拷贝图例注记输出,GIS软件功能评价,LOGO,5.5 系统测试与评价 5.5.2 GIS系统评价,系统总体评价,(1)系统效率(2)系统可靠性(3)可扩展性(4)可移植性(5)系统的效益,2、总体功能评价,LOGO,5.6 系统维护 5.6.1 系统维护的内容,系统维护的内容,(1)程序的维护 根据运行记录,发现程序的错误,这时需要改正,或者环境发生变化,部分程序需要修改。 (2)数据文件的维护 业务发生了变化,从而需要建立新文件,或者对现有文件的结构进行修改。 (3)代码的维护 随着环境的变化,旧的代码不能适应新的要求,必须进行改造,制定新的代码或修改旧的代码体系。 (4)机器、设备的维护 包括机器、设备的日常维护与管理。一旦发生小故障,要有专人进行修理,保证系统的正常运行。,LOGO,5.6 系统维护 5.6.2 系统维护的类型,系统维护的类型,系统维护的类型(1)更正性维护 指由于发现系统中的错误而引起的维护。工作内容包括诊断问题与修正错误。(2)适应性维护 指为了适应外界环境的变化而增加或修改系统部分功能的维护工作。 (3)完善性维护 指为了改善系统功能或用户的需要而增加新功能的维护工作。(4)预防性维护 是主动性的预防措施。对一些使用寿命较长,目前尚能正常运行,但可能要发生变化的部分进行维护,以适应将来的修改或调整。,LOGO,5.6 系统维护 5.6.3 系统维护应注意的问题,系统维护应注意的问题,系统维护应注意的问题 建立和健全各类系统开发文档资料 。 文档资料要标准化、规范化 。 开发过程中要严格按照各阶段所规定的开发原则和规范来进行 。 维护文档的可追踪性 。 建立和健全从系统开发到系统运行各阶段的管理制度 。,LOGO,5.6 系统维护 5.6.4系统维护的的管理,系统维护的的管理,系统维护的管理(1)提出修改要求(2)领导批准(3)分配任务(4)验收成果(5)登记修改情况,LOGO,