GIS软件工程概.ppt

上传人:牧羊曲112 文档编号:5432052 上传时间:2023-07-06 格式:PPT 页数:95 大小:901.50KB
返回 下载 相关 举报
GIS软件工程概.ppt_第1页
第1页 / 共95页
GIS软件工程概.ppt_第2页
第2页 / 共95页
GIS软件工程概.ppt_第3页
第3页 / 共95页
GIS软件工程概.ppt_第4页
第4页 / 共95页
GIS软件工程概.ppt_第5页
第5页 / 共95页
点击查看更多>>
资源描述

《GIS软件工程概.ppt》由会员分享,可在线阅读,更多相关《GIS软件工程概.ppt(95页珍藏版)》请在三一办公上搜索。

1、GIS设计与应用,第二章 GIS软件工程概述,第一节 GIS软件工程,一、GIS软件的主要特点(1)在存储技术上,传统的GIS采用两库结构,即空间数据库和属性数据库的分离。(2)在数据组织与处理模式上,传统的GIS仍然沿袭地图处理的模式。在实现上,将空间数据组织成物理实体(点、线、面等)、图层、地图和图库几个层次。(3)在网络和分布式环境下系统组成方面,传统的GIS支持树型的系统结构和主从工作模式,上下级数据交换基本上以图层为单位进行。,(4)在空间数据管理范围方面,目前的GIS可以比较有效地处理二维空间数据,并能较好地处理DEM数据、实现三维实体的表面显示。(5)在数据共享和功能共享方面,虽

2、然目前开始注意元数据问题,已经解决了不同格式空间数据之间转换问题,可以实现有缝的数据共享。但是GIS功能共享和互操作问题尚未得到解决。以系统为中心的问题没有得到根本克服。因此,传统的GIS软件的特点可以简要地归纳为:以系统为中心,以地图为基础,二维处理,静态管理,尺度割裂,数据集中。,二、GIS软件开发过程中的问题(1)经费预算经常突破,完成时间一再拖延。由于缺乏GIS软件开发的经验和GIS软件开发数据的积累,使得软件开发计划很难制定。主观盲目制定的计划,执行起来和实际情况有很大的差距,使得开发经费一再突破。由于对工作量和开发难度估计不足,进度计划无法按时完成,开发时间一再拖延。(2)开发的软

3、件不能满足用户的要求。开发的初期对用户的要求了解不够明确,未能得到明确表达。开发工作开始后,软件人员和用户未能及时交换意见,使得一些问题不能及时解决,导致开发软件不能满足用户的要求,使得开发工作失败。,(3)开发的软件可维护性差。软件开发人员按各自的风格工作,各行其是。程序结构不好,运行维护时发现错误也很难修改,导致维护性差。统计数据表明,软件的维护费用占整个软件系统费用的2/3,而软件开发费用只占1/3。软件维护之所以有如此大的花费,是因为已经运行的软件还需排除隐含的错误,新增加的功能要加入进去,维护工作又是非常困难的,效率是非常低下的。因此,如何提高软件的可维护性,减少软件维护的工作量,也

4、是软件工程面临的主要问题之一。,(4)开发的软件可靠性差。在软件开发过程中,若在测试时,没有严格的、完整的测试,那么提交给用户的软件质量差,在运行中就会暴露出大量的问题。这种不可靠的软件,经常会影响系统正常工作,甚至会发生事故,造成生命财产的重大损失。在软件开发中,通常要花费40的代价进行测试和排错,即使这样还不能保证以后不再发生错误,为了提高软件可靠性,就要付出足够的代价。,(5)数据工程量特别大,特别是数据采集工作量十分大。而由数据工程又带来一系列问题,如可靠性差、周期延长、费用增长等等。(6)软件需求与软件生产的矛盾日益加剧,突出表现在软件生产率低。软件是知识高度密集的综合产物,计算机的

5、广泛应用使得软件的需求量大幅度上升,软件的发展远远不能适应社会对迅速增长的要求,而软件的生产又牌手工开发的状态,软件生产率低下,使得各国都感到软件开发人员的不足,所以,如何提高软件生产率,是软件工程的又一重要问题。,(7)软件可重用性差。提高软件的重用性,对于提高软件生产率、降低软件成本有差重要意义。当前的软件开发存在着大量的、重复的劳动,耗费了不少人力资源。软件的重用有各种级别,软件规格说明、软件模块、软件代码、软件文档等都可以是软件重用的单位。软件重用是软件工程中的一个重要研究课题,软件重用的理论和技术至今尚未彻底解决。,三、GIS软件开发存在问题的原因分析(1)软件的规模越来越大,结构越

