GIS软件工程概.ppt
《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软件工程的
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- GIS 软件工程
链接地址:https://www.31ppt.com/p-5432052.html