欢迎来到天天文库
浏览记录
ID:27567215
大小:1007.00 KB
页数:95页
时间:2018-12-04
《[高等教育]第二章 gis软件工程概述》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、GIS设计与应用第二章GIS软件工程概述第一节GIS软件工程一、GIS软件的主要特点(1)在存储技术上,传统的GIS采用两库结构,即空间数据库和属性数据库的分离。(2)在数据组织与处理模式上,传统的GIS仍然沿袭地图处理的模式。在实现上,将空间数据组织成物理实体(点、线、面等)、图层、地图和图库几个层次。(3)在网络和分布式环境下系统组成方面,传统的GIS支持树型的系统结构和主-从工作模式,上下级数据交换基本上以图层为单位进行。(4)在空间数据管理范围方面,目前的GIS可以比较有效地处理二维空间数据,并能较好地处理DEM数据、实现三维实体的表面显示。(5)在数据共享和功能共享方面,
2、虽然目前开始注意元数据问题,已经解决了不同格式空间数据之间转换问题,可以实现有缝的数据共享。但是GIS功能共享和互操作问题尚未得到解决。以系统为中心的问题没有得到根本克服。因此,传统的GIS软件的特点可以简要地归纳为:以系统为中心,以地图为基础,二维处理,静态管理,尺度割裂,数据集中。二、GIS软件开发过程中的问题(1)经费预算经常突破,完成时间一再拖延。由于缺乏GIS软件开发的经验和GIS软件开发数据的积累,使得软件开发计划很难制定。主观盲目制定的计划,执行起来和实际情况有很大的差距,使得开发经费一再突破。由于对工作量和开发难度估计不足,进度计划无法按时完成,开发时间一再拖延。(
3、2)开发的软件不能满足用户的要求。开发的初期对用户的要求了解不够明确,未能得到明确表达。开发工作开始后,软件人员和用户未能及时交换意见,使得一些问题不能及时解决,导致开发软件不能满足用户的要求,使得开发工作失败。(3)开发的软件可维护性差。软件开发人员按各自的风格工作,各行其是。程序结构不好,运行维护时发现错误也很难修改,导致维护性差。统计数据表明,软件的维护费用占整个软件系统费用的2/3,而软件开发费用只占1/3。软件维护之所以有如此大的花费,是因为已经运行的软件还需排除隐含的错误,新增加的功能要加入进去,维护工作又是非常困难的,效率是非常低下的。因此,如何提高软件的可维护性,减
4、少软件维护的工作量,也是软件工程面临的主要问题之一。(4)开发的软件可靠性差。在软件开发过程中,若在测试时,没有严格的、完整的测试,那么提交给用户的软件质量差,在运行中就会暴露出大量的问题。这种不可靠的软件,经常会影响系统正常工作,甚至会发生事故,造成生命财产的重大损失。在软件开发中,通常要花费40%的代价进行测试和排错,即使这样还不能保证以后不再发生错误,为了提高软件可靠性,就要付出足够的代价。(5)数据工程量特别大,特别是数据采集工作量十分大。而由数据工程又带来一系列问题,如可靠性差、周期延长、费用增长等等。(6)软件需求与软件生产的矛盾日益加剧,突出表现在软件生产率低。软件是
5、知识高度密集的综合产物,计算机的广泛应用使得软件的需求量大幅度上升,软件的发展远远不能适应社会对迅速增长的要求,而软件的生产又牌手工开发的状态,软件生产率低下,使得各国都感到软件开发人员的不足,所以,如何提高软件生产率,是软件工程的又一重要问题。(7)软件可重用性差。提高软件的重用性,对于提高软件生产率、降低软件成本有差重要意义。当前的软件开发存在着大量的、重复的劳动,耗费了不少人力资源。软件的重用有各种级别,软件规格说明、软件模块、软件代码、软件文档等都可以是软件重用的单位。软件重用是软件工程中的一个重要研究课题,软件重用的理论和技术至今尚未彻底解决。三、GIS软件开发存在问题的
6、原因分析(1)软件的规模越来越大,结构越来越复杂。随着计算机应用的日益广泛,需要开发的软件规模日益庞大,软件结构也日益复杂。1968年美国航空公司订票系统达到30万条指令;IBM360OS第16版达到100万条指令,花了5000个人年;1973年美国阿波罗计划达到1000万条指令。这些庞大软件的功能非常复杂,体现在处理功能的多样性和运行环境的多样性。有人曾估计,软件设计与硬件设计相比,其逻辑量要多达10~100倍。对于这种庞大规模的软件,其调用关系、接口信息复杂,数据结构也复杂,这种复杂程度超过了人所能接受的程度。(2)软件开发的管理困难。由于软件规模大,结构复杂又具有无形性,导致
7、管理困难,进度控制困难,可靠性无法保证。(3)软件开发费用不断增加。软件生产是一种智力劳动,它是资金密集、人力密集的产业,大型软件投入人力多,周期长,费用上升很快。(4)软件开发技术落后。在20世纪60年代,人们注重一些计算机理论问题的研究,如编译原理、操作系统原理、数据库原理、人工智能原理、形式语言理论等,不注重软件开发技术的研究,用户要求的软件复杂性与软件技术解决复杂性的能力不相适应,它们之间的差距越来越大。(5)生产方式落后。软件仍然采用个体手工方式开发,根据个
此文档下载收益归作者所有