6、来越复杂。随着计算机应用的日益广泛,需要开发的软件规模日益庞大,软件结构也日益复杂。1968年美国航空公司订票系统达到30万条指令;IBM360 OS第16版达到100万条指令,花了5000个人年;1973年美国阿波罗计划达到1000万条指令。这些庞大软件的功能非常复杂,体现在处理功能的多样性和运行环境的多样性。有人曾估计,软件设计与硬件设计相比,其逻辑量要多达10100倍。对于这种庞大规模的软件,其调用关系、接口信息复杂,数据结构也复杂,这种复杂程度超过了人所能接受的程度。,(2)软件开发的管理困难。由于软件规模大,结构复杂又具有无形性,导致管理困难,进度控制困难,可靠性无法保证。(3)软件

7、开发费用不断增加。软件生产是一种智力劳动,它是资金密集、人力密集的产业,大型软件投入人力多,周期长,费用上升很快。(4)软件开发技术落后。在20世纪60年代,人们注重一些计算机理论问题的研究,如编译原理、操作系统原理、数据库原理、人工智能原理、形式语言理论等,不注重软件开发技术的研究,用户要求的软件复杂性与软件技术解决复杂性的能力不相适应,它们之间的差距越来越大。,(5)生产方式落后。软件仍然采用个体手工方式开发,根据个人习惯爱好,无章可循、无规范可依据,工作靠言传身教方式,缺乏工程化思想方法的指导。(6)开发工具落后,生产率提高缓慢。软件开发工具过于原始,没有出现高效率的开发工具,因而软件生

8、产率低下。在19601980年期间,计算机硬件的生产由于采用计算机辅助设计、自动生产线等先进工具,使硬件生产提高了100万倍,而软件生产率只提高了2倍,相差十分悬殊。(7)通用GIS软件处在快速上升分化发展过程中,更新变化很快,不可避免存在不少发展过程中的衔接问题。,四、GIS软件工程1.软件工程的定义软件工程是用科学知识和技术原理来定义、开发、维护软件的一门学科。其主要思想是在软件生产中用工程化的方法代替传统手工方法。GIS软件工程就是在GIS软件的开发整个过程中,遵循一般软件开发的工程化原理和方法,并照顾到GIS软件开发的特殊规律和要求,对GIS软件从可行性研究、需求分析、总体设计、详细设

9、计、软件编制、软件测试,直到软件维护的各个阶段进行工程化规范的一门技术。,2.工程的性质软件工程是涉及计算机科学、工程科学、数学等领域的一门综合性的交叉学科。计算机科学中的研究成果均可用于软件工程,但是计算机科学着重于原理和理论,而软件工程着重于如何建造一个软件系统。GIS软件工程涉及的学科门类更为繁多,包括地理学、测量学、地图制图学、摄影测量与遥感学、计算机科学、数学、统计学、以及一切与处理和分析空间数据有关的学科。GIS软件工程明显地具有多学科交叉的特征,它既要吸收诸多相关学科的精华和营养,又将被多个相关学科所运用。,3.工程的目标软件工程是一门性学科,目的是从技术上和管理上采取了多项措施

10、,组织实施软件工程项目来建造一个大型系统,并最终希望得到项目的成功。所谓成功,是要达到以下几个目标:付出较低的开发成本;达到要求的软件功能;取得较好的软件性能;开发的软件易于移植;需要较低的维护费用;能按时完成开发任务,及时交付使用;开发的软件可靠性高。,这里提到的几个目标很自然地成为判断软件开发管理方法优劣的衡量尺度。实际上,实施软件开发项目就是力图在以上目标的冲突取得一定程度的平衡。,4软件工程的内容软件工程研究的主要内容是指软件开发技术和软件开发管理两个方面。在软件开发技术中,它主要研究软件开发方法、软件开发过程、软件开发工具和环境。在软件开发管理中,它主要是研究软件管理学、软件经济学和

11、软件心理学。软件工程包括三个要素:方法、工具和过程。,软件工程方法为软件开发提供了“如何做”的技术。它包括了多方面的任务,如项目计划与估算、软件系统需求分析、数据结构、系统总体结构的设计、算法过程的设计、编码、测试以及维护等。软件工程方法常采用某一种特殊的语言或图形的表达方法及一套质量保证标准。,软件工程的过程则是将软件工程的方法和工具综合起来以达到合理、及时地进行计算机软件开发的目的。过程定义了方法使用的顺序、要求交付的文档资料、为保证质量和协调变化所需要的管理、及软件开发各个阶段完成的里程碑。软件工程就是包含上述方法、工具及过程在内的一些步骤。,GIS软件工程的内容按照软件开发过程的先后顺

12、序,包括前期工程、设计工程、数据工程、工程实施和维护工程等五个阶段,每个阶段都以工程化原理作指导,以工程化方法做手段,并以质量控制、工程标准和工程管理作为保障,确保GIS软件的开发成功。,五、GIS工程的特色,GIS与其他信息系统的最大区别是它能够处理具有空间特性的对象,与一般制图系统相比较,它不仅能够进行空间数据的存储、显示、绘制、输出,而且能够对空间数据进行查询、分析。也就是说,GIS处理的对象不仅包括文本、表格、多媒体等数据,而且要处理大量的空间数据,是基于空间数据的信息系统。,GIS软件工程具有如下特点:1.系统复杂度大 软件的复杂度与如下几个因素密切相关:(1)交付文档的质量和数量。

