GIS软件工程概.ppt
《GIS软件工程概.ppt》由会员分享,可在线阅读,更多相关《GIS软件工程概.ppt(95页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、GIS设计与应用设计与应用第二章第二章 GIS软件工程概述软件工程概述第一节第一节 GIS软件工程软件工程一、一、GIS软件的主要特点软件的主要特点(1)在存储技术上,传统的)在存储技术上,传统的GIS采用两库结构,即空间数据库采用两库结构,即空间数据库和属性数据库的分离。和属性数据库的分离。(2)在数据组织与处理模式上,传统的)在数据组织与处理模式上,传统的GIS仍然沿袭地图处理仍然沿袭地图处理的模式。在实现上,将空间数据组织成物理实体(点、线、的模式。在实现上,将空间数据组织成物理实体(点、线、面等)、图层、地图和图库几个层次。面等)、图层、地图和图库几个层次。(3)在网络和分布式环境下系
2、统组成方面,传统的)在网络和分布式环境下系统组成方面,传统的GIS支持树支持树型的系统结构和主从工作模式,上下级数据交换基本上以型的系统结构和主从工作模式,上下级数据交换基本上以图层为单位进行。图层为单位进行。(4)在空间数据管理范围方面,目前的)在空间数据管理范围方面,目前的GIS可以比较有效地处可以比较有效地处理二维空间数据,并能较好地处理理二维空间数据,并能较好地处理DEM数据、实现三维实体数据、实现三维实体的表面显示。的表面显示。(5)在数据共享和功能共享方面,虽然目前开始注意元数据)在数据共享和功能共享方面,虽然目前开始注意元数据问题,已经解决了不同格式空间数据之间转换问题,可以实问
3、题,已经解决了不同格式空间数据之间转换问题,可以实现有缝的数据共享。但是现有缝的数据共享。但是GIS功能共享和互操作问题尚未得功能共享和互操作问题尚未得到解决。以系统为中心的问题没有得到根本克服。到解决。以系统为中心的问题没有得到根本克服。因此,传统的因此,传统的GIS软件的特点可以简要地归纳为:以系软件的特点可以简要地归纳为:以系统为中心,以地图为基础,二维处理,静态管理,尺度割裂,统为中心,以地图为基础,二维处理,静态管理,尺度割裂,数据集中。数据集中。二、二、GIS软件开发过程中的问题软件开发过程中的问题(1)经费预算经常突破,完成时间一再拖延。)经费预算经常突破,完成时间一再拖延。由于
4、缺乏由于缺乏GIS软件开发的经验和软件开发的经验和GIS软件开发数据的积累,软件开发数据的积累,使得软件开发计划很难制定。主观盲目制定的计划,执行起使得软件开发计划很难制定。主观盲目制定的计划,执行起来和实际情况有很大的差距,使得开发经费一再突破。由于来和实际情况有很大的差距,使得开发经费一再突破。由于对工作量和开发难度估计不足,进度计划无法按时完成,开对工作量和开发难度估计不足,进度计划无法按时完成,开发时间一再拖延。发时间一再拖延。(2)开发的软件不能满足用户的要求。)开发的软件不能满足用户的要求。开发的初期对用户的要求了解不够明确,未能得到明确表达。开发的初期对用户的要求了解不够明确,未
5、能得到明确表达。开发工作开始后,软件人员和用户未能及时交换意见,使得开发工作开始后,软件人员和用户未能及时交换意见,使得一些问题不能及时解决,导致开发软件不能满足用户的要求,一些问题不能及时解决,导致开发软件不能满足用户的要求,使得开发工作失败。使得开发工作失败。(3)开发的软件可维护性差。)开发的软件可维护性差。软件开发人员按各自的风格工作,各行其是。程软件开发人员按各自的风格工作,各行其是。程序结构不好,运行维护时发现错误也很难修改,导致维序结构不好,运行维护时发现错误也很难修改,导致维护性差。统计数据表明,软件的维护费用占整个软件系护性差。统计数据表明,软件的维护费用占整个软件系统费用的
6、统费用的2/3,而软件开发费用只占,而软件开发费用只占1/3。软件维护之所。软件维护之所以有如此大的花费,是因为已经运行的软件还需排除隐以有如此大的花费,是因为已经运行的软件还需排除隐含的错误,新增加的功能要加入进去,维护工作又是非含的错误,新增加的功能要加入进去,维护工作又是非常困难的,效率是非常低下的。因此,如何提高软件的常困难的,效率是非常低下的。因此,如何提高软件的可维护性,减少软件维护的工作量,也是软件工程面临可维护性,减少软件维护的工作量,也是软件工程面临的主要问题之一。的主要问题之一。(4)开发的软件可靠性差。)开发的软件可靠性差。在软件开发过程中,若在测试时,没有严格的、在软件
7、开发过程中,若在测试时,没有严格的、完整的测试,那么提交给用户的软件质量差,在运完整的测试,那么提交给用户的软件质量差,在运行中就会暴露出大量的问题。这种不可靠的软件,行中就会暴露出大量的问题。这种不可靠的软件,经常会影响系统正常工作,甚至会发生事故,造成经常会影响系统正常工作,甚至会发生事故,造成生命财产的重大损失。在软件开发中,通常要花费生命财产的重大损失。在软件开发中,通常要花费40的代价进行测试和排错,即使这样还不能保证的代价进行测试和排错,即使这样还不能保证以后不再发生错误,为了提高软件可靠性,就要付以后不再发生错误,为了提高软件可靠性,就要付出足够的代价。出足够的代价。(5)数据工
8、程量特别大,特别是数据采集工作量十分大。)数据工程量特别大,特别是数据采集工作量十分大。而由数据工程又带来一系列问题,如可靠性差、周期而由数据工程又带来一系列问题,如可靠性差、周期延长、费用增长等等。延长、费用增长等等。(6)软件需求与软件生产的矛盾日益加剧,突出表现在软)软件需求与软件生产的矛盾日益加剧,突出表现在软件生产率低。件生产率低。软件是知识高度密集的综合产物,计算机的广泛应用软件是知识高度密集的综合产物,计算机的广泛应用使得软件的需求量大幅度上升,软件的发展远远不能适应使得软件的需求量大幅度上升,软件的发展远远不能适应社会对迅速增长的要求,而软件的生产又牌手工开发的状社会对迅速增长
9、的要求,而软件的生产又牌手工开发的状态,软件生产率低下,使得各国都感到软件开发人员的不态,软件生产率低下,使得各国都感到软件开发人员的不足,所以足,所以,如何提高软件生产率,是软件工程的又一重要问题。,如何提高软件生产率,是软件工程的又一重要问题。(7)软件可重用性差。)软件可重用性差。提高软件的重用性,对于提高软件生产率、降低提高软件的重用性,对于提高软件生产率、降低软件成本有差重要意义。当前的软件开发存在着大量软件成本有差重要意义。当前的软件开发存在着大量的、重复的劳动,耗费了不少人力资源。软件的重用的、重复的劳动,耗费了不少人力资源。软件的重用有各种级别,软件规格说明、软件模块、软件代码
10、、有各种级别,软件规格说明、软件模块、软件代码、软件文档等都可以是软件重用的单位。软件重用是软软件文档等都可以是软件重用的单位。软件重用是软件工程中的一个重要研究课题,软件重用的理论和技件工程中的一个重要研究课题,软件重用的理论和技术至今尚未彻底解决。术至今尚未彻底解决。三、三、GIS软件开发存在问题的原因分析软件开发存在问题的原因分析(1)软件的规模越来越大,结构越来越复杂。)软件的规模越来越大,结构越来越复杂。随着计算机应用的日益广泛,需要开发的软件规模日益随着计算机应用的日益广泛,需要开发的软件规模日益庞大,软件结构也日益复杂。庞大,软件结构也日益复杂。1968年美国航空公司订票系统年美
11、国航空公司订票系统达到达到30万条指令;万条指令;IBM360 OS第第16版达到版达到100万条指令,花万条指令,花了了5000个人年;个人年;1973年美国阿波罗计划达到年美国阿波罗计划达到1000万条指令。万条指令。这些庞大软件的功能非常复杂,体现在处理功能的多样性和这些庞大软件的功能非常复杂,体现在处理功能的多样性和运行环境的多样性。有人曾估计,软件设计与硬件设计相比,运行环境的多样性。有人曾估计,软件设计与硬件设计相比,其逻辑量要多达其逻辑量要多达10100倍。对于这种庞大规模的软件,其倍。对于这种庞大规模的软件,其调用关系、接口信息复杂,数据结构也复杂,这种复杂程度调用关系、接口信
12、息复杂,数据结构也复杂,这种复杂程度超过了人所能接受的程度。超过了人所能接受的程度。(2)软件开发的管理困难。)软件开发的管理困难。由于软件规模大,结构复杂又具有无形性,导致管由于软件规模大,结构复杂又具有无形性,导致管理困难,进度控制困难,可靠性无法保证。理困难,进度控制困难,可靠性无法保证。(3)软件开发费用不断增加。)软件开发费用不断增加。软件生产是一种智力劳动,它是资金密集、人力密软件生产是一种智力劳动,它是资金密集、人力密集的产业,大型软件投入人力多,周期长,费用上升很集的产业,大型软件投入人力多,周期长,费用上升很快。快。(4)软件开发技术落后。)软件开发技术落后。在在20世纪世纪
13、60年代,人们注重一些计算机理论问题的年代,人们注重一些计算机理论问题的研究,如编译原理、操作系统原理、数据库原理、人工研究,如编译原理、操作系统原理、数据库原理、人工智能原理、形式语言理论等,不注重软件开发技术的研智能原理、形式语言理论等,不注重软件开发技术的研究,用户要求的软件复杂性与软件技术解决复杂性的能究,用户要求的软件复杂性与软件技术解决复杂性的能力不相适应,它们之间的差距越来越大。力不相适应,它们之间的差距越来越大。(5)生产方式落后。)生产方式落后。软件仍然采用个体手工方式开发,根据个人习惯爱软件仍然采用个体手工方式开发,根据个人习惯爱好,无章可循、无规范可依据,工作靠言传身教方
14、式,好,无章可循、无规范可依据,工作靠言传身教方式,缺乏工程化思想方法的指导。缺乏工程化思想方法的指导。(6)开发工具落后,生产率提高缓慢。)开发工具落后,生产率提高缓慢。软件开发工具过于原始,没有出现高效率的开发软件开发工具过于原始,没有出现高效率的开发工具,因而软件生产率低下。在工具,因而软件生产率低下。在19601980年期间,年期间,计算机硬件的生产由于采用计算机辅助设计、自动生计算机硬件的生产由于采用计算机辅助设计、自动生产线等先进工具,使硬件生产提高了产线等先进工具,使硬件生产提高了100万倍,而软万倍,而软件生产率只提高了件生产率只提高了2倍,相差十分悬殊。倍,相差十分悬殊。(7
15、)通用)通用GIS软件处在快速上升分化发展过程中,更软件处在快速上升分化发展过程中,更新变化很快,不可避免存在不少发展过程中的衔接问新变化很快,不可避免存在不少发展过程中的衔接问题。题。四、四、GIS软件工程软件工程1.软件工程的定义软件工程的定义软件工程是用科学知识和技术原理来定义、开发、维护软件的软件工程是用科学知识和技术原理来定义、开发、维护软件的一门学科。其主要思想是在软件生产中用工程化的方法代替传一门学科。其主要思想是在软件生产中用工程化的方法代替传统手工方法。统手工方法。GIS软件工程就是在软件工程就是在GIS软件的开发整个过程中,遵循一般软件软件的开发整个过程中,遵循一般软件开发
16、的工程化原理和方法,并照顾到开发的工程化原理和方法,并照顾到GIS软件开发的特殊规律软件开发的特殊规律和要求,对和要求,对GIS软件从可行性研究、需求分析、总体设计、详软件从可行性研究、需求分析、总体设计、详细设计、软件编制、软件测试,直到软件维护的各个阶段进行细设计、软件编制、软件测试,直到软件维护的各个阶段进行工程化规范的一门技术。工程化规范的一门技术。2.工程的性质工程的性质软件工程是涉及计算机科学、工程科学、数学等领域的软件工程是涉及计算机科学、工程科学、数学等领域的一门综合性的交叉学科。计算机科学中的研究成果均可一门综合性的交叉学科。计算机科学中的研究成果均可用于软件工程,但是计算机
17、科学着重于原理和理论,而用于软件工程,但是计算机科学着重于原理和理论,而软件工程着重于如何建造一个软件系统。软件工程着重于如何建造一个软件系统。GIS软件工程涉及的学科门类更为繁多,包括地理学、软件工程涉及的学科门类更为繁多,包括地理学、测量学、地图制图学、摄影测量与遥感学、计算机科学、测量学、地图制图学、摄影测量与遥感学、计算机科学、数学、统计学、以及一切与处理和分析空间数据有关的数学、统计学、以及一切与处理和分析空间数据有关的学科。学科。GIS软件工程明显地具有多学科交叉的特征,它软件工程明显地具有多学科交叉的特征,它既要吸收诸多相关学科的精华和营养,又将被多个相关既要吸收诸多相关学科的精
18、华和营养,又将被多个相关学科所运用。学科所运用。3.工程的目标工程的目标软件工程是一门性学科,目的是从技术上和管理上采取软件工程是一门性学科,目的是从技术上和管理上采取了多项措施,组织实施软件工程项目来建造一个大型系了多项措施,组织实施软件工程项目来建造一个大型系统,并最终希望得到项目的成功。所谓成功,是要达到统,并最终希望得到项目的成功。所谓成功,是要达到以下几个目标:以下几个目标:付出较低的开发成本;达到要求的软件付出较低的开发成本;达到要求的软件功能;取得较好的软件性能;开发的软件易于移植;需功能;取得较好的软件性能;开发的软件易于移植;需要较低的维护费用;能按时完成开发任务,及时交付使
19、要较低的维护费用;能按时完成开发任务,及时交付使用;开发的软件可靠性高。用;开发的软件可靠性高。这里提到的几个目标很自然这里提到的几个目标很自然地成为判断软件开发管理方地成为判断软件开发管理方法优劣的衡量尺度。实际上,法优劣的衡量尺度。实际上,实施软件开发项目就是力图实施软件开发项目就是力图在以上目标的冲突取得一定在以上目标的冲突取得一定程度的平衡。程度的平衡。4软件工程的内容软件工程的内容软件工程研究的主要内容主要内容是指软件开发技术和软件开软件开发技术和软件开发管理两个方面。在软件开发技术中,它主要研究软发管理两个方面。在软件开发技术中,它主要研究软件开发方法、软件开发过程、软件开发工具和
20、环境。件开发方法、软件开发过程、软件开发工具和环境。在软件开发管理中,它主要是研究软件管理学、软件在软件开发管理中,它主要是研究软件管理学、软件经济学和软件心理学。经济学和软件心理学。软件工程包括三个要素:软件工程包括三个要素:方法、工具和过程。方法、工具和过程。软件工程方法为软件开发提供了软件工程方法为软件开发提供了“如何做如何做”的的技术。技术。它包括了多方面的任务,如项目计划与估算、软件系统需求分析、数据结构、系统总体结构的设计、算法过程的设计、编码、测试以及维护等。软件工程方法常采用某一种特殊的语言或图形的表达方法及一套质量保证标准。软件工程的过程则是将软件工程的方法和工具软件工程的过
21、程则是将软件工程的方法和工具综合起来以达到合理、及时地进行计算机软件综合起来以达到合理、及时地进行计算机软件开发的目的。开发的目的。过程定义了方法使用的顺序、要求交付的文档资料、为保证质量和协调变化所需要的管理、及软件开发各个阶段完成的里程碑。软件工程就是包含上述方法、工具及过程在内的一些步骤。GIS软件工程的内容按照软件开发过程的软件工程的内容按照软件开发过程的先后顺序,包括先后顺序,包括前期工程前期工程、设计工程设计工程、数数据工程据工程、工程实施工程实施和和维护工程维护工程等五个阶段,等五个阶段,每个阶段都以工程化原理作指导,以工程每个阶段都以工程化原理作指导,以工程化方法做手段,并以质
22、量控制、工程标准化方法做手段,并以质量控制、工程标准和工程管理作为保障,确保和工程管理作为保障,确保GIS软件的开软件的开发成功发成功。五、五、GIS工程的特色工程的特色GIS与其他信息系统的最大区别最大区别是它能够处理它能够处理具有空间特性的对象,与一般制图系统相比具有空间特性的对象,与一般制图系统相比较,它不仅能够进行空间数据的存储、显示、较,它不仅能够进行空间数据的存储、显示、绘制、输出,而且能够对空间数据进行查询、绘制、输出,而且能够对空间数据进行查询、分析。也就是说,分析。也就是说,GIS处理的对象不仅包括文处理的对象不仅包括文本、表格、多媒体等数据,而且要处理大量本、表格、多媒体等
23、数据,而且要处理大量的空间数据,是基于空间数据的信息系统。的空间数据,是基于空间数据的信息系统。GIS软件工程具有如下特点软件工程具有如下特点:1.系统复杂度大系统复杂度大 软件的复杂度与如下几个因素密切相关:软件的复杂度与如下几个因素密切相关:(1)交付文档的质量和数量。)交付文档的质量和数量。交付的的文档都包括软件需求说明、系统设计书、用户手册、程交付的的文档都包括软件需求说明、系统设计书、用户手册、程序清单、测试报告等序清单、测试报告等(2)软件的微观复杂度。)软件的微观复杂度。即理解和处理单个程序或子程序内部结构与操作的难易程度。即理解和处理单个程序或子程序内部结构与操作的难易程度。(
24、3)软件的宏观复杂性。)软件的宏观复杂性。指理解和处理整个程序的结构与功能的难易程序。指理解和处理整个程序的结构与功能的难易程序。从从GIS软件工程系统结构上分析,在上面几个软件工程系统结构上分析,在上面几个方面都增长较大,如图所示。方面都增长较大,如图所示。不难发现,功能规划不难发现,功能规划相似的信息系统,相似的信息系统,GIS的复杂度可能比的复杂度可能比一般信息系统高数个一般信息系统高数个级别,这也是我国级别,这也是我国GIS建设费用与建设建设费用与建设周期高居不下的实质周期高居不下的实质性因素,如果对此估性因素,如果对此估计不足,就容易导致计不足,就容易导致系统建设的失败。系统建设的失
25、败。2数据在系统中具有特别地位数据在系统中具有特别地位GIS的另一个特色在于支持导质海量数据处理,的另一个特色在于支持导质海量数据处理,可以说,多数可以说,多数GIS本身就是一个强大的数据处本身就是一个强大的数据处理系统,数据甚至被称为理系统,数据甚至被称为GIS的的“核心核心”和和“血液血液”,所以数据库建设在,所以数据库建设在GIS建设中占有非建设中占有非常重要的地位。根据有关专家统计,系统投常重要的地位。根据有关专家统计,系统投资的三个主要部分资的三个主要部分数据、硬件、软件的数据、硬件、软件的比例一般高达比例一般高达8:1:1,可见数据在系统中有,可见数据在系统中有重要的地位。重要的地
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- GIS 软件工程
限制150内