




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
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的代价进行测试和排错,即使这样还不能保证的代价进行测试和排错,即使这样还不能保证以后不再发生错误,为了提高软件可靠性,就要付以后不再发生错误,为了提高软件可靠性,就要付出足够的代价。出足够的代价。
8、(5)数据工程量特别大,特别是数据采集工作量十分大。)数据工程量特别大,特别是数据采集工作量十分大。 而由数据工程又带来一系列问题,如可靠性差、周期而由数据工程又带来一系列问题,如可靠性差、周期延长、费用增长等等。延长、费用增长等等。(6)软件需求与软件生产的矛盾日益加剧,突出表现在软)软件需求与软件生产的矛盾日益加剧,突出表现在软件生产率低。件生产率低。 软件是知识高度密集的综合产物,计算机的广泛应用软件是知识高度密集的综合产物,计算机的广泛应用使得软件的需求量大幅度上升,软件的发展远远不能适应使得软件的需求量大幅度上升,软件的发展远远不能适应社会对迅速增长的要求,而软件的生产又牌手工开发的
9、状社会对迅速增长的要求,而软件的生产又牌手工开发的状态,软件生产率低下,使得各国都感到软件开发人员的不态,软件生产率低下,使得各国都感到软件开发人员的不足,所以足,所以,如何提高软件生产率,是软件工程的又一重要问题。,如何提高软件生产率,是软件工程的又一重要问题。 (7)软件可重用性差。)软件可重用性差。 提高软件的重用性,对于提高软件生产率、降低提高软件的重用性,对于提高软件生产率、降低软件成本有差重要意义。当前的软件开发存在着大量软件成本有差重要意义。当前的软件开发存在着大量的、重复的劳动,耗费了不少人力资源。软件的重用的、重复的劳动,耗费了不少人力资源。软件的重用有各种级别,软件规格说明
10、、软件模块、软件代码、有各种级别,软件规格说明、软件模块、软件代码、软件文档等都可以是软件重用的单位。软件重用是软软件文档等都可以是软件重用的单位。软件重用是软件工程中的一个重要研究课题,软件重用的理论和技件工程中的一个重要研究课题,软件重用的理论和技术至今尚未彻底解决。术至今尚未彻底解决。三、三、GIS软件开发存在问题的原因分析软件开发存在问题的原因分析(1)软件的规模越来越大,结构越来越复杂。)软件的规模越来越大,结构越来越复杂。 随着计算机应用的日益广泛,需要开发的软件规模日益随着计算机应用的日益广泛,需要开发的软件规模日益庞大,软件结构也日益复杂。庞大,软件结构也日益复杂。1968年美
11、国航空公司订票系统年美国航空公司订票系统达到达到30万条指令;万条指令;IBM360 OS第第16版达到版达到100万条指令,花万条指令,花了了5000个人年;个人年;1973年美国阿波罗计划达到年美国阿波罗计划达到1000万条指令。万条指令。这些庞大软件的功能非常复杂,体现在处理功能的多样性和这些庞大软件的功能非常复杂,体现在处理功能的多样性和运行环境的多样性。有人曾估计,软件设计与硬件设计相比,运行环境的多样性。有人曾估计,软件设计与硬件设计相比,其逻辑量要多达其逻辑量要多达10100倍。对于这种庞大规模的软件,其倍。对于这种庞大规模的软件,其调用关系、接口信息复杂,数据结构也复杂,这种复
12、杂程度调用关系、接口信息复杂,数据结构也复杂,这种复杂程度超过了人所能接受的程度。超过了人所能接受的程度。(2)软件开发的管理困难。)软件开发的管理困难。 由于软件规模大,结构复杂又具有无形性,导致管由于软件规模大,结构复杂又具有无形性,导致管理困难,进度控制困难,可靠性无法保证。理困难,进度控制困难,可靠性无法保证。 (3)软件开发费用不断增加。)软件开发费用不断增加。 软件生产是一种智力劳动,它是资金密集、人力密软件生产是一种智力劳动,它是资金密集、人力密集的产业,大型软件投入人力多,周期长,费用上升很集的产业,大型软件投入人力多,周期长,费用上升很快。快。(4)软件开发技术落后。)软件开
13、发技术落后。 在在20世纪世纪60年代,人们注重一些计算机理论问题的年代,人们注重一些计算机理论问题的研究,如编译原理、操作系统原理、数据库原理、人工研究,如编译原理、操作系统原理、数据库原理、人工智能原理、形式语言理论等,不注重软件开发技术的研智能原理、形式语言理论等,不注重软件开发技术的研究,用户要求的软件复杂性与软件技术解决复杂性的能究,用户要求的软件复杂性与软件技术解决复杂性的能力不相适应,它们之间的差距越来越大。力不相适应,它们之间的差距越来越大。(5)生产方式落后。)生产方式落后。 软件仍然采用个体手工方式开发,根据个人习惯软件仍然采用个体手工方式开发,根据个人习惯爱好,无章可循、
14、无规范可依据,工作靠言传身教方爱好,无章可循、无规范可依据,工作靠言传身教方式,缺乏工程化思想方法的指导。式,缺乏工程化思想方法的指导。(6)开发工具落后,生产率提高缓慢。)开发工具落后,生产率提高缓慢。 软件开发工具过于原始,没有出现高效率的开发软件开发工具过于原始,没有出现高效率的开发工具,因而软件生产率低下。在工具,因而软件生产率低下。在19601980年期间,年期间,计算机硬件的生产由于采用计算机辅助设计、自动生计算机硬件的生产由于采用计算机辅助设计、自动生产线等先进工具,使硬件生产提高了产线等先进工具,使硬件生产提高了100万倍,而软万倍,而软件生产率只提高了件生产率只提高了2倍,相
15、差十分悬殊。倍,相差十分悬殊。(7)通用)通用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:
26、1:1,可见数据在系统中,可见数据在系统中有重要的地位。有重要的地位。 在系统开发过程中,在数据准备方面需要注意如下各方面: (1)数据的质量)数据的质量。 (2)数据的现势性。)数据的现势性。 (3)合理的数据组织结构。)合理的数据组织结构。 3系统表达方式复杂系统表达方式复杂(1)表达的内容复杂。)表达的内容复杂。GIS同时能够处理文本数据、空间数据、多媒体数据等,甚至也能够接受遥感遥测的实时数据,这是其他信息系统无法比拟的,相应地它的表达方式的组成上也是非常复杂的,如输出方面包括专题图、报表、业务表格等。(2)表达的对象具有时空特性。)表达的对象具有时空特性。GIS处理的主要对象为城市地
27、理对象,它具有鲜明的空间特性,系统必须能够将这些对象的空间性直观地表达给用户;同时许多地理现象是具有一定时间序列的,系统需要模拟地理现象的时空演化,如土地利用现状图,它需要系统能够追溯到历史上的一定时刻,以支持地籍管理。所以,目前3DGIS、虚拟现实(VR)等技术在GIS的应用中发展十分迅速。 4系统更新速度更快系统更新速度更快 我国从我国从20世纪世纪80年代开始了年代开始了GIS的建设,经历了项的建设,经历了项目型目型GIS、管理型、管理型GIS、社会型、社会型GIS等几个阶段,其技术等几个阶段,其技术和认识发生了翻天覆地的改变,其发展可以说与计算机技和认识发生了翻天覆地的改变,其发展可以
28、说与计算机技术完全同步了,这也导致术完全同步了,这也导致GIS用户在建立相应系统时,所用户在建立相应系统时,所面临的一个复杂环境,往往系统刚刚建设完毕,整个系统面临的一个复杂环境,往往系统刚刚建设完毕,整个系统就不能够满足当前需要了,从而导致大面积的投资失误与就不能够满足当前需要了,从而导致大面积的投资失误与浪费,这也是浪费,这也是GIS建设周期长的一个后果,也反映了建设周期长的一个后果,也反映了GIS技术和用户需求的发展速度。所以在开展用户调查、系统技术和用户需求的发展速度。所以在开展用户调查、系统设计、系统维护等阶段必须对这种状况进行认真考虑,才设计、系统维护等阶段必须对这种状况进行认真考
29、虑,才能积极预防。能积极预防。5系统维护工作量大系统维护工作量大 由于系统变化速度快,而且对外部数据依赖大,需要不断输入数据,所以系统本身的建设是一个长期的过程,其系统的开发工作可以说是“万时长征的第一步”,目前一些用户没有意识到这一点,有一种急功近利的思想,特别是国家政府部门领导把它当作一段时期的一件工作来抓,当时投资大,但是后继无力,致使系统不能够正常运转。一方面要求长期的投资,另一方面在系统设计开发过程中,要坚持“总体规划、分步实施、灵活调整、急用先行”的设计思想,最后,要注意逐步发挥系统的效益,争取系统能够产生社会效益的同时,产生一定的经济效益,来确保系统长期的发展。6易操作性要求高易
30、操作性要求高 正如前面所述,一个GIS中具有多个用户层次:专业维护人员、领导决策人员、一般业务人员,后两类用户并不是GIS专业人士,往往仅仅具备一般计算机操作能力,而GIS功能复杂,这两者之间需要通过良好的界面设计来协调,系统应该引导用户来完成操作,同时必须保证数据的安全性。由于处理对象的功能的复杂性导致系统的界面设计有较大困难,例如在同一屏幕上必须很好地同时显示图形和属性数据,如何解决这两者显示要求的矛盾关系就是界面设计的重要课题。 第二节第二节 软件生存周期模型软件生存周期模型一、概一、概 述述 软件生存周期模型是描述软件开发过程中各种活动如软件生存周期模型是描述软件开发过程中各种活动如何
31、执行的模型。何执行的模型。 软件生存周期模型确立了软件开发和演绎中各阶段的软件生存周期模型确立了软件开发和演绎中各阶段的次序限制以及各阶段活动的准则,确立开发过程所遵次序限制以及各阶段活动的准则,确立开发过程所遵守的规定和限制,便于各种活动的协调以及各类人员守的规定和限制,便于各种活动的协调以及各类人员的有效通信,有利于活动重用和活动管理。的有效通信,有利于活动重用和活动管理。 二、瀑布模型二、瀑布模型 瀑布模型是将软件生存周期各活动规定为依线性瀑布模型是将软件生存周期各活动规定为依线性顺序联接的若干阶段的模型。它包括可行性分析、项顺序联接的若干阶段的模型。它包括可行性分析、项目开发计划、需求
32、分析、总体设计、详细设计、编码、目开发计划、需求分析、总体设计、详细设计、编码、测试和维护。它规定了由前至后、相互衔接的固定次测试和维护。它规定了由前至后、相互衔接的固定次序,如同瀑布流水,逐级下落。序,如同瀑布流水,逐级下落。1模型表示模型表示瀑布模型的表示如瀑布模型的表示如 图所示。该模型说明整个软件开发过程按图图所示。该模型说明整个软件开发过程按图中中5个阶段进行的。每个阶段的任务完成之后,产生右边相应的个阶段进行的。每个阶段的任务完成之后,产生右边相应的文档(图中只列出该阶段最主要的文档),这些文档经过确认,文档(图中只列出该阶段最主要的文档),这些文档经过确认,表明该阶段工作完成,并
33、进入下一阶段的工作。每个阶段均以上表明该阶段工作完成,并进入下一阶段的工作。每个阶段均以上一阶段的文档作为开发的基础,如果某一文档出现问题,则要返一阶段的文档作为开发的基础,如果某一文档出现问题,则要返回上一阶段去重新进行工作。回上一阶段去重新进行工作。2瀑布模型的特点瀑布模型的特点 瀑布模型严格按照生存周期各个阶段的目标、任务、瀑布模型严格按照生存周期各个阶段的目标、任务、文档和要求来进行开发。它强调了每一个阶段的严格性,文档和要求来进行开发。它强调了每一个阶段的严格性,尤其是开发前期的良好需求说明,这样就能解决在开发尤其是开发前期的良好需求说明,这样就能解决在开发阶段后期修正不完善的需求说
34、明将花费巨大的费用问题。阶段后期修正不完善的需求说明将花费巨大的费用问题。 在这种严格定义的模型中,开发人员试图在每一活在这种严格定义的模型中,开发人员试图在每一活动过程结束后,通过严格的阶段性复审与确认,得到该动过程结束后,通过严格的阶段性复审与确认,得到该阶段结束的标志,保持不变,作为下一阶段活动的唯一阶段结束的标志,保持不变,作为下一阶段活动的唯一基础,从而形成一个理想的线性开发序列,以每一步的基础,从而形成一个理想的线性开发序列,以每一步的正确性和完整性来保证最终系统的质量。正确性和完整性来保证最终系统的质量。 瀑布模型是以文档形式驱动的,为合同双方最终确认瀑布模型是以文档形式驱动的,
35、为合同双方最终确认产品规定了蓝本,为管理者进行项目开发管理提供了基础,产品规定了蓝本,为管理者进行项目开发管理提供了基础,为开发过程施加了为开发过程施加了“政策政策”或纪律限制,约束了开发过程或纪律限制,约束了开发过程中的活动。中的活动。 瀑布模型是一种整体开发模型,在开发过程中,用户瀑布模型是一种整体开发模型,在开发过程中,用户看不见系统是什么样,只有开发完成向用户提交整个系统看不见系统是什么样,只有开发完成向用户提交整个系统时,用户就能看到一个完整的系统。时,用户就能看到一个完整的系统。 瀑布模型适合于功能和性能明确、完整、无重大变化瀑布模型适合于功能和性能明确、完整、无重大变化的软件开发
36、。大部分的系统软件就有这些特征,例如编译的软件开发。大部分的系统软件就有这些特征,例如编译系统、数据库管理系统和操作系统等。在开发前均可完整、系统、数据库管理系统和操作系统等。在开发前均可完整、准确、一致和无二义性地定义其目标、功能和性能等。准确、一致和无二义性地定义其目标、功能和性能等。 3瀑布模型的局限性瀑布模型的局限性 不适用于应用软件项目(对于当前的大型软件项目,特别不适用于应用软件项目(对于当前的大型软件项目,特别是应用软件项目,在开发前期用户常常对系统只有一个模是应用软件项目,在开发前期用户常常对系统只有一个模糊的想法,很难明确确定和表达对系统的全面要求。经过糊的想法,很难明确确定
37、和表达对系统的全面要求。经过详细的要求定义,尽管这可得到一份较好的需求说明书。详细的要求定义,尽管这可得到一份较好的需求说明书。但很难期望该需求说明能将系统的一切都描述得完整、准但很难期望该需求说明能将系统的一切都描述得完整、准确、一致并与实际环境相符,很难通过它在逻辑上推出系确、一致并与实际环境相符,很难通过它在逻辑上推出系统的运行效果,并以此达到种类人员对系统的共同理解。统的运行效果,并以此达到种类人员对系统的共同理解。因此,要保证每个阶段特别是定义阶段是正确的、完整的,因此,要保证每个阶段特别是定义阶段是正确的、完整的,这是属于理想情况,实际上是做不到或很难做到的。)这是属于理想情况,实
38、际上是做不到或很难做到的。) 由于知识背景的不同,工作中的疏漏和通讯媒介由于知识背景的不同,工作中的疏漏和通讯媒介的局限性,使通讯中的误解无法避免;随着项目向前的局限性,使通讯中的误解无法避免;随着项目向前推进,用户会产生新的要求,或因环境变化希望系统推进,用户会产生新的要求,或因环境变化希望系统也能随之变化。开发者也可能在设计中遇到某些未曾也能随之变化。开发者也可能在设计中遇到某些未曾预料的实际困难,希望在需求量中有所权衡。这些都预料的实际困难,希望在需求量中有所权衡。这些都成为进行严格线性开发的重大障碍,尽管通过加强复成为进行严格线性开发的重大障碍,尽管通过加强复审与确认、全面测试和设立维
39、护阶段来缓解上述困难,审与确认、全面测试和设立维护阶段来缓解上述困难,但均未在根本上解决这些问题。但均未在根本上解决这些问题。 作为整体开发的瀑布模型,由于不支持软件产品作为整体开发的瀑布模型,由于不支持软件产品的演化,对开发过程中的一些很难发现的错误只有在的演化,对开发过程中的一些很难发现的错误只有在最终产品运行时才能发现。瀑布模型缺乏应付变化的最终产品运行时才能发现。瀑布模型缺乏应付变化的机制,所以最终产品将难以维护。机制,所以最终产品将难以维护。 瀑布模型是一种理想的线性开发模式,缺乏灵活瀑布模型是一种理想的线性开发模式,缺乏灵活性,特别是无法解决软件需求不明确或不准确的问性,特别是无法
40、解决软件需求不明确或不准确的问题。这些缺点对软件开发带来了严重影响,最终可题。这些缺点对软件开发带来了严重影响,最终可能导致开发出的软件并不是用户真正需要的软件,能导致开发出的软件并不是用户真正需要的软件,并且这一点在开发过程完成后才能发现,已为时太并且这一点在开发过程完成后才能发现,已为时太晚。晚。 三、增量模型三、增量模型 在瀑布模型的开发过程中,人们花费很大的精力进行严格开发,在瀑布模型的开发过程中,人们花费很大的精力进行严格开发,但终究难以接近理想目标,一切活动都掺杂着若干未能预料的疏漏。但终究难以接近理想目标,一切活动都掺杂着若干未能预料的疏漏。于是人们不再追求开发活动的极度严格性和
41、准确性,而开始考虑传于是人们不再追求开发活动的极度严格性和准确性,而开始考虑传统思想中的一些基本观念是否应当改变,能否尽早提供部分产品给统思想中的一些基本观念是否应当改变,能否尽早提供部分产品给用户?能否一部分一部分地开发?通融在需求说明难以完善、难以用户?能否一部分一部分地开发?通融在需求说明难以完善、难以明确的情况下,由快速分析而构造一个小的原型系统,满足用户的明确的情况下,由快速分析而构造一个小的原型系统,满足用户的某些要求后,使用户在使用过程中受其启发,逐步确定各种需求?某些要求后,使用户在使用过程中受其启发,逐步确定各种需求?回答是肯定的,因而产生了增量模型。回答是肯定的,因而产生了
42、增量模型。 软件在该模型中是逐渐开发出来的,开发出一部分,软件在该模型中是逐渐开发出来的,开发出一部分,向用户展示一部分,可让用户及时看到部分软件,及早向用户展示一部分,可让用户及时看到部分软件,及早发现问题。或者先开发一个原型软件,完成部分主要功发现问题。或者先开发一个原型软件,完成部分主要功能,展示给用户并征求意见,然后逐步完善,最终获得能,展示给用户并征求意见,然后逐步完善,最终获得满意的软件产品。满意的软件产品。 四、螺旋模型四、螺旋模型 对于复杂的大型软件,开发一个原型往往达不到要对于复杂的大型软件,开发一个原型往往达不到要求。螺旋模型将瀑布模型与增量模型结合起来,加入了求。螺旋模型
43、将瀑布模型与增量模型结合起来,加入了两种模型均忽略的风险分析,弥补了这两种模型的不足。两种模型均忽略的风险分析,弥补了这两种模型的不足。 螺旋模型是一种风险驱动模型。在软件开发中,有螺旋模型是一种风险驱动模型。在软件开发中,有各种各样的风险。对于不同的软件项目,其开发风险有各种各样的风险。对于不同的软件项目,其开发风险有大有小。实践表明,项目越复杂,设计方案、资源、成大有小。实践表明,项目越复杂,设计方案、资源、成本和进度等因素的不确定性越大,项目开发的风险也越本和进度等因素的不确定性越大,项目开发的风险也越大。因此,应及时对风险进行识别、分析和采取对策,大。因此,应及时对风险进行识别、分析和
44、采取对策,从而消除或减少风险的危害。从而消除或减少风险的危害。 螺旋模型将开发过程分为几个螺旋周期,每个螺旋周螺旋模型将开发过程分为几个螺旋周期,每个螺旋周期大致和瀑布模型相符合。期大致和瀑布模型相符合。 五、喷泉模型五、喷泉模型 瀑布模型的不足之处在于,它对软件重用和生瀑布模型的不足之处在于,它对软件重用和生存期中多项开发活动的集成并未提供支持,因而难存期中多项开发活动的集成并未提供支持,因而难于支持面向对象的开发方法。于支持面向对象的开发方法。“喷泉喷泉”一词体现了一词体现了迭代和无间隙特性。系统某个部分常常重复工作多迭代和无间隙特性。系统某个部分常常重复工作多次,相关功能在每次迭代中随之
45、加入演进的系统。次,相关功能在每次迭代中随之加入演进的系统。无间隙是指在开发活动,即分析、设计和编码之间无间隙是指在开发活动,即分析、设计和编码之间不存在明显的边界。不存在明显的边界。六、智能模型六、智能模型 智能模型也称为基于知识的软件开发模型,它智能模型也称为基于知识的软件开发模型,它纵使了上述若干模型,并把专家系统结合在一起。纵使了上述若干模型,并把专家系统结合在一起。该模型应用基于规则的系统,采用归纳和推理机制,该模型应用基于规则的系统,采用归纳和推理机制,帮助软件人员完成开发工作,并使维护在系统规模帮助软件人员完成开发工作,并使维护在系统规模说明一级进行。为此,建立了知识库,为模型、
46、软说明一级进行。为此,建立了知识库,为模型、软件工程知识与特定领域的知识分别存入数据库。以件工程知识与特定领域的知识分别存入数据库。以软件工程知识为基础的生成规则构成的专家系统与软件工程知识为基础的生成规则构成的专家系统与含有应用领域知识规则的其他专家系统相结合,构含有应用领域知识规则的其他专家系统相结合,构成了这一应用领域软件的开发系统。成了这一应用领域软件的开发系统。第三节第三节 GIS软件工程的生存周期软件工程的生存周期 GIS软件工程生存周期是指一个软件工程生存周期是指一个GIS软件从提软件从提出开发要求开始直到该软件报废为止的整个出开发要求开始直到该软件报废为止的整个时期。把整个生存
47、周期划分为若干阶段,使时期。把整个生存周期划分为若干阶段,使得每个阶段有明确的任务,把规模大、结构得每个阶段有明确的任务,把规模大、结构复杂和管理复杂的软件开发变得容易控制和复杂和管理复杂的软件开发变得容易控制和管理。管理。 GIS的开发不仅有其既定的目标,而且有其阶段性。的开发不仅有其既定的目标,而且有其阶段性。GIS软件工程整个生存周期划分为四个阶段,一般而言,软件工程整个生存周期划分为四个阶段,一般而言,包括以下四个阶段:系统分析、系统设计、系统实施、包括以下四个阶段:系统分析、系统设计、系统实施、系统评价及维护。系统评价及维护。 软件生存周期的各个阶段有不同的划分。软件规模、软件生存周
48、期的各个阶段有不同的划分。软件规模、种类、开发环境以及开发使用的方法都有影响软件生存种类、开发环境以及开发使用的方法都有影响软件生存周期的划分。在划分软件生存周期的阶段时,应遵循的周期的划分。在划分软件生存周期的阶段时,应遵循的基本原则基本原则是是各阶段的任务应尽可能的相应独立,同一阶各阶段的任务应尽可能的相应独立,同一阶段各项任务的性质尽可能相同,从而降低每个阶段任务段各项任务的性质尽可能相同,从而降低每个阶段任务的复杂程度,简化不同阶段之间的联系,有得软件项目的复杂程度,简化不同阶段之间的联系,有得软件项目开发组织管理。开发组织管理。通常,通常,软件生存周期包括可行性研究和软件生存周期包括
49、可行性研究和项目开发计划、需求分析、总体设计、详细设计、程序项目开发计划、需求分析、总体设计、详细设计、程序编制、测试、维护等活动,编制、测试、维护等活动,可将这些活动以适当方式分可将这些活动以适当方式分配到不同阶段去完成。配到不同阶段去完成。 GIS软件工程过程没有规定一个特定的生存周软件工程过程没有规定一个特定的生存周期模型或软件开发方法,各软件开发机构可为其开发期模型或软件开发方法,各软件开发机构可为其开发项目选择一种生存周期模型,并将软件工程过程所含项目选择一种生存周期模型,并将软件工程过程所含的过程、活动和任务影射到该模型中,也可以选择和的过程、活动和任务影射到该模型中,也可以选择和
50、使用软件开发方法来执行适合于其软件项目的活动和使用软件开发方法来执行适合于其软件项目的活动和任务。任务。 按照工程化的思想进行划分,按照工程化的思想进行划分,GIS软件工程生存软件工程生存周期包括:前期工程、设计工程、数据工程、工程实周期包括:前期工程、设计工程、数据工程、工程实施、维护工程等五个阶段。以下简要介绍各个工程阶施、维护工程等五个阶段。以下简要介绍各个工程阶段的情况。段的情况。一、前期工程一、前期工程GIS软件前期工程阶段,包括工程调研、可行性研究、软件前期工程阶段,包括工程调研、可行性研究、制定项目计划、需求分析等子阶段。制定项目计划、需求分析等子阶段。1工程调研工程调研根据软件
51、开发的基本目标和技术要求,对国内外相关根据软件开发的基本目标和技术要求,对国内外相关项目通过走访、交谈、函件往来、资料检索等方式进项目通过走访、交谈、函件往来、资料检索等方式进行调研,确定该领域的行调研,确定该领域的GIS软件的发展现状、存在问软件的发展现状、存在问题,从而为拟开展的软件工程项目提供有价值的参考题,从而为拟开展的软件工程项目提供有价值的参考资料。资料。2可靠性研究和项目开发计划可靠性研究和项目开发计划 根据软件和项目开发计划阶段必须要回答的问题是根据软件和项目开发计划阶段必须要回答的问题是“要解决的问题是什么要解决的问题是什么”。这问题有行得通的解决办法。这问题有行得通的解决办
52、法吗?若有解决问题的办法,则需要多少费用?需要多少吗?若有解决问题的办法,则需要多少费用?需要多少资源?需要多少时间?要回答这些问题,就要进行问题资源?需要多少时间?要回答这些问题,就要进行问题定义、可行性研究,制定项目开发计划。定义、可行性研究,制定项目开发计划。 用户提出一个软件开发要求后,系统分析员首先要解用户提出一个软件开发要求后,系统分析员首先要解决该软件项目的性质是什么,它是数据处理问题还是实决该软件项目的性质是什么,它是数据处理问题还是实时控制问题,它是科学计算问题还是人工智能问题等。时控制问题,它是科学计算问题还是人工智能问题等。还要明确该问题的目标是什么,该项目的模型如何等。
53、还要明确该问题的目标是什么,该项目的模型如何等。 在清楚了问题的性质、目标、规模后,还要确定问题在清楚了问题的性质、目标、规模后,还要确定问题有没有行得通的解决办法。系统分析员要进行压缩和简化有没有行得通的解决办法。系统分析员要进行压缩和简化的需求分析和设计,也就是在高层次上进行分析和设计,的需求分析和设计,也就是在高层次上进行分析和设计,探索这个问题是否值得去解决,是否有可行的解决办法。探索这个问题是否值得去解决,是否有可行的解决办法。最后要提交可行性研究报告。最后要提交可行性研究报告。 经过可行性研究后,确定该问题值得去解决,然后制经过可行性研究后,确定该问题值得去解决,然后制定项目开发计
54、划。根据开发项目的目标、功能、性质及规定项目开发计划。根据开发项目的目标、功能、性质及规模,估计项目需要的资源,即需要的计算机硬件资源,需模,估计项目需要的资源,即需要的计算机硬件资源,需要的软件开发工具和应用软件包,需要的开发人员数目及要的软件开发工具和应用软件包,需要的开发人员数目及层次。还要对软件开发费用做出估算,对开发进度做出估层次。还要对软件开发费用做出估算,对开发进度做出估计,制定完成任务实施计划。最后,将项目开发计划和可计,制定完成任务实施计划。最后,将项目开发计划和可行性研究报告一起提交管理部门审查。行性研究报告一起提交管理部门审查。 3需求分析需求分析 需求分析阶段的任务不是
55、具体的解决问题,而是准需求分析阶段的任务不是具体的解决问题,而是准确地确定确地确定“软件系统必须做什么软件系统必须做什么”,确定软件系统必须,确定软件系统必须具备哪些功能。具备哪些功能。 用户了解他们所面对的问题,知道必须做什么,但用户了解他们所面对的问题,知道必须做什么,但是通常不能完整、准确地表达出来,也不知道怎样用计是通常不能完整、准确地表达出来,也不知道怎样用计算机解决他们的问题。而软件开发人员虽然知道怎样用算机解决他们的问题。而软件开发人员虽然知道怎样用软件完成人们提出的各种功能要求,但是,对用户的具软件完成人们提出的各种功能要求,但是,对用户的具体业务和需求不完全清楚,这是需求分析
56、阶段的困难所体业务和需求不完全清楚,这是需求分析阶段的困难所在。在。 系统工程分析员要和用户密切配合,充分交流各自系统工程分析员要和用户密切配合,充分交流各自的理解,充分理解用户的业务流程,完整、准确地表达的理解,充分理解用户的业务流程,完整、准确地表达出来。这一阶段要给出软件需求说明书。出来。这一阶段要给出软件需求说明书。二、设计工程二、设计工程 GIS软件设计工程阶段,包括总体设计、数软件设计工程阶段,包括总体设计、数据库设计、模型设计、详细设计等子阶段。据库设计、模型设计、详细设计等子阶段。 1总体设计总体设计 在总体设计阶段,开发人员把确定的各项功能需求转在总体设计阶段,开发人员把确定
57、的各项功能需求转换成需要的体系结构,在该体系结构中,每个成分都换成需要的体系结构,在该体系结构中,每个成分都是意义明确的模块,即每个模块都和某些功能需求相是意义明确的模块,即每个模块都和某些功能需求相对应。对应。 2数据库设计数据库设计 数据库设计是指对于一个给定的应用环境,数据库设计是指对于一个给定的应用环境,提供一个确定的最优数据模型与处理模式的逻辑提供一个确定的最优数据模型与处理模式的逻辑设计,以及一个确定数据存储结构与存取方法的设计,以及一个确定数据存储结构与存取方法的物理设计,建立能反映现实世界信息和信息联系,物理设计,建立能反映现实世界信息和信息联系,满足用户要求,又能被某个满足用
58、户要求,又能被某个DBMS所接受,同时所接受,同时能实现系统目标并有效存取数据的数据库能实现系统目标并有效存取数据的数据库 3应用模型设计应用模型设计 由于GIS软件具有交叉性、综合性的特点,所以GIS的应用领域相当广泛,而每种类型的GIS应用都有自己独特的特点,这个特点主要体现在应用领域模型的构建和实现上,所以在进行GIS软件开发的分析阶段,一项重要的工作是针对拟开发领域的特殊技术要求,运用并分析该领域的应用模型,设计实现该应用模型的技术方法。4详细设计详细设计 详细设计阶段就是为每个模块完成的功能详细设计阶段就是为每个模块完成的功能进行具体描述,要把功能描述转变为精确的、进行具体描述,要把
59、功能描述转变为精确的、结构化的过程描述。即该模块的控制结构是怎结构化的过程描述。即该模块的控制结构是怎样的,先做什么,后做什么,有什么样的条件样的,先做什么,后做什么,有什么样的条件判定,有些什么重要处理等,并用相应的表示判定,有些什么重要处理等,并用相应的表示工具把这些控制结构表示出来。工具把这些控制结构表示出来。 三、数据工程三、数据工程 GIS软件数据工程阶段,包括软件数据工程阶段,包括数据预处理、数据采集、数据数据预处理、数据采集、数据处理等子阶段。处理等子阶段。 1数据预处理数据预处理 无论用何种方法获取的原始数据,都可能存在着数无论用何种方法获取的原始数据,都可能存在着数字化过程中
60、不可避免的引入错误,数字化数据与使字化过程中不可避免的引入错误,数字化数据与使用格式不一致,各种数据来源的比例尺和投影不统用格式不一致,各种数据来源的比例尺和投影不统一,各幅地图数据之间的不匹配,以及地图比例尺一,各幅地图数据之间的不匹配,以及地图比例尺之间、地图比例尺与数字化仪的长度单位之间不一之间、地图比例尺与数字化仪的长度单位之间不一致,因此必须通过数据预处理,才能获得净化的数致,因此必须通过数据预处理,才能获得净化的数据文件,使采集的数据符合规范化标准。据文件,使采集的数据符合规范化标准。 2数据采集数据采集 建立建立GIS的第一步就是将空间实体的图形数据的第一步就是将空间实体的图形数
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025临床执业医师经典例题(夺分金卷)附答案详解
- 发货快递合同(标准版)
- 保险公司保险合同(标准版)
- 2024公务员(国考)考前冲刺练习试题及完整答案详解(各地真题)
- 2025年智慧港口智能港口与城市协同发展报告
- 2025年康复医疗器械市场需求洞察与前沿产品创新策略报告
- 西藏自治区2025年初中学业水平考试历史试卷含答案
- 2025年传媒互联网行业市场前景及投资研究报告:AI应用新消费
- 巡察办工作流程课件
- DeepSeek技术赋能企业财务数字化转型的框架与策略
- 光伏发电工程竣工最终验收报告
- 2025-2030中国篮球运动鞋行业市场发展趋势与前景展望战略研究报告
- 发改价格〔2007〕670号建设工程监理与相关服务收费标准
- 2025年小学生科普知识竞赛练习题库及答案(200题)
- 传媒行业创新案例小红书
- 《美妆类电商产品销量影响因素实证研究13000字(论文)》
- T-JSQX 0016-2024 无人驾驶配送装备通.用技术要求
- 科技前沿下的生物医药研发实验室创新研究
- 《铝及铝合金》课件
- 2025年摩托车用锁行业深度研究分析报告
- 临床问诊技巧及病历书写要求(临床诊断课件)
评论
0/150
提交评论