13、交付的的文档都包括软件需求说明、系统设计书、用户手册、程序清单、测试报告等(2)软件的微观复杂度。即理解和处理单个程序或子程序内部结构与操作的难易程度。(3)软件的宏观复杂性。指理解和处理整个程序的结构与功能的难易程序。,从GIS软件工程系统结构上分析,在上面几个方面都增长较大,如图所示。,不难发现,功能规划相似的信息系统,GIS的复杂度可能比一般信息系统高数个级别,这也是我国GIS建设费用与建设周期高居不下的实质性因素,如果对此估计不足,就容易导致系统建设的失败。,2数据在系统中具有特别地位GIS的另一个特色在于支持导质海量数据处理,可以说,多数GIS本身就是一个强大的数据处理系统,数据甚至

14、被称为GIS的“核心”和“血液”,所以数据库建设在GIS建设中占有非常重要的地位。根据有关专家统计,系统投资的三个主要部分数据、硬件、软件的比例一般高达8:1:1,可见数据在系统中有重要的地位。,在系统开发过程中,在数据准备方面需要注意如下各方面:(1)数据的质量。(2)数据的现势性。(3)合理的数据组织结构。,3系统表达方式复杂(1)表达的内容复杂。GIS同时能够处理文本数据、空间数据、多媒体数据等,甚至也能够接受遥感遥测的实时数据,这是其他信息系统无法比拟的,相应地它的表达方式的组成上也是非常复杂的,如输出方面包括专题图、报表、业务表格等。(2)表达的对象具有时空特性。GIS处理的主要对象

15、为城市地理对象,它具有鲜明的空间特性,系统必须能够将这些对象的空间性直观地表达给用户;同时许多地理现象是具有一定时间序列的,系统需要模拟地理现象的时空演化,如土地利用现状图,它需要系统能够追溯到历史上的一定时刻,以支持地籍管理。所以,目前3DGIS、虚拟现实(VR)等技术在GIS的应用中发展十分迅速。,4系统更新速度更快 我国从20世纪80年代开始了GIS的建设,经历了项目型GIS、管理型GIS、社会型GIS等几个阶段,其技术和认识发生了翻天覆地的改变,其发展可以说与计算机技术完全同步了,这也导致GIS用户在建立相应系统时,所面临的一个复杂环境,往往系统刚刚建设完毕,整个系统就不能够满足当前需

16、要了,从而导致大面积的投资失误与浪费,这也是GIS建设周期长的一个后果,也反映了GIS技术和用户需求的发展速度。所以在开展用户调查、系统设计、系统维护等阶段必须对这种状况进行认真考虑,才能积极预防。,5系统维护工作量大 由于系统变化速度快,而且对外部数据依赖大,需要不断输入数据,所以系统本身的建设是一个长期的过程,其系统的开发工作可以说是“万时长征的第一步”,目前一些用户没有意识到这一点,有一种急功近利的思想,特别是国家政府部门领导把它当作一段时期的一件工作来抓,当时投资大,但是后继无力,致使系统不能够正常运转。一方面要求长期的投资,另一方面在系统设计开发过程中,要坚持“总体规划、分步实施、灵

17、活调整、急用先行”的设计思想,最后,要注意逐步发挥系统的效益,争取系统能够产生社会效益的同时,产生一定的经济效益,来确保系统长期的发展。,6易操作性要求高 正如前面所述,一个GIS中具有多个用户层次:专业维护人员、领导决策人员、一般业务人员,后两类用户并不是GIS专业人士,往往仅仅具备一般计算机操作能力,而GIS功能复杂,这两者之间需要通过良好的界面设计来协调,系统应该引导用户来完成操作,同时必须保证数据的安全性。由于处理对象的功能的复杂性导致系统的界面设计有较大困难,例如在同一屏幕上必须很好地同时显示图形和属性数据,如何解决这两者显示要求的矛盾关系就是界面设计的重要课题。,第二节 软件生存周

18、期模型一、概 述 软件生存周期模型是描述软件开发过程中各种活动如何执行的模型。软件生存周期模型确立了软件开发和演绎中各阶段的次序限制以及各阶段活动的准则,确立开发过程所遵守的规定和限制,便于各种活动的协调以及各类人员的有效通信,有利于活动重用和活动管理。,二、瀑布模型 瀑布模型是将软件生存周期各活动规定为依线性顺序联接的若干阶段的模型。它包括可行性分析、项目开发计划、需求分析、总体设计、详细设计、编码、测试和维护。它规定了由前至后、相互衔接的固定次序,如同瀑布流水,逐级下落。,1模型表示瀑布模型的表示如 图所示。该模型说明整个软件开发过程按图中5个阶段进行的。每个阶段的任务完成之后,产生右边相

