《9 GIS软件工程技术.ppt》由会员分享,可在线阅读,更多相关《9 GIS软件工程技术.ppt(50页珍藏版)》请在三一办公上搜索。
1、第九章 GIS软件工程技术,GIS的开发建设和应用是一项系统工程,涉及到系统的最优设计、最优控制运行、最优管理,以及人、财、物资源的合理投入、配置和组织等诸多复杂问题。需要运用系统工程、软件工程等的原理和方法,结合空间信息系统的特点进行实施建设。,1软件工程简介,计算机软件工程是一类求解的工程。它应用计算机科学、数学及管理科学等原理,借鉴传统工程的原则、方法,创建软件以达到提高质量,降低成本的目的。其中,计算机科学、数学应用于构造模型与算法,工程科学用于制定规范、设计范型,评估成本及确定权衡,管理科学用于计划、资源、质量、成本等管理。从学科角度来看,软件工程是一门指导计算机软件开发和维护的工程
2、学科。,一、基本概念,软件工程框架王立福,软件工程的目标可概括为:“生产具有正确性、可用性以及开销合宜的产品”,其活动包括需求、设计、实现、确认以及支持等活动,围绕工程设计、支持以及管理。,程序、软件与软件产品 独唱-小合唱-合唱-万人大合唱|简单程序 较复杂程序 软件软件包括 程序:按事先设计的功能和性能需求执行的指令序列。数据:是程序能正常操纵信息的数据结构。文档:与程序开发、维护和使用有关的图文材料。,计算机应用发展,软件数量多规模大,软件成本高质量低,个体化软件开发方法,软件维护困难,软件危机,软件工程,软件开发的发展过程,二、软件危机,软件工程的提出,是为了解决60年代出现的软件危机
3、。软件工程的研究,提出了一系列理论、原则、方法以及工具,试图解决软件危机。软件危机的定义计算机软件的开发和维护过程所遇到的一系列严重问题。表现对软件开发成本和进度的估算很不准确用户很不满意质量很不可靠没有适当的文档软件成本比重上升供不应求:软件开发生产率跟不上计算机应用迅速深入的趋势,软件危机产生的原因客观:软件本身特点逻辑部件规模庞大主观:不正确的开发方法忽视需求分析软件开发=程序编写轻视软件维护,软件危机的解决途径组织管理工程项目管理方法技术措施软件开发技术与方法软件工具,软件工程 1968年北大西洋公约组织的计算机科学家在联邦德国召开国际会议,讨论软件危机问题,在这次会议上正式提出并使用
4、了“软件工程”这个名词,一门新兴的工程学科就此诞生。概括地说,GIS工程危机包含两方面的问题:如何开发软件,怎样满足对软件的日益增长的需求;如何维护数量不断膨胀的软件与数据。(1)对软件开发成本和进度的估计常常很不准确。(2)用户对“已完成的”软件系统不满意的现象经常发生。(3)软件产品的质量往往靠不住。(4)软件常常是不可维护的。(5)软件与数据通常没有适当的文档资料。(6)软件与数据成本在计算机系统总成本中所占的比例逐年上升。,三、软件工程活动,软件工程活动包括需求、设计、实现、确认及支持等,它们对应于软件开发活动的不同阶段,一般来说,软件开发都要经历从分析设计到实现确认的过程。在每个阶段
5、按照相应的规范进行工作,并得到该阶段的成果,是保证整个开发活动成功的关键。,(1)需求分析,主要工作包括:用户需求调查 系统目的和任务 数据源调查和评估 评价地理信息系统的年处理工作量、数据库结构和大小、GIS的服务范围、输出形式和质量等。系统的支持状况,(2)系统设计,系统设计的任务是将系统分析阶段提出的逻辑模型转化为相应的物理模型,其设计的内容随系统的目标、数据的性质和系统的不同而有很大的差异。一般而言,首先应根据系统研制的目标,确定系统必须具备的空间操作功能,称为功能设计;其次是数据分类和编码,完成空间数据的存储和管理,称为数据设计;最后是系统的建模和产品的输出,称为应用设计。系统设计是
6、地理信息系统整个研制工作的核心。不但要完成逻辑模型所规定的任务,而且要使所设计的系统达到优化。,(3)实现阶段,在软件实现阶段,要将设计的结果变换成程序设计语言编写的程序。在实现阶段,首先要确定程序设计语言,其影响因素包括:开发人员对语言的熟悉程度,语言的可移植性,编译程序的效率,编译工具的支持等等。,(4)确认活动,确认活动贯穿于软件开发活动的时钟,但系统完成后的软件测试是主要的确认活动。软件测试是指按照特定规程,发现软件错误的过程。结合用户要求完成的任务,选择小块实验区(或者用模拟数据)对系统的各个部分、各种功能进行全面试验。实验阶段不仅进一步测试各部分的工作性能,同时还要测试各部分之间数
7、据传送性能、处理速度和精度,保证所建立的系统正常工作,且各部分运行状况良好。如果发现不正常状况,则应查清问题的原因,然后通知硬件或软件提供者进行适当处理。,(5)软件维护,当软件开发完成并交付用户使用后,就进入运行/维护阶段,在运行/维护阶段仍需要对软件进行修改,称为软件维护,软件维护活动可分为:1)改正性维护 2)适应性维护 3)完善性维护 4)预防性维护,四、地理信息系统的硬件配置,包括:计算机工作站、微机、便携式计算机;数据输入设备数字化仪、扫描仪等;数据输出设备图形终端、绘图仪、打印机、硬拷贝设备等;存贮设备磁带机、光盘机等。,直到70年代末,各种信息系统的计算机硬件配置系统还很简单,
8、主要是基于集中式的配置,其数据存贮和处理功能都集中于主机上。80年代末,提出计算机主机上的处理功能与数据相分离的分布式概念。,光盘读写器 磁带机 大容量硬盘,扫描仪 数字测图仪 数字化仪,投影设备 媒体制作其他设备,绘图仪 打印机 胶片记录仪,网 络,网 络,工作站1,工作站2,工作站3,微机,便携式计算机,处 理 设 备,存贮设备,输入设备,输出设备,服务器,地理信息系统硬件系统的配置(据边馥苓),操作系统软件是地理信息系统软件开发的基础平台。数据输入软件,包括:基于矢量的地图数字化和编辑软件,基于栅格的地图/影像扫描软件。数据查询和分析软件。图像处理软件。网络管理软件。信息输出软件。,五、
9、地理信息系统的软件配置,六、地理信息系统的人员配置,地理信息系统项目经理/技术组 数据库经理 数字化操作员 系统操作员 应用分析软件经理 程序编写员,七、地理信息系统工程成功的关键,地理信息系统开发成功的要素构成图,八、开发过程模型,软件开发模型是软件开发全部过程、活动和任务的结构框架。软件开发模型能够清晰、直观的表达软件开发过程,明确规定要完成的主要活动和任务,可以作为软件项目工作的基础。,瀑布模型,瀑布模型具有几个特点:(1)阶段间具有顺序性和依赖性(2)推迟实现的观点 清楚区分逻辑设计与物理设计,尽可能推迟程序的物理实现,是按照瀑布模型开发软件的一条重要的旨导思想。(3)质量保证的观点
10、第一,每个阶段都必须完成规定的文档,没有交出合格的文档就是没有完成该阶段的任务。第二,第个阶段结束前都要对所完成的文档进行评审。,瀑布模型,八、开发过程模型,系统需求,软件需求,需求分析,设 计,编 码,测 试,运 行,演化模型:主要针对事先不能完整定义需求的软件开发。用户可以先给出核心需求,当开发人员将核心需求实现后,用户提出反馈意见,以支持系统的最终设计和实现。螺旋模型:是在瀑布模型以及演化模型的基础上,加入风险分析所建立的模型。喷泉模型:体现了软件开发过程中所固有的迭代和无间隙的特征。表明了软件开发活动需要多次重复。,喷泉模型,2.GIS工程设计的基本原则,(一)计划管理原则:用分阶段的
11、生命周期计划严格管理。Boehm认为,在工程的整个生命周期应该制定并严格执行六类计划,它们是项目概要计划,里程碑计划,项目控制计划,产品控制计划,验证计划,运行维护计划。(二)坚持进行阶段评审原则:第一,大部分错误是在编码之前造成的,Boehm等人的统计,设计错误占软件错误的63%,编码错误仅占37%;第二,错误发现与改正行越晚,所需付出的代价也越高。(三)严格的产品控制原则:为了保持系统各个配置成分的一致性,必须实行严格的产品控制,其中主要是实行基准配置管理。所谓基准配置又称为基线配置,它们是经过阶段评审后的系统配置成分(各个阶段产生的文档或程序代码)。,(三)严格的产品控制原则 采用现代程
12、序设计技术原则 结果应能清楚地审查原则 开发小组的人员应该少而精原则 承认不断改进工程实践的必要性原则,3.GIS领域的体系结构和构件,按照应用目的,地理信息系统可以分为区域地理信息系统、专题地理信息系统以及地理信息系统工具,它们共同组成了GIS领域(Domain)。所谓领域,是指共享某种功能性的系统或应用程序的集合,换言之,领域表现了一组应用系统共性的方面。,GIS领域,GIS领域体系结构:一个工作流视图,对于领域,实施领域工程,得到领域模型,并建立领域特定的软件体系结构(DSSA,Domain-Specific Software Architecture)。,地理信息系统的核心功能包括空间
13、数据的输入、管理、分析以及表现,并且这些功能形成了一个比较完全的数据处理流程,考虑到与遥感以及全球定位系统的结合,形成如上的系统结构(如上图)。,构件技术标准:OMG(对象管理组织)的CORBA(公共请求对象代理体系结构-Common object request broker architecture)和Microsoft的OLE/COM/DCOM技术。COBRA定义了一个带有开放软总线的分布式结构,在这一结构中,来自不同厂商、运行于不同操作系统上的对象,能够进行互操作。CORBA对象的互相通信通过对象请求代理(ORB,Object Request Broker)为中介,可以在多种流行网络通
14、信协议上实现。接口描述语言(IDL,Interface Description Language)用于描述对象接口,它与语言无关,使得所有CORBA对象以一致的方式被描述。Microsoft的DCOM(分布式对象构件模型,Distributed Component Object Model)技术是对原有的COM技术的扩展,以支持在网络上不同计算机的对象之间的通信。COM定义了接口的二进制标准,包括接口交互、管理对象及其资源等等。而DCOM通过增加网络协议的支持,使得对象可以通过网络互操作。DCOM技术很好的支持复用,位置独立,可扩展等,并且其执行性能较好,目前被基于Windows平台的软件开发
15、商所广泛支持。,4.GIS工程的生命周期方法学,GIS工程采用的生命周期方法学就是从时间角度对软件开发和维护的复杂问题进行分解,把软件生成的漫长周期依次划分为若干个阶段,每个阶段有相对独立的任务,然后逐步完成每个阶段的任务。,详细设计,编码与单元测试,综合测试,软件测试,软件错误的积累和放大效应,瀑布模型,软件维护,问题定义,可行性研究,需求分析,总体设计,(1)问题定义,问题定义阶段必须回答的关键问题是:“要解决的问题是什么?”问题定义阶段的工作,系统分析员应该提出关于问题性质、工程目标和规模的书面报告。问题定义阶段是生命周期中最简短的阶段一般只需要一天甚至更少的时间。,(2)可行性研究,这
16、个阶段要回答的关键问题是:“对于上一个阶段所确定的问题有可行的解决办法或值得做吗?可行性研究比较简短,这个阶段的任务不是具体解决问题,而是研究问题的范围,探索这个问题是否值得去解,是否有可行的解决办法。在问题定义阶段提出的对工程目标和规模的报告通常比较含糊。可行性研究应该导出系统的高层逻辑模型(通常用数据流图表示),并且在此基础上更准确、更具体地确定工程规模和目标。然后分析员更准确地估计系统的成本和效益,对建议的系统进行仔细的成本/效益分析是这个阶段的主要任务之一。可行性研究的结果是使用部门负责人决定是否进行这项工程的重要依据。,可行性研究阶段的工作主要包括:1、用户需求调查。从上至下调查目前
17、和将来发展业务上需要些什么信息及今后的设想与建议;从下自上调查所需要的数据和所采用的处理手段。2、系统目的和任务:空间信息管理与制图;空间指标量算;空间分析与综合评价;空间过程模拟。3、数据源调查和评估。分析研究什么样的数据能变换成所需要的信息,数据是否齐全,然后对现有数据形式、精度、流通程度等作进一步分析,并确定它们的可用性和所缺数据的收集方法等。4、评价地理信息系统的年处理工作量、数据库结构和大小、GIS的服务范围、输出形式和质量等。5、系统的支持状况。部门管理者、工作人员对建立GIS的支持情况;人力状况;财力支持情况。根据上述调查结果确定GIS的可行性及GIS的结构形式和规模,估算建立G
18、IS所需投资和人员编制等。,(3)需求分析,这个阶段的任务仍然不是具体地解决问题,而是准确地确定“为了解决这个问题,目标系统必须做什么”,主要是确定目标系统必须具备哪些功能。系统分析员在需求分析阶段必须和用户密切配合,充分交流信息,以得出经过用户确认的系统逻辑模型。通常用数据流图、数据字典和简要的算法表示系统的逻辑模型。,(4)总体设计,这个阶段必须回答的关键问题是:“概括地说,应该如何解决这个问题”。首先,应该考虑几种可能的解决方案:(1)低成本的解决方案;(2)中等成本的解决方案。(3)高成本的“十全十美”的系统。系统分析员应该使用系统流程图或其他工具描述每种可能的系统,估计每种方案的成本
19、和效益,还应该在充分权衡各种方案的利弊的基础上,推荐一个较好的系统(最佳方案),并且制定实现所推荐的系统的详细计划。如果用户接受分析员推荐的系统,则可以着手完成本阶段的另一项主要工作。,总体设计工作确定了解决问题的策略以及目标系统需要哪些程序,但是,怎样设计这些程序呢?结构设计的一条基本原理就是程序应该模块化,也就是一个大程序应该由许多规模适中的模块按合理的层次结构组织而成。总体设计阶段的第二项主要任务就是设计软件的结构,也就是确定程序由哪些模块组成以及模块间的关系。通常用层次图或结构图描绘软件的结构。,(5)详细设计,总体设计阶段以比较抽象概括的方式提出了解决问题的办法。详细设计阶段的任务就
20、是把解法具体化,也就是回答下面这个关键问题:“应该怎样具体地实现这个系统呢?”这个阶段的任务还不是编写程序,而是设计出程序的详细规格说明。这种规格说明的作用很类似于其他工程领域中工程师经常使用的工程蓝图,它们应该包含必要的细节,程序员可以根据它们写出实际的程序代码。通常用HIPO图(层次加输入/处理/输出图)或PDL语言(过程设计语言)描述详细设计的结果。,(6)编码和单元测试,这个阶段的关键任务是写出正确的容易理解、容易维护的系统模块。,(7)综合测试,这个阶段的关键任务是通过各种类型的测试(相应的调试)使系统达到预定的要求。最基本的测试是集成测试和验收测试。应该用正式的文档资料把测试计划、
21、详细测试方案以及实际测、试结果保存下来,做为系统配置的一个组成部分。,(8)软件维护,维护阶段的关键任务是,通过各种必要的维护活动使系统持久地满足用户的需要。四类维护活动:改正性维护、适应性维护、完善性维护、预防性维护。实际上每一项维护活动都应该经过提出维护要求(或报告问题),分析维护要求,提出维护方案,审批维护方案,确定维护计划,修改软件设计,修改程序,测试程序,复查验收等一系列步骤,因此是经历了一次压缩和简化了的系统定义和开发的全过程。每一项维护活动都应该准确地记录下来,做为正式的文档资料加以保存。,5.数据管理设计,数据管理部分设计的目的是确定在数据管理系统中存储和检索数据的基本结构,其
22、原则是要隔离数据管理方案的影响。目前,主要有三种主要的数据管理方法,分别为:1)普通文件管理:普通文件管理提供基本的文件处理和分类能力;2)关系型数据库管理系统(RDBMS):关系型数据库管理系统建立在关系理论的基础上,采用多个表来管理数据,每个表的结构遵循一系列“范式”进行规范化,以减少数据冗余。3)面向对象的数据库管理系统:面向对象的数据库是一种正在成熟的技术,它通过增加抽象数据类型和继承特性以及一些用来创建和操作类和对象服务,实现对象的持续存储。,数据管理设计方式()全部采用文件管理将所有的数据都存放于一个或者多个文件中,包括结构化的属性数据。优点是灵活,即每个软件厂商可以任意定义自己的
23、文件格式,管理各种数据,这一点在存储需要加密的数据以及非结构化的、不定长的几何体坐标记录时是有帮助的。缺点就是需要由开发者实现属性数据的更新、查询、检索等操作,而这些,都可以利用关系数据库完成,换言之,利用文件管理增加了属性数据管理的开发量,并且也不利于数据共享。,()文件结合关系数据库管理,1)空间数据:通过文件进行管理;2)时间数据:是结构化的,可以利用数据库进行管理;3)非空间属性数据:利用数据库进行管理;4)非结构化的描述数据:由于描述数据,不论是文本、图像,还是声音、录象,一般都对应于一个文件,这样可以简单地在关系数据库中记录其文件路径,其优点是关系数据库数据量小,缺点是文件路径常常
24、会因为文件的删除、移动操作而变得不可靠。,(a)通过文件管理空间数据(b)通过关系数据库管理属性数据(图)同时使用文件和关系数据库管理GIS数据,其中利用地物ID建立记录之间的连接关系,()全部采用关系数据库管理,集成化的GIS数据管理,坐标数据被集成到RDBMS中,形成空间数据库,其结构如图。可以认为一个地物对应于数据表中的一条记录,这样它带来的最直接的好处是避免了对“连接关系”的查找。关系数据库提供了一致的访问接口(SQL)以操作分布的海量数据,并且支持多用户并发访问,安全性控制和一致性检查。此外,通用的访问接口也便于实现数据共享。采用全关系GIS数据管理,由于几何体坐标数据不定长,会造成
25、存储效率低下。,()采用面向对象数据(OO-DBMS)库管理,应用对象数据库管理GIS数据,可以扩充对象数据库中的数据类型以支持空间数据,包括点、线、多边形等几何体,并且允许定义对于这些几何体的基本操作,包括计算距离、检测空间关系,甚至稍微复杂的运算,如缓冲区计算、叠加复合模型等,也可以由对象数据库管理系统“无缝”地支持。这样,通过对象数据库管理系统,提供了对于各种数据的一致的访问接口以及部分空间模型服务,不仅实现了数据共享,而且空间模型服务也可以共享,使GIS软件开发可以将重点放在数据表现以及复杂的专业模型上。,6.界面设计,界面设计原则 一个成功的用户应该是以用户为中心的,集成的和互动的。GIS界面设计中的要素,数据选择 数据表现 数据处理,本章知识点,软件危机的表现;GIS工程按生命周期方法学可划分为哪几个阶段,各阶段具体任务?,