LOGO地理信息系统设计与实现资源环境与旅游学院LOGO第五章应用型GIS实施、评价与维护系统实施阶段的任务程序编写的组织管理空间数据库建库程序调试与安装系统测试与评价系统的维护LOGO5.1系统实施阶段的任务系统实施是开发应用型GI5的最后一个阶段,其主要内容包括程序编制与调试、数据准备与数据库建立、系统评价与实验,此外还包括人员技术培训等。实施工作开始实施工作开始硬软件的购置与安装硬软件的购置与安装程序的编写与调试程序的编写与调试系统安装与调试系统安装与调试数据入库数据入库操作人员的培训操作人员的培训各种数据的收集各种数据的收集其他数据源的转换其他数据源的转换实施工作结束实施工作结束LOGO系统实施阶段的任务(1)硬件准备硬件设备包括计算机、输入瀚出设备、存储设备、辅助设备(稳压电源、空调设备等)及通信设备等。要购置、安装、调试这些设备。这方面的工作要花费大量的人力、物力,持续相当长的时间。(2)软件准备软件设备包括系统软件、数据库管理系统以及一些应用程序。这些软件有些需要购买,有些需要组织人力编写,这也需要相当多的人力、物力和时间。编写程序是这一阶段的主要任务之一。5.1系统实施阶段的任务LOGO系统实施阶段的任务(3)人员培训主要指用户的培训,用户包括主管人员和业务人员。系统投入运行后,他们将在系统中工作。(4)数据准备数据的收集、整理、录入是一项既烦琐,劳动量又大的工作。如果没有一定基础数据的准备,系统调试就不能很好地进行。一般说来,确定数据库物理模型之后,就应进行数据的整理、录入。(5)系统安装与调试软件的安装与调试,系统软硬件的综合调试。5.1系统实施阶段的任务LOGO5.2程序编写的组织管理5.2.1程序编写工作的特点程序编写工作的特点(1)是系统实施的本质内容,其产品就是一套程序,是GIS开发最终的主要成果。(2)是一项系统工程。投入大量的人力、物力,其目的就在于研制出一个成功的软件产品。(3)程序员的组织管理工作至关重要。软件生产首先是个人的脑力劳动,程序员各自独立地完成各自的任务,互相之间并没有直接的联系,工作量和效率取决于程序员自身的能力和各自的态度。大型软件由于它的规模太大,必须由许多人共同完成。LOGO程序编写工作的实施5.2程序编写的组织管理5.2.2程序编写工作的实施编程就是为各个模块编写程序。这是系统实现阶段的核心工作。在系统开发的各个阶段中,编程是最容易,也是人们己掌握得较好的一项工作。程序员的水平决定了程序的水平。LOGO程序设计语言的三个级别5.2程序编写的组织管理5.2.2程序编写工作的实施程序设计语言的三个级别低级语言中级语言高级语言面向过程面向对象表达方法以0,1的组合表达各种命令用代码字符表达各种命令用接近自然语言的命令实现各种功能用面向对象的构件来实现各种功能特点编程极其繁琐,一般不被采用编译效率高,但生产效率低、易出错、难维护便于掌握,编程也较方便可视化编程环境,易于掌握,效率高举例机器语言汇编语言Fortran、C、PascalVC、Delphi、C++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代码实例IntPress(int**image,intheight,intwidth,structLZW*result)/*Press是一数据压缩模块,其返回值如非0表示有错,其中参数含义如下:image为一个二维整型数组,用于存放图象数据height为图象的高度,width为图象的宽度result为存放压缩数据的数组,其类型定义为,structLZW{intnode;intnumber;}*/{inti,j,k,temp,n;/*i,j为循环控制变量,k存放压缩游程长度,temp存放游程内容,n存放数组result的成员号码*/for(i=0;iwidth;i++)/*按图象的宽度循环*/if(temp!=image[j][i])/*判断是否为同一游程*/{result[n].node=temp;/*记录最终游程内容*/result[n].number=k;k=1;temp=image[j][i];result[n].node=temp;/*记录初始游程内容*/result[n].number=k;}elsek++;/*游程长度加一*/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程序编写工作的实施LOGO5.3空间数据库建库空间数据库建库步骤:(1)数据准备与预处理(2)数据采集(3)数据处理(4)建库LOGO5.3空间数据库建库空间数据库建库(1)数据准备与预处理选择数据源预处理转换成空间数据库可用的数据(2)数据采集主要进行数字化(3)数据处理编辑图形数据录入属性数据(4)建库LOGO5.4程序的调试与安装5.4.1程序调试的任务与步骤程序调试的任务1、程序调试的任务进一步论断、改正程序中的错误。LOGO5.4程序的调试与安装5.4.1程序调试的任务与步骤程序调试的步骤2、程序调试的步骤(1)选取足够的测试数据对程序进行试验,记录发生的错误。(2)定位程序中错误的位置,确定是哪个模块内部发生了错误或模块间调用的错误。这是调试工作的主要内容,约占调试总工作量的95%。(3)通过研究程序源代码,找出故障原因,并改正错误。LOGO5.4程序的调试与安装5.4.1程序调试的任务与步骤程序调试的步骤方法排错过程硬性排错采用试验的方法,比如设置临时变量、增加调试语句、设置断点、单步执行等,该方式虽可最终找到错误,但速度及准确性不令人满意归纳法排错准备几组有代表性的输入数据,反复执行,对得出的错误结果进行整理、分析、归纳,提出错误原因及位置假想,再用新的一组测试数据去验证这些假想演绎法排错针对各组测试数据所得出的结果,列举出所有可能引起出错的原因,然后逐一排除不可能发生的原因与假设,将余下的原因作为主攻方向,最终确定错误位置跟踪法排错在错误征兆附近进行跟踪找错;错误诊断出来以后,需要进行修改;修改完后,应立即利用先前的测试用例,重复先前的测试过程,进一步验证排错的正确性LOGO5.4程序的调试与安装5.4.2系统安装系统安装概念狭义:侠义的系统安装指的就是GIS软件被安装到计算机的硬盘上。广义:包括硬件、软件;包括安装、调试(1)系统硬件的安装(2)系统硬件的调试(诊断错误)(3)系统软件的安装(安装相关的支持软件)(4)系统软件的测试(5)系统的综合调试(软件硬件的协调性调试)LOGO5.5系统测试与评价为什么要测试与评价(1)GIS软件的开发在经过分析、设计和实施等环节后,整个开发计划接近完成,经适当的补充和完善就可以推向市场或交付客户使用。(2)系统开发者作为一个商品生产者把商品(指GIS软件)推向市场所需要了解:软件系统(包括基础型、专用型和专题应用型)的性能和功能指标如何。市场潜力如何。(3)把握好系统各性能指标能够对开发出来的产品进行比较准确的市场定位,寻找潜在用户,扩大产品的商业应用前景。可给用户以全面、总体的认识,了解产品是否真正符合本部门或本系统的工作要求。获知软件是否具有进一步扩展的能力以满足今后该部门发展,有效地避免不必要的浪费和重复投资。软件测试LOGO5.5系统测试与评价5.5.1GIS软件测试测试方法静态测试动态测试软件测试的方法白盒测试黑盒测试LOGO5.5系统测试与评价5.5.1GIS软件测试静态测试指不运行被测程序本身,仅通过分析或检查源程序的语法、结构、过程、接口等来检查程序的正确性。(1)软件审查依赖于人工的方法进行检查。包括代码审查与设计审查。(2)静态排演通过评论与提问等方式寻找错误(3)检查主要检查代码和设计的一致性,代码对标准的遵循、可读性,代码的逻辑表达的正确性,代码结构的合理性等方面软件测试的方法LOGO5.5系统测试与评价5.5.1GIS软件测试动态测试通过运行程序测试软件称为动态测试。在动态测试中,通常使用白盒测试和黑盒测试从不同的角度设计测试用例,查找软件代码中的错误。包括白盒测试与黑盒测试。软件测试的方法LOGO软件测试的方法(1)白盒测试又称透明盒测试、结构测试等在白盒测试时,以编程语言的角度来设计测试案例。测试者输入数据验证数据流在程序中的移动路径,并确定适当的输出,类似测试电路中的节点。LOGO软件测试的方法(2)黑盒测试又称功能测试、数据驱动测试或基于规格说明的测试。测试者不了解程序的内部情况,不需具备应用程序的代码、内部结构和编程语言的专门知识。只知道程序的输入、输出和系统的功能,这是从用户的角度针对软件界面、功能及外部结构进行测试,而不考虑程序内部逻辑结构。LOGO5.5系统测试与评价5.5.1GIS软件测试软件测试的过程根据动态测试在软件开发过程中所处的阶段和作用,动态测试可分为如下几个步骤:(1)单元测试(2)组装测试(集成测试)(3)确认测试(有效性测试)(4)系统测试LOGO5.5系统测试与评价5.5.1GIS软件测试测试内容:(1)模块接口(确保模块的输入/输出参数信息是正确的)(2)局部数据结构(确保临时存储的数据在算法执行的整个过程中都能维持其完整性)(3)重要的执行路径(确保模块中的所有语句都至少执行一次)(4)错误处理(解决程序对错误的解决能力)(5)边界条件(确保程序单元在极限或严格的情况下仍能正确地执行)是针对程序中的模块或构件,主要揭露编码阶段产生的错误。软件测试的过程LOGO5.5系统测试与评价5.5.1GIS软件测试测试过程:(1)在测试模块时,必须为每个被测模块开发一个驱动(driver)程序和若干个桩(stub)模块。驱动程序被测模块桩模块桩模块软件测试的过程LOGO5.5系统测试与评价5.5.1GIS软件测试(2)驱动模块接收测试数据,调用被测模块,把测试数据传送给被测模块,被测模块执行后,驱动模块接收被测模块的返回数据,并打印相关结果。驱动程序的程序结构:数据说明;初始化;输入测试数据;调用被测模块;输出测试结果;停止软件测试的过