19、应的文档(图中只列出该阶段最主要的文档),这些文档经过确认,表明该阶段工作完成,并进入下一阶段的工作。每个阶段均以上一阶段的文档作为开发的基础,如果某一文档出现问题,则要返回上一阶段去重新进行工作。,2瀑布模型的特点 瀑布模型严格按照生存周期各个阶段的目标、任务、文档和要求来进行开发。它强调了每一个阶段的严格性,尤其是开发前期的良好需求说明,这样就能解决在开发阶段后期修正不完善的需求说明将花费巨大的费用问题。在这种严格定义的模型中,开发人员试图在每一活动过程结束后,通过严格的阶段性复审与确认,得到该阶段结束的标志,保持不变,作为下一阶段活动的唯一基础,从而形成一个理想的线性开发序列,以每一步的

20、正确性和完整性来保证最终系统的质量。,瀑布模型是以文档形式驱动的,为合同双方最终确认产品规定了蓝本,为管理者进行项目开发管理提供了基础,为开发过程施加了“政策”或纪律限制,约束了开发过程中的活动。瀑布模型是一种整体开发模型,在开发过程中,用户看不见系统是什么样,只有开发完成向用户提交整个系统时,用户就能看到一个完整的系统。瀑布模型适合于功能和性能明确、完整、无重大变化的软件开发。大部分的系统软件就有这些特征,例如编译系统、数据库管理系统和操作系统等。在开发前均可完整、准确、一致和无二义性地定义其目标、功能和性能等。,3瀑布模型的局限性 不适用于应用软件项目(对于当前的大型软件项目,特别是应用软

21、件项目,在开发前期用户常常对系统只有一个模糊的想法,很难明确确定和表达对系统的全面要求。经过详细的要求定义,尽管这可得到一份较好的需求说明书。但很难期望该需求说明能将系统的一切都描述得完整、准确、一致并与实际环境相符,很难通过它在逻辑上推出系统的运行效果,并以此达到种类人员对系统的共同理解。因此,要保证每个阶段特别是定义阶段是正确的、完整的,这是属于理想情况,实际上是做不到或很难做到的。),由于知识背景的不同,工作中的疏漏和通讯媒介的局限性,使通讯中的误解无法避免;随着项目向前推进,用户会产生新的要求,或因环境变化希望系统也能随之变化。开发者也可能在设计中遇到某些未曾预料的实际困难,希望在需求

22、量中有所权衡。这些都成为进行严格线性开发的重大障碍,尽管通过加强复审与确认、全面测试和设立维护阶段来缓解上述困难,但均未在根本上解决这些问题。作为整体开发的瀑布模型,由于不支持软件产品的演化,对开发过程中的一些很难发现的错误只有在最终产品运行时才能发现。瀑布模型缺乏应付变化的机制,所以最终产品将难以维护。,瀑布模型是一种理想的线性开发模式,缺乏灵活性,特别是无法解决软件需求不明确或不准确的问题。这些缺点对软件开发带来了严重影响,最终可能导致开发出的软件并不是用户真正需要的软件,并且这一点在开发过程完成后才能发现,已为时太晚。,三、增量模型 在瀑布模型的开发过程中,人们花费很大的精力进行严格开发

23、,但终究难以接近理想目标,一切活动都掺杂着若干未能预料的疏漏。于是人们不再追求开发活动的极度严格性和准确性,而开始考虑传统思想中的一些基本观念是否应当改变,能否尽早提供部分产品给用户?能否一部分一部分地开发?通融在需求说明难以完善、难以明确的情况下,由快速分析而构造一个小的原型系统,满足用户的某些要求后,使用户在使用过程中受其启发,逐步确定各种需求?回答是肯定的,因而产生了增量模型。软件在该模型中是逐渐开发出来的,开发出一部分,向用户展示一部分,可让用户及时看到部分软件,及早发现问题。或者先开发一个原型软件,完成部分主要功能,展示给用户并征求意见,然后逐步完善,最终获得满意的软件产品。,四、螺

24、旋模型 对于复杂的大型软件,开发一个原型往往达不到要求。螺旋模型将瀑布模型与增量模型结合起来,加入了两种模型均忽略的风险分析,弥补了这两种模型的不足。螺旋模型是一种风险驱动模型。在软件开发中,有各种各样的风险。对于不同的软件项目,其开发风险有大有小。实践表明,项目越复杂,设计方案、资源、成本和进度等因素的不确定性越大,项目开发的风险也越大。因此,应及时对风险进行识别、分析和采取对策,从而消除或减少风险的危害。螺旋模型将开发过程分为几个螺旋周期,每个螺旋周期大致和瀑布模型相符合。,五、喷泉模型 瀑布模型的不足之处在于,它对软件重用和生存期中多项开发活动的集成并未提供支持,因而难于支持面向对象的开

