设计概述第二节GIS设计实施与维护第三节.ppt
第一节 GIS设计概述第二节 GIS设计、实施与维护第三节 GIS标准化第四节 GIS评价,第八章GIS的设计与评价,11系统设计目的 12系统设计的模式 13系统设计流程,第一节 GIS设计概述,GIS分类:工具型与应用型应用型GIS:指在工具型GIS 的基础上,经过二次开发,建成满足专门用户解决一类或多类实际问题的GIS。,11系统设计目的,应用型GIS的主要特点:1)具有特定的用户和用户目的;2)具有为满足用户专门需求而开发的地理空间实体数据库和应用模型;3)继承工具型GIS开发平台提供的大部分功能;4)具有专门开发的用户应用界面等。,11系统设计目的,系统设计目的:1)要求功能能够满足实际需求、系统运行稳定可靠、系统应用能够达到高效益;2)实现业务操作的手工模式向信息化模式的根本转变;3)提高管理和决策的高效率和科学化。,11系统设计目的,结构化系统设计1)目的与任务2)概念的定义3)功能的要求4)性能测定特点:强调对用户的调查和系统功能需求的分析。,12 系统设计的模式,13系统设计流程,1)系统分析:国内相似系统及应用的调研,用户需求情况的调查。需求分析和立项。可行性分析报告;用户业务流程分析报告;需求分析报告。,立项,1.1.1立项调研1.1.2可行性研究 1.1.3成本-效益分析1.1.4工程项目开发计划,立项调研,1、立项现状调查2、立项调查的内容3、调查内容的组织与分析,1、立项现状调查,1、面谈2、电话访谈3、参观4、索取有关的资料5、问卷6、GIS专题报告,2、立项调查的内容,1、机构组织2、日常操作3、数据4、专业人员5、系统软件6、系统硬件,3、调查内容的组织与分析,1、机构运作的逻辑数据流程2、GIS功能加入后的各种产品3、硬件资源表4、软件资源表5、专业人员清单6、专业人员清单7、数据来源清单8、部门功能清单,立项调研,1、立项原因2、立项基础3、国内外研究现状4、工程意义与目标5、用户调查6、投资条件7、投资周期8、技术力量与基础9、软件硬件价格与性能10、数据源状况11、应用前景12、效益评估13、可运行性评价,可行性研究,1、目的2、任务3、具体步骤,可行性研究的目的,可行性研究的目的就是用最小的代价在尽可能短的时间内确定该软件项目是否能够开发,是否值得去开发。,可行性研究的任务,可行性研究的目的就是用最小的代价在尽可能短的时间内确定问题是否能够解决,可行性研究的目的不是解决问题,而是确定问题是否值得去解。必须分析几种主要的可能解法的利弊,从而判断原定的系统目标和规模是否现实,系统完成后所能带来的效益是否大到值得投资开发这个系统的程度。一般说来,可行性研究的成本只是预期的工程总成本的5%-10%。,可行性研究的任务,技术可行性经济可行性社会可行性抉择,可行性研究的步骤,1)复查系统规模和目标2)研究目前正在使用的系统3)建立新系统的高层逻辑模型4)重新定义问题5)导出和评价各种方案6)推荐可行的方案7)编写可行性研究报告,需求分析,需求分析的任务需求分析的原则数据流程图数据字典,需求分析的任务,基本任务是准确地回答“系统必须做什么?”这个问题。可行性研究阶段产生的文档,特别是数据流图,是需求分析的出发点。数据流图中已经划分出系统必须完成的许多基本功能,在需求分析阶段系统分析员将仔细研究这些功能并进一步将它们具体化。在这个阶段结束时交出的文档中应该包括详细的数据流图。数据字典和一组简明的算法描述。,需求分析的任务,1)确定对系统的综合要求 2)分析系统的数据要求 3)导出系统的逻辑模型 4)修正系统开发计划 5)开发原型系统,13系统设计流程,2)系统设计系统总体设计:系统目标、系统功能等系统详细设计:子系统设计、功能设计、应用模型设计、用户界面设计、数据库设计等。,13系统设计流程,3)系统实施程序编制软件测试测试用例的设计软件测试,编 码,目前,人和计算机通信仍然必须使用人工设计的语言,也即是程序设计语言。所谓编码就是把软件设计的结果翻译成计算机可以“理解”的形式用某种程序设计语言书写的程序。作为软件工程的一个步骤,编码是设计的自然结果,因此,程序的质量主要取决于软件设计的质量。但是,程序设计语言的特性和编码途径也会对程序的可靠性、可读性、可测试性和可维护性产生深远的影响。,测 试,无论怎样强调软件测试的重要性和它对软件可靠性的影响都不过分。大量统计资料表明,软件测试的工作量往往占软件开发总工作量的40以上,在极端情况,测试所花费的成本,可能相当于软件工程其他开发步骤总成本的三倍到五倍。,13系统设计流程,4)系统运行与维护软件系统的维护软件维护活动程序修改的步骤及副作用软件可维护性,21系统分析 22系统设计 23系统实施 24系统运行和维护,第二节 GIS的设计,系统设计在软件开发中的位置,系统分析:其基本思想是从系统观点出发,通过对事物进行分析与综合,找出各种可行的方案,为系统设计提供依据;其任务是对系统用户进行需求调查和可行性分析,最后提出新系统的目标和结构方案。用户需求调查:即调查系统用户对开发的GIS系统的功能要求和信息需求情况。1)Who:谁使用该系统。2)What:新系统做什么用;3)Why:为什么需要具有这些功能;4)Where:建立新系统所需要的资源从哪里来;5)Quality:具体的技术指标、性能要求和可靠性要求。,21系统分析,2.2.1总体设计其任务是根据系统研制的目标来规划系统的规模和确定系统的各个组成部分,说明它们在整个系统中的作用和相互关系,确定系统的软硬件配置,规定系统采用的技术规范,作出经费预算和时间安排,以保证系统总体目标的实现。最后撰写系统总体设计方案。2.2.2详细设计详细设计阶段的根本目标是确定应该怎样具体地实现所要求的系统。,22系统设计,总体设计具体内容如下:1)用户需求:用户构成、系统功能;2)系统目标:如属于演示系统还是运行系统。单机或分布式。3)总体结构:4)系统配置:5)数据库设计;6)系统功能:7)经费和管理,2.2.1总体设计,GIS总体设计,1)系统设计在软件开发中的位置2)总体设计过程中需要完成的工作,GIS总体设计,在深入的需求分析和可行性研究之后,需要进行GIS的总体方案设计。系统的总体方案设计是系统建设中最重要的总控文件,在进行总体设计时,务必坚持系统工程的设计思想和方法,把握方向,在重大问题上给予定性考虑,着重确定原则,避免过早陷入细节问题而忽略总揽全局。,1)系统设计在软件开发中的位置,2)总体设计过程中需要完成的工作,制定规范(标准设计)软件结构设计 数据库设计 编写总体设计阶段的文档 总体设计评审,制定规范(标准设计),确认用户的要求能否实现;根据目标确定最合适的设计方法;确定设计文档的编制标准;确定代码体系,与硬件、操作系统的接口规约,命名规则等;,软件结构设计,采用某种设计方法,将一个复杂的系统按功能划分成模块的层次结构;确定每个模块的功能,建立与已确定的软件需求的对应关系;确定模块间的调用关系;确定模块间的接口,即模块间传递的信息。设计接口的信息结构;评估模块划分的质量及导出模块结构的规划。,数据库设计,确定输入、输出文件的详细的数据结构;结合算法设计,确定算法所必需的逻辑数据结构及其操作;确定对逻辑数据结构所必需的那些操作的程序模块(软件包),限制和确定各个数据设计决策的影响范围。若需要与操作系统或调度程序接口所必须的控制表等数据时,确定其详细的数据结构和使用规则;l数据的保护性设计(包括防卫性设计、一致性设计、冗余性设计)。,编写总体设计阶段的文档,总体设计阶段完成时应编写以下文档:总体设计说明书;数据库设计说明书;用户手册;制定初步的测试计划。,2.2.2详细设计,详细设计阶段的任务还不是具体地编写程序,而是要设计出程序的“蓝图”,以后程序员将根据这个蓝图写出实际的程序代码。程序的“读者”有两个,那就是计算机和人,实际上对于长期使用的软件系统而言,人读程序的时间可能比写程序时间还要长得多。因此,衡量程序的质量不仅要看它的逻辑是否正确,性能是否满足要求,更主要的是要看它是否容易阅读和理解。详细设计的目标不仅仅是逻辑上正确地实现每个模块的功能,更重要的是设计出的处理过程应该尽可能简明易懂。结构程序设计技术是实现上述目标的关键技术,因此是详细设计的逻辑基础。语言工具:用伪码来描述过程的细节。,定义:要决定各个模块的实现算法,并精确地表达这些算法,为此应提供详细设计的表达工具。详细设计工具的分类:图形工具:把过程的细节用图形方式描述出来。表格工具:用一张表来表达过程的细节。,2.2.2详细设计1)概述,2)详细设计的基本任务,1)处理方式设计:数据结构设计算法设计性能设计确定外部信号的接收发送形式2)可靠性设计3)代码设计4)输入/输出格式设计5)人机对话设计6)编写详细设计说明书及进行详细设计的评审,子系统设计数据库设计功能模块设计用户界面设计应用模型设计,3)详细设计内容,子系统设计,子系统设计以对用户需求的进一步详细调查为依据,分别完成各个子系统的逻辑结构设计、数据库设计、功能模块设计、用户界面设计等。每个子系统设计的内容大体类似于总体设计的内容,但应更加详细和具体,作为各个子系统实施的指导性文件。,数据库设计,主要内容包括:数据源的分析与选择;数据分类与分层的确定;数据获取方案的规定;数据编码设计;实体属性表与属性关系的设计;属性数据类型的建立;数据质量标准的规定;地理定位控制的确定及其他有关问题的规定等。,1)数据库的分层原则 数据具有同样的特征比例尺一致有同样的使用目的保密数据应分层放置要更新的数据应分层放置不同部门的数据分层放置同一类别的数据,属性特征不同,应分别放置。,2)属性数据表设计数据库类型(多为关系型)字段个数、名称(依据专业属性和应用目的)字段类型(字符、日期、实型)编码设计,3)数据字典设计数据字典,是对整个数据库的总体和详细小结,是记录数据库所有数据的系统表,它向使用系统的用户提供各类有用的信息。数据字典的用途是多方面的,它在数据库的整个生命周期里都起着重要的作用。在系统分析阶段,数据字典用来走义数据流程图中各个构成元素之属性和含义;在设计阶段,数据字典提供一套工具以维护对系统设计说明的控制,帮助设计人员保证在早期阶段所确定的需求与实现一致;在调式阶段,辅助产生测试数据,提供数据检测的能力;在运行阶段,可以帮助数据库的重组和重新构造;在使用阶段,可以作为用户手册。数据字典设计的内容有:实体名称、定义、属性说明、属性值、代码、完整性限制、关系、最小尺寸规定、补充说明等等。它是对研究区域每一类实体定义、概念、空间特征、属性特征等数据的详细描述和规定。,数据库的总体组织结构数据库总体设计框架(数据来源、命名方法、各特征的最大最小范围、有效值、地图投影、数据精度、数据的各文件、表格等等)数据层的详细定义与结构(标题类信息:名称、类型、数据质量 各层的有关文件、表、各表的项及各项的定义、有效值范围;地理参考信息;各层及属性的质量控制范围;各层编号系统;各层的使用范围)数据命名的定义元数据内容,功能模块设计,详细描述各功能模块的内容,实现的技术和算法,输入输出的数据项和格式等。包括:总体模块功能属性数据库管理子系统的结构与功能设计图形数据库管理子系统的结构与功能设计功能设计的原则应用型GIS功能设计实例,总体模块功能,属性数据库,1)数据库结构操作2)数据输入3)数据库操作4)属性查询统计5)输出方式,图形数据库,1)图形输入2)图形转换3)图形操作4)图形编辑5)图形计算6)图像处理7)空间分析8)图形输出,功能设计的原则,1)功能结构的合理性2)功能结构的完备性3)系统各功能的独立性4)功能模块的可靠性5)功能模块操作的简便性,应用型GIS功能设计实例,以石化综合管线信息系统为例1)图形图库管理子系统2)管线输入与编辑3)管网管理与分析4)WebGIS模块5)实时数据处理子系统6)综合管网设置子系统,用户界面设计,用户界面应具备的特性用户界面的基本类型用户界面设计的原则软件的基本界面样式,用户界面应具备的特性,1)可使用性使用的简单性;用户界面中的术语标准化和一致性;拥有HELP帮助功能;快速的系统响应和低的系统成本;用户界面应具有容错能力、错误诊断功能。2)灵活性算法的可隐可显性;用户可以根据需要制定和修改界面方式;提供不同详细程度的系统响应信息;3)复杂性和可靠性,用户界面的基本类型,1)输入设计2)输出设计3)操作设计4)使用手册,用户界面设计,输入设计1)输入设计的原则2)输入设计的内容3)数据记录格式设计4)输入数据的校验方法输出设计1)输出设计的基本要求2)输出设计的内容3)图形输出设计4)表格输出设计,用户界面设计的原则,1)描述人和他们的任务脚本;2)设计命令层;3)设计详细的交互4)继续做原型5)设计用户界面类,GIS软件的基本界面样式,1)基于命令行的GIS界面2)基于窗口的界面3)菜单驱动的GIS界面4)基于对话框的界面5)采用数据流图的GIS图形用户界面,应用模型设计,包括:应用模型概述1)模型2)应用模型的作用3)应用模型分类模型建立方法1)模型化一般方法2)逻辑原理3)数据统计分析4)空间分析函数5)应用模型重用,系统软硬件的引进及调试系统数据库建立应用管理系统的开发:包括应用模块的开发、建立用户应用界面、编写用户操作手册、建立图形符号库等。系统测试和联调系统验收和鉴定,23系统实施,测试基本概念,表面看来,软件测试的目的与软件工程所有其他阶段的目的都相反。软件工程的其他阶段都是“建设性”的:软件工程师力图从抽象的概念出发,逐步设计出具体的软件系统,直到用一种适当的程序设计语言写出可以执行的程序代码。但是,在测试阶段测试人员努力设计出一系列测试方案,目的却是为了“破坏”已经建造好的软件系统竭力证明程序中有错误不能按照预定要求正确工作。,测试的目标,什么是测试?它的目标是什么?GMyers给出了关于测试的一些规则,这些规则也可以看作是测试的目标或定义:(1)测试是为了发现程序中的错误而执行程序的过程;(2)好的测试方案是极可能发现迄今为止尚未发现的错误的测试方案;(3)成功的测试是发现了至今为止尚未发现的错误的测试。,黑盒测试和白盒测试,怎样对程序进行测试呢?测试任何产品都有两种方法:如果已经知道了产品应该具有的功能,可以通过测试来检验是否每个功能都能正常使用;如果知道产品内部工作过程,可以通过测试来检验产品内部动作是否按照规格说明书的规定正常进行。前一个方法称为黑盒测试,后一个方法称为白盒测试。,对于软件测试而言,黑盒测试法把程序看成一个黑盒子,完全不考虑程序的内部结构和处理过程。也就是说,黑盒测试是在程序接口进行的测试,它只检查程序功能是否能按照规格说明书的规定正常使用,程序是否能适当地接收输入数据产生正确的输出信息,并且保持外部信息(如,数据库或文件)的完整性。黑盒测试又称为功能测试。,白盒测试法的前提是可以把程序看成装在一个透明的白盒子里,也就是完全了解程序的结构和处理过程。这种方法按照程序内部的逻辑测试程序,检验程序中的每条通路是否都能按预定要求正确工作。白盒测试又称为结构测试。,测试的步骤,除非是测试一个小程序,否则一开始就把整个系统作为一个单独的实体来测试是不现实的。与开发过程类似,测试过程也必须分步骤进行,每个步骤在逻辑上是前一个步骤的继续。大型软件系统通常由若干个子系统组成,每个子系统又由许多模块组成。因此,大型软件系统的测试基本上由下述几个步骤组成:,模块测试,在设计得好的软件系统中,每个模块完成一个清晰定义的子功能,而且这个子功能和同级其他模块的功能之间没有相互依赖关系。因此,有可能把每个模块作为一个单独的实体来测试,而且通常比较容易设计检验模块正确性的测试方案。模块测试的目的是保证每个模块作为一个单元能正确运行,所以模块测试通常又称为单元测试。在这个测试步骤中所发现的往往是编码和详细设计的错误。,子系统测试,子系统测试是把经过单元测试的模块放在一起形成一个子系统来测试。模块相互间的协调和通信是这个测试过程中的主要问题,因此这个步骤着重测试模块的接口。,系统测试,系统测试是把经过测试的子系统装配成一个完整的系统来测试。在这个过程中不仅应该发现设计和编码的错误,还应该验证系统确实能提供需求说明书中指定的功能,而且系统的动态特性也符合预定要求。在这个测试步骤中发现的往往是软件设计中的错误,也可能发现需求说明中的错误。不论是子系统测试还是系统测试,都兼有检测和组装两重含义,通常称为集成测试。,验收测试,验收测试把软件系统作为单一的实体进行测试,测试内容与系统测试基本类似,但是它是在用户积极参与下进行的,而且可能主要使用实际数据(系统将来要处理的信息)进行测试。验收测试的目的是验证系统确实能够满足用户的需要,在这个测试步骤中发现的往往是系统需求说明书中的错误。,平行运行,关系重大的软件产品在验收之后往往并不立即投入生产性运行,而是要再经过一段平行运行时间的考验。所谓平行运行就是同时运行新开发出来的系统和将被它取代的旧系统,以便比较新旧两个系统的处理结果。这样做的具体目的有如下几点:(1)可以在准生产环境中运行新系统而又不冒风险;(2)用户能有一段熟悉新系统的时间;(3)可以验证用户指南和使用手册之类的文档;(4)能够以准生产模式对新系统进行全负荷测试,可以用测试结果验证性能指标。,24系统运行和维护,系统运行指系统经过测试和验收以后,交付用户使用。系统维护是为了保证系统正常工作而采取的一切措施和实际步骤,包括数据的维护、软件的维护和硬件的维护等。,软件维护,在软件开发完成交付用户使用后,就进入软件运行维护阶段。此后的工作就是要保证软件在一个相当长的时期能够正常运行,这样对软件的维护就成为必不少的了。,软件维护的概念,人们称在软件运行维护阶段对软件产品所进行的修改就是维护。要求进行维护的原因多种多样,归结起来有三种类型:(1)改正在特定的使用条件下暴露出来的一些潜在程序错误或设计缺陷;(2)因在软件使用过程中数据环境发生变化(例如一个事务处理代码发生改变)或处理环境发生变化(例如安装了新的硬件或操作系统),需要修改软件以适应这种变化。(3)用户和数据处理人员在使用时常提出改进现有功能,增加新的功能,以及改善总体性能的要求,为满足这些要求,就需要修改软件把这些要求纳入到软件之中。,(1)改正性维护(Correctivemaintenance),在软件交付使用后,由于开发时测试的不彻底、不完全,必然会有一部分隐藏的错误被带到运行阶段来。这些隐藏下来的错误在某些特定的使用环境下就会暴露。为了识别和纠正软件错误、改正软件性能上的缺陷、排除实施中的误使用,应当进行的诊断和改正错误的过程,就叫做改正性维护。例如,改正性维护可以是改正原来程序中未使开关(off/on)复原的错误;解决开发时未能测试各种可能情况带来的问题;解决原来程序中遗漏处理文件中最后一个记录的问题等。,(2)适应性维护(Adaptivemaintenance),随着计算机的飞速发展,外部环境(新的硬、软件配置)或数据环境(数据库、数据格式、数据输入输出方式、数据存储介质)可能发生变化,为了使软件适应这种变化,而去修改软件的过程就叫做适应性维护。例如,适应性维护可以是为现有的某个应用问题实现一个数据库;对某个指定的事务编码进行修改,增加字符个数;调整两个程序,使它们可以使用相同的记录结构;修改程序,使其适用于另外一种终端。,(3)完善性维护(Perfectivemaintenance),在软件的使用过程中,用户往往会对软件提出新的功能与性能要求。为了满足这些要求,需要修改或再开发软件,以扩充软件功能、增强软件性能、改进加工效率、提高软件的可维护性。这种情况下进行的维护活动。叫做完善性维护。例如,完善性维护可能是修改一个计算工资的程序,使其增加新的扣除项目;缩短系统的应答时间,使其达到特定的要求;把现有程序的终端对话方式加以改造,使其具有方便用户使用的界面;改进图形输出;增加联机求助(HELP)功能;为软件的运行增加监控设施。,(4)预防性维护(Preventive maintenance),除了以上三类维护之外,还有一类维护活动,叫做预防性维护。这是为了提高软件的可维护性、可靠性等,为以后进一步改进软件打下良好基础。通常,预防性维护定义为:“把今天的方法学用于昨天的系统以满足明天的需要”。也就是说,采用先进的软件工程方法对需要维护的软件或软件中的某一部分(重新)进行设计、编制和测试。,31地理信息标准化的内容32地理信息标准化的制定,第三节 GIS的标准化,31地理信息标准化的内容,3.1.1统一的名词术语内涵3.1.2统一的数据采集原则3.1.3统一的空间(地理)定位控制3.1.4统一的数据分类标准(属性数据指标体系)3.1.5统一的数据编码系统(数据文件命名规则)3.1.6统一的数据组织结构(数据分层方案)3.1.7统一的数据记录格式3.1.8统一的数据质量含义,3.1.1地理定位控制,1)平面控制系统2)高程控制系统3)区域多边形控制系统,3.1.2属性数据指标体系,1)针对某类图形数据的属性信息所作的属性项设计2)每个属性项属性值的指标确定,3.1.3数据分层方案,1)同一类数据放在同层2)相互关系密切的数据尽可能发在同层3)用户使用频率高的数据放在主要层,否则,放在次要层4)某些为了显示绘图或控制地名注记位置的辅助点、线或面放在辅助层5)基础信息数据分层较细,各种专题信息数据一般放在单独的一层或几层中,3.1.4数据文件命名规则,文件名称应清晰地反应数据库代码、数据的层名、层号、图幅号及数据加工处理的阶段。1)数据库代码2)输出处理阶段代码,41系统效率42系统可靠性43系统可扩展性44系统可移植性45系统的效益,第四节 GIS的评价,系统评价指从技术和经济两大方面对所设计的地理信息系统进行评定。基本做法:将运行着的系统与预期目标进行比较,考察是否达到了系统设计时所预定的效果。,第四节 GIS的评价,地理信息系统的各种职能指标、技术指标和经济指标均是系统效率的反映。系统能否及时地向用户提供有用信息;所提供信息的地理精度和几何精度;系统操作是否方便;系统出错情况;资源的使用效率等。,41系统效率,可靠性即指系统在运行时的稳定性,一般很少发生事故,即使发生事故也能很快修复。,42系统可靠性,未来,能否在现行系统上增加功能模块。,43系统可扩展性,即系统对环境的适应能力。它们不仅能在一台机器上使用,而且能在其他型号设备上使用。,44系统可移植性,即系统的经济效益和社会效益。,45系统的效益,