25、发方法。“喷泉”一词体现了迭代和无间隙特性。系统某个部分常常重复工作多次,相关功能在每次迭代中随之加入演进的系统。无间隙是指在开发活动,即分析、设计和编码之间不存在明显的边界。,六、智能模型 智能模型也称为基于知识的软件开发模型,它纵使了上述若干模型,并把专家系统结合在一起。该模型应用基于规则的系统,采用归纳和推理机制,帮助软件人员完成开发工作,并使维护在系统规模说明一级进行。为此,建立了知识库,为模型、软件工程知识与特定领域的知识分别存入数据库。以软件工程知识为基础的生成规则构成的专家系统与含有应用领域知识规则的其他专家系统相结合,构成了这一应用领域软件的开发系统。,第三节 GIS软件工程的

26、生存周期,GIS软件工程生存周期是指一个GIS软件从提出开发要求开始直到该软件报废为止的整个时期。把整个生存周期划分为若干阶段,使得每个阶段有明确的任务,把规模大、结构复杂和管理复杂的软件开发变得容易控制和管理。,GIS的开发不仅有其既定的目标,而且有其阶段性。GIS软件工程整个生存周期划分为四个阶段,一般而言,包括以下四个阶段:系统分析、系统设计、系统实施、系统评价及维护。软件生存周期的各个阶段有不同的划分。软件规模、种类、开发环境以及开发使用的方法都有影响软件生存周期的划分。在划分软件生存周期的阶段时,应遵循的基本原则是各阶段的任务应尽可能的相应独立,同一阶段各项任务的性质尽可能相同,从而

27、降低每个阶段任务的复杂程度,简化不同阶段之间的联系,有得软件项目开发组织管理。通常,软件生存周期包括可行性研究和项目开发计划、需求分析、总体设计、详细设计、程序编制、测试、维护等活动,可将这些活动以适当方式分配到不同阶段去完成。,GIS软件工程过程没有规定一个特定的生存周期模型或软件开发方法,各软件开发机构可为其开发项目选择一种生存周期模型,并将软件工程过程所含的过程、活动和任务影射到该模型中,也可以选择和使用软件开发方法来执行适合于其软件项目的活动和任务。按照工程化的思想进行划分,GIS软件工程生存周期包括:前期工程、设计工程、数据工程、工程实施、维护工程等五个阶段。以下简要介绍各个工程阶段

28、的情况。,一、前期工程GIS软件前期工程阶段,包括工程调研、可行性研究、制定项目计划、需求分析等子阶段。1工程调研根据软件开发的基本目标和技术要求,对国内外相关项目通过走访、交谈、函件往来、资料检索等方式进行调研,确定该领域的GIS软件的发展现状、存在问题,从而为拟开展的软件工程项目提供有价值的参考资料。,2可靠性研究和项目开发计划 根据软件和项目开发计划阶段必须要回答的问题是“要解决的问题是什么”。这问题有行得通的解决办法吗?若有解决问题的办法,则需要多少费用?需要多少资源?需要多少时间?要回答这些问题,就要进行问题定义、可行性研究,制定项目开发计划。用户提出一个软件开发要求后,系统分析员首

29、先要解决该软件项目的性质是什么,它是数据处理问题还是实时控制问题,它是科学计算问题还是人工智能问题等。还要明确该问题的目标是什么,该项目的模型如何等。,在清楚了问题的性质、目标、规模后,还要确定问题有没有行得通的解决办法。系统分析员要进行压缩和简化的需求分析和设计,也就是在高层次上进行分析和设计,探索这个问题是否值得去解决,是否有可行的解决办法。最后要提交可行性研究报告。经过可行性研究后,确定该问题值得去解决,然后制定项目开发计划。根据开发项目的目标、功能、性质及规模,估计项目需要的资源,即需要的计算机硬件资源,需要的软件开发工具和应用软件包,需要的开发人员数目及层次。还要对软件开发费用做出估

30、算,对开发进度做出估计,制定完成任务实施计划。最后,将项目开发计划和可行性研究报告一起提交管理部门审查。,3需求分析 需求分析阶段的任务不是具体的解决问题,而是准确地确定“软件系统必须做什么”,确定软件系统必须具备哪些功能。用户了解他们所面对的问题,知道必须做什么,但是通常不能完整、准确地表达出来,也不知道怎样用计算机解决他们的问题。而软件开发人员虽然知道怎样用软件完成人们提出的各种功能要求,但是,对用户的具体业务和需求不完全清楚,这是需求分析阶段的困难所在。系统工程分析员要和用户密切配合,充分交流各自的理解,充分理解用户的业务流程,完整、准确地表达出来。这一阶段要给出软件需求说明书。,二、设

31、计工程,GIS软件设计工程阶段,包括总体设计、数据库设计、模型设计、详细设计等子阶段。1总体设计在总体设计阶段,开发人员把确定的各项功能需求转换成需要的体系结构,在该体系结构中,每个成分都是意义明确的模块,即每个模块都和某些功能需求相对应。,2数据库设计 数据库设计是指对于一个给定的应用环境,提供一个确定的最优数据模型与处理模式的逻辑设计,以及一个确定数据存储结构与存取方法的物理设计,建立能反映现实世界信息和信息联系,满足用户要求,又能被某个DBMS所接受,同时能实现系统目标并有效存取数据的数据库,3应用模型设计 由于GIS软件具有交叉性、综合性的特点,所以GIS的应用领域相当广泛,而每种类型

32、的GIS应用都有自己独特的特点,这个特点主要体现在应用领域模型的构建和实现上,所以在进行GIS软件开发的分析阶段,一项重要的工作是针对拟开发领域的特殊技术要求,运用并分析该领域的应用模型,设计实现该应用模型的技术方法。,4详细设计 详细设计阶段就是为每个模块完成的功能进行具体描述,要把功能描述转变为精确的、结构化的过程描述。即该模块的控制结构是怎样的,先做什么,后做什么,有什么样的条件判定,有些什么重要处理等,并用相应的表示工具把这些控制结构表示出来。,三、数据工程,GIS软件数据工程阶段,包括数据预处理、数据采集、数据处理等子阶段。1数据预处理无论用何种方法获取的原始数据,都可能存在着数字化

33、过程中不可避免的引入错误,数字化数据与使用格式不一致,各种数据来源的比例尺和投影不统一,各幅地图数据之间的不匹配,以及地图比例尺之间、地图比例尺与数字化仪的长度单位之间不一致,因此必须通过数据预处理,才能获得净化的数据文件,使采集的数据符合规范化标准。,2数据采集 建立GIS的第一步就是将空间实体的图形数据和属性数据输入到地理数据库中,这就是GIS的数据采集。GIS的数据采集需进行四方面的工作,即野外数据的采集、图形数据的采集、属性数据的采集和图形数据与属性数据的连接。野外数据的采集主要有三种:GPS方法、摄影测量方法和测量法。地图数据是GIS主要的信息源,对它的采集主要是指对地图进行数字化,

34、主要有两种方式,即手扶跟踪数字化和扫描数字化。属性数据的采集方法通常有六种。,3数据处理 数据处理工作包括格式转换、图形单元的修改与增删、图幅拼接、坐标转换、几何纠正、数据编辑处理、拓扑结构及拓扑关系的自动生成等数据库建立前的工作。,四、工程实施,GIS软件工程实施阶段,包括程序编制、测试、试运行等子阶段。1程序编制程序编制阶段就是把每个模块的控制结构转换成计算机可接受的程序代码,即写成以某特定程序设计语言表示的“源程序清单”。编写出的程序应是结构好,清晰易读,并且与设计相一致。,2测试 测试分为模块测试、组装测试、确认测试。模块测试是查找各模块在功能和结构上存在的问题。组装测试是将各模块按一

35、定顺序组装起来进行测试,主要是查找各模块之间接口上存在的问题。确认测试是按软件需求说明书上的功能逐项进行的,发现不满足用户需求的问题,决定开发的软件是否合格、能否交付用户使用等。,3试运行 试运行是保证最终交付给用户的软件质量的重要手段,GIS软件试运行应由系统开发人员和用户共同进行,在试运行过程中要进行正确性完善和适应性完善。试运行的时间应视系统的规模和复杂程度而定,一般为13个月。,五、维护工程,GIS软件维护工程阶段,包括数据库维护、软硬件维护等方面。1数据库维护 GIS软件中的数据随着应用规模的日益扩大而迅速变化,不但基础地理信息,而且其他所有专题信息均需要经常地进行维护和更新。应根据

36、系统的规模和实际需求,建立系统的数据维护更新机制,规定系统数据维护更新的周期,使系统的所有数据均相对地始终处于最新的状态。,2软件维护和硬件维护 软件维护是软件生存周期中时间最长的阶段。已交付的软件投入正式使用后,便进入软件维护阶段,它可以持续几年甚至几十年。软件运行过程中可能由于各方面的原因,需要对它进行修改。其原因可能是运行中发现了软件隐含的错误而需要修改;也可能是为了适应变化了的软件工作环境而需要做适当变更;也可能是因为用户业务发生变化而需要扩充和增强软件的功能等。同样,也应建立系统硬件设备的日常维护制度,根据设备的使用说明进行及时的维护,以保证设备完好和系统的正常运行。但当设备的处理能

37、力达不到要求,或者设备本身已经过时、淘汰,或者设备损坏,买不到零配件,或者不值得修理时,应考虑硬件更新。,第四节 GIS软件工程建设的主要过程,从系统工程的角度看,一个完整的GIS既是面向实际应用的计算机软硬件系统,同时也是基于系统化思想指导下的工程化建设过程。与一般信息系统不同的是,GIS以管理具有空间定位特征的地理数据为主要内容,具体表现在:综合性强,横跨多学科 数据组织以空间数据为主 面向应用,以空间分析为主,一、GIS软件开发的工程化方法,目前的GIS软件开发过程中存在的问题,主要包括:GIS产品开发无计划性;GIS产品开发过程的不规范化;无评测GIS产品的手段。,按照软件工程化方法定

38、义,可以将GIS产品开发与演进活动分成六个基本步骤:即制定GIS开发计划、GIS需求分析、GIS系统设计(包括总体设计、数据库设计和详细设计)、GIS程序编码、GIS产品测试及运行维护。,二、GIS软件工程的系统分析,成功的GIS工程项目应达到以下几个主要目标:较低的开发成本,符合要求的功能,较好的性能和可靠性,有较好的移植性和较低的维护费用,最后需要软件能按时完成和及时交付使用。无疑,上述目标之间存在一定的互补和互斥关系。实施GIS开发项目就是力图在以上目标的冲突中取得一定程度的平衡。,进行GIS软件工程系统分析主要有以下步骤:(1)识别GIS用户要求。(2)评价GIS的可行性。(3)进行G

39、IS开发经济分析和技术分析。(4)把功能分配给GIS软硬件、人、GIS数据库和其他系统元素。(5)建立GIS开发成本和进度限制。(6)生成GIS规格说明,形成所有后续GIS工程的基础。,2GIS软件工程的可行性研究,GIS可行性研究主要集中在以下四个方面:经济可行性;技术可行性;法律可行性;对系统不同开发方案进行比较评估。可行性研究可以单独归档为一个报告,也可以作为“GIS系统规格说明”的附录。,GIS项目可行性报告形式多样,主要包括以下内容:(1)GIS项目背景:问题的描述,实现环境,限制条件,重要的研究结果(基础)。(2)候选方案:各候选GIS的系统配置,选择最终方案的准则。(3)GIS系

40、统描述:简略的功能描述,分配元素的可行性。(4)经济可行性:经费概算,预期的经济效益。(5)技术可行性:技术实力,已有工作基础,设备条件。(6)法律可行性:系统开发可能导致的侵权、违法和责任。(7)GIS用户使用可行性:用户单位的行政管理、工作制度,使用人员的素质与项目有关的其他问题,如其他方案介绍、未来可能的变化等。,3GIS开发成本效益分析 成本效益分析的目的,是从经济角度评价开发一个新的GIS项目是否可行。成本效益分析首先是估算待开发GIS的成本,然后与可能取得的效益进行比较和权衡。有形的效益可以用货币的时间价值、投资回收期、纯收入等指标进行度量。GIS的经济效益等于因使用GIS而增加的

41、收入加上使用GIS可以节省的运行费用。运行费用包括操作员人数、工作时间、消耗的物资等。系统的效益分析随系统的特征而定。,4GIS开发技术分析 在技术分析时,GIS系统分析员评价系统的技术价值,同时收集附加的有关性能、可靠性、可维护性及生产率方面的信息,在这个步骤中,还包括一些研究和设计工作。技术分析的内容主要包括完成GIS的功能和性能需要什么技术,哪些新设备、方法、算法或者过程,有什么开发风险,这些技术问题对成本的影响如何?另外,模型化方法(包括数学模型及物理模型)是对待开发系统进行技术分析的一种有效方法。,5分配与权衡 一旦解决了与GIS系统分析任务相关的问题,就应该开始考虑各候选的GIS解

42、决方案,对各候选GIS的系统配置方案进行评估,并将每一个GIS功能,与其必要的一些性能和接口特性一起分配给一个或多个系统元素(软硬件、数据库、人员、文档等)。每一个候选GIS的系统配置方案都要根据一组按其重要性排序的评估参数来评估。当把基于计算机系统的GIS所有功能分配到各个系统元素时,就能够据此建立模型,用以表达GIS系统元素之间的相互关系,将GIS系统结构模型化,并为稍后的GIS需求分析奠定基础。,三、GIS软件工程的需求分析,GIS软件工程需求分析所要做的工作是深入描述GIS的功能和性能,确定GIS系统设计的限制和GIS同其他系统元素的接口细节。定义GIS的其他有效性需求。1GIS软件工

43、程需求分析的原则 1)必须能够表达和理解问题的数据域和功能域GIS产品的定义和开发工作最终是为了解决数据特别是空间数据的处理问题。对于GIS产品所处理的数据,其数据域应包括数据流、数据内容和数据结构。,数据流即数据通过一个GIS系统时的变化方式。,数据内容即数据项 数据结构即各种数据项的逻辑组织。,2)必须按自顶向下、逐层分解的方式对问题进行分解和不断细化对一个复杂的GIS的功能域和信息域都应作进一步分解,这种分解可以是同一层次的横向分解,也可以是多层次的纵向分解。,2GIS软件工程需求分析的过程GIS软件工程需求分析阶段的工作包括以下四方面内容:对问题的识别、分析与综合、制定规格说明和评审。

44、1)问题的识别问题的识别首先要确定对GIS的综合要求,并提出这些要求的实现条件,应达到的标准。这些需求主要包括:功能需求 性能需求环境需求可靠性分析安全保密要求 用户界面需求,问题识别的另一重要任务是建立需求分析的通讯途径,如图所示,以保证能顺利地对问题进行分析,项目负责人在此过程中起协调人的作用。,2)分析与综合 分析员从数据流和数据结构出发,逐步细化所有的软件功能,找出GIS内部各元素之间的联系,接口特性和设计上的限制,分析它们是否满足功能要求,是否合理。最终合成GIS产品的解决方案,给出目标系统的详细逻辑模型。在这个步骤中,分析与综合工作反复进行。常用的分析方法有面向数据流的结构化分析方

45、法(SA),面向数据结构JSD方法和面向对象分析方法(OOA),以及用于建立动态模型的状态迁移图或Petri网。,3)编制需求分析文档 需求分析文档主要是指软件需求规格说明书。为了确切表达用户对软件的输入输出要求,还需要制定数据要求说明书和初步的用户手册。,四、GIS软件工程的系统设计,GIS软件工程系统设计的主要内容包括数据设计、系统结构设计和过程设计。数据设计侧重于空间数据结构和属性数据库结构的定义;系统结构设计定义GIS各主要成分之间的关系;过程设计则是把结构成分转换成GIS的过程性描述。在编码步骤,根据这种过程性描述,生成源程序代码,然后通过测试最终得到完整的GIS产品。,1结构化设计

46、方法 结构化设计方法是基于模块化、自顶向下逐层细化、结构化程序设计等程序设计技术基础上发展起来的,该方法实施的要点是:(1)首先研究、分析数据流图,从GIS的需求规格说明中弄清数据流加工的过程。(2)根据数据流图决定问题的类型。然后针对不同的类型分别进行分析处理。(3)由数据流图推导出GIS的初始结构图。(4)利用一些调控性原则来改进GIS的初始结构图,直到得到符合要求的结构图为止。(5)修改和补充数据词典。(6)制定测试计划。,2原型化设计方法 原型是指模拟某种产品的原始模型。在软件开发过程中,原型是软件的一个早期可运行的版本,它反映最终系统的部分主要特性。如果在获得一组基本GIS需求说明后

47、,通过快速分析构造出一个小型GIS,满足用户的基本要求,使用户可在试用原形系统的过程中得到亲身感受和启发,做出反应和评价,然后开发者根据用户的意见对原型加以改进。随着不断试验、纠错、使用、评价和修改,获得新的原型版本,如此周而复始,逐步减少分析和通信中的误解,弥补不足之处,进一步确定各种需求细节,适应需求的变更,从而提高最终GIS产品的质量。,建立快速原型法的优点主要表现在以下方面:(1)增进GIS开发人员和GIS用户对系统服务需求的理解,使比较含糊的具有不确定性的GIS需求明确化。(2)原型化方法提供了一种有力的学习手段。通过原型法,用户可以亲身体验早期的开发过程,获得关于GIS系统的专门知

48、识,对培训使用者有积极作用。(3)使用原型化方法可以容易地确定GIS的性能,确认各项主要系统服务的可应用性,确认系统设计的可行性和系统作为产品的结果。(4)GIS原型的最终版本,有时略加修改就可以成为最终系统的一个组成部分。,3面向对象设计方法 面向对象(Object-Oriented)的概念起源于程序设计语言。对象是客观世界实体的抽象描述,由信息(数据)和对数据的操作组合而成。类是多个相似对象共同特性的描述。消息是对象之间通信的手段,是对象之间相互请求或相互协作的途径,它用来指示对象的操作。方法是对象接收到消息后应采取的动作序列的描述。实例是由一特定类描述的具体对象。在系统构成上,类形成了一

49、个具有特定功能的模块和一种代码共享的手段,类和实例之间的关系是抽象和具体的关系。实例是类的具体事物,类是多个实例的综合抽象。,对象具有封装性,对外部只提供一个抽象接口而隐藏具体实现细节。类具有继承的特性。继承是一种现实世界中对象之间独特的关系,它使得某类对象可以继承另外一类对象的特征和能力。继承性具有双重作用,一是减少代码冗余,二是通过协调性来减少相互之间的接口和界面。研究人员在面向对象程序设计中试图加进数据持久性的概念,以支持数据库。持久性是指数据能在进程或操作中存在,并且能在下一个进程或操作中重新使用的能力。,面向对象技术所追求的目标将世界上的问题求解尽可能地简化。在GIS领域,面向对象的

50、设计方法和面向对象GIS产品有着非常广阔的前景。在GIS系统设计中,可以将GIS的数据获取、格式转换、图形显示等内容分别封装为数据获取类、格式转换类、图形显示类等,然后定义各类的属性、方法和事件。如对图形显示类可以定义显示范围、背景颜色、符号式样等属性,放大、缩小、平移等方法以及单击、拖拽等鼠标事件。各种组件式GIS产品,是体现面向对象GIS技术的典型代表。如Maplnfo公司的MapX,ESRI公司的Mapobjects等产品,都将GIS的常用功能封装成类和对象呈现给开发者。,五、GIS软件工程的编码设计,程序设计语言的特性和程序设计风格会深刻地影响GIS软件的质量和可维护性。为了保证程序编

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号