GIS软件工程_01概述_第1页
GIS软件工程_01概述_第2页
GIS软件工程_01概述_第3页
GIS软件工程_01概述_第4页
GIS软件工程_01概述_第5页
已阅读5页,还剩68页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、GIS软件工程的原理与方法教学目的和课程内容 教学目的根据培养基层应用型人才的需要,本课程的目的与任务是使学生通过本课程的学习,了解软件项目开发和维护的一般过程,掌握软件开发的传统方法和最新方法,为更深入地学习和今后从事GIS软件工程实践打下良好的基础。 设计方法 第3章 系统分析 课程内容第1章 基本内容软件工程的问题与特色,软件生存周期模型,GIS软件工程生存周期。 教学要求:重点掌握瀑布模型、 GIS软件工程生存周期各阶段的任务。 重点:软件工程的定义和软件生存周期模型。 1.1.1 GIS软件的特点 1.在存储技术上,空间数据库与属性数据库相分离。2.在数据组织与处理模式上,基于地图处

2、理的模式,空间数据处于“尺度割裂”状态。3.在网络和分布式环境下系统组成采用静态方式处理。4.在空间数据管理范围方面能有效地处理二维空间数据。5.在数据和功能共享方面实现有缝的数据共享。1.1 GIS软件工程1.1.2 GIS软件开发过程中的问题软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。这些问题绝不仅仅是GIS软件才具有的,实际上,几乎所有软件都不同程度地存在这些问题.具体来说, GIS软件开发过程中的问题主要有以下一些典型表现:1.对软件开发成本和进度的估计常常很不准确。2.用户对“已完成的”软件系统不满意的现象经常发生。3.软件常常是不可维护的。4.软件产品的质量往

3、往靠不住。5.数据工程量特别大。6.软件开发生产率提高的速度,既跟不上硬件的发展速度,也远远跟不上计算机应用迅速普及深入的趋势。7.软件可重用性差。1.1.3 GIS软件开发问题的原因分析在软件开发和维护的过程中存在这么多严重问题,一方面与软件本身的特点有关,另一方面也和软件开发与维护的方法不正确有关。 1.软件的规模越来越大,结构越来越复杂。2.软件开发的管理困难。3.软件开发费用不断增加。4.软件开发技术落后。5.生产方式落后。6.生产工具落后。7. GIS软件更新变化快,引起发展过程中的衔接问题。图图1.11.1引入同一变动引入同一变动付出的代价随时间变化的趋势付出的代价随时间变化的趋势

4、1.1.4 GIS软件工程 软件工程的定义软件是计算机程序、方法、规则、相关的文档资料以及计算机上运行时所必需的数据。 软件工程是开发、运行、维护和修复软件的系统方法。GIS软件工程就是遵循一般软件开发的工程化原理和方法,并照顾到GIS软件开发的特殊规律和要求,对GIS软件从可行性研究、需求分析、总体设计、详细设计、软件编制、软件测试、直到软件维护的各个阶段进行工程化规范的一门技术。 工程的性质软件工程是涉及计算机科学、工程科学、数学等领域的一门综合性的交叉学科。 1.软件工程用工程科学中的观点来进行费用估算、制定进度、制定计划和方案。2.软件工程用管理科学中的方法和原理进行软件生产的管理。3

5、.软件工程用数学的方法建立软件开发中的各种模型和各种算法。 工程的目标软件工程采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,以经济地开发出高质量的软件并有效地维护它,并最终希望得到项目的成功。 软件工程的内容软件工程的内容指软件开发技术和软件开发管理两个方面;GIS软件工程的内容按开发顺序包括前期工程、设计工程、数据工程、工程实施和维护工程五个阶段。 软件工程包括三个要素,方法、工具和过程。其中,方法是完成软件开发的各项任务的技术方法,回答“如何做”的问题;工具是为方法的运用提供自动的或半自动的软件支撑环境;过程是为

6、了获得高质量的软件所需要完成的一系列任务的框架,它规定了完成各项任务的工作步骤。目前使用得最广泛的软件工程方法学,分别是传统方法学和面向对象方法学。1.1.5 GIS软件工程的特色GIS是基于空间数据的信息系统,与此对应,GIS软件工程具有如下特点: 系统复杂度大 数据在系统中具有特别地位 系统表达方式复杂 系统更新速度快 系统维护工作量大 易操作性要求高 数据在系统中具有特别地位数据被称为GIS的“核心”和“血液”,在系统投资中,数据、硬件、软件的比例一般高达8:1:1。在数据准备方面应注意:1.数据的质量2.数据的现势性3.合理的数据组织结构 系统复杂度大相关因素:1.交付的文档的质量和数

7、量2.软件的微观复杂度3.软件的宏观复杂度 系统表达方式复杂GIS的复杂性表现在:1.表达的内容复杂包括文本、空间、多媒体和遥感遥测的实时数据。2.表达的对象具有时空特性 系统更新速度快我国从20世纪80年代开始GIS的建设,经历了项目型GIS、管理型GIS、社会型GIS等。 系统维护工作量大为确保系统的长期发展,一方面要求长期的投资,另一方面在系统设计开发过程中,要坚持“总体规划、分步实施、灵活调整、急用先行”的设计原则。 易操作性要求高GIS功能复杂,系统应该通过良好的工作界面引导用户来完成操作,同时必需保证数据的安全性。1.2 软件生成周期模型1.2.1 概述模型是为了理解事务而对事务作

8、出的一种抽象。软件生成周期模型是描述软件开发过程中各种活动如何执行的模型。1.2.2 瀑布模型 在20世纪80年代之前,瀑布模型一直是唯一被广泛采用的生命周期模型,现在它仍然是软件工程中应用得最广泛的过程模型。图2.1所示为传统的瀑布模型。 按照传统的瀑布模型来开发软件,有如下几个特点: (1) 阶段间具有顺序性和依赖性 (2) 推迟实现的观点 清楚地区分逻辑设计与物理设计,尽可能推迟程序的物理实现,是按照瀑布模型开发软件的一条重要的指导思想。 图图1.2 1.2 传统的瀑布模型传统的瀑布模型 (3) 质量保证的观点以文档形式驱动,每个阶段都必须完成规定的文档,没有交出合格的文档就是没有完成该

9、阶段的任务。 以里程碑开发原则为基础,每个阶段结束前都要对所完成的文档进行评审,以便尽早发现问题,改正错误。实际的瀑布模型是带“反馈环”的,如图2.2所示(图中实线箭头表示开发过程,虚线箭头表示维护过程)。当在后面阶段发现前面阶段的错误时,需要沿图中左侧的反馈线返回前面的阶段,修正前面阶段的产品之后再回来继续完成后面阶段的任务。图图1.3 实际的瀑布模型实际的瀑布模型 瀑布模型的局限性瀑布模型是一种,理想的线性开发模型,缺乏灵活性,无法解决软件需求不明确或不准确的问题。1.不能保证工程每个阶段都是正确的。2.通信中的误解无法避免。3.用户的新要求和环境的变化需要系统随之改变。1.2.3增量模型

10、增量模型也称为渐增模型,如图2.4所示。使用增量模型开发软件时,把软件产品作为一系列的增量构件来设计、编码、集成和测试。每个构件由多个相互作用的模块构成,并且能够完成特定的功能。使用增量模型时,第一个增量构件往往实现软件的基本需求,提供最核心的功能。图1.4增量模型图1.5 风险更大的增量模型1.2.4螺旋模型软件开发几乎总要冒一定风险,因此,在软件开发过程中必须及时识别和分析风险,并且采取适当措施以消除或减少风险的危害。螺旋模型的基本思想是,使用原型及其他方法来尽量降低风险。理解这种模型的一个简便方法,是把它看作在每个阶段之前都增加了风险分析过程的快速原型模型,如图1.6所示。完整的螺旋模型

11、如图1.7所示。图中带箭头的点划线的长度代表当前累计的开发费用,螺线旋过的角度值代表开发进度。图1.6 简化的螺旋模型图1.7 完整的螺旋模型1.2.5 喷泉模型 迭代是软件开发过程中普遍存在的一种内在属性。经验表明,软件过程各个阶段之间的迭代或一个阶段内各个工作步骤之间的迭代,在面向对象范型中比在结构化范型中更常见。图1.8所示的喷泉模型是典型的面向对象生命周期模型。 “喷泉”这个词体现了面向对象软件开发过程迭代和无缝的特性。 为避免使用喷泉模型开发软件时开发过程过分无序,应该把一个线性过程(例如,快速原型模型或图1.8中的中心垂线)作为总目标。但是,同时也应该记住,面向对象模型本身要求经常

12、对开发活动进行迭代或求精。图1.8 喷泉模型智能模型是基于知识的软件开发模型,它综合了上述若干模型,并把专家系统结合在一起。该模型应用基于规则的系统。1.2.6 智能模型1.2.7快速原型模型所谓快速原型是快速建立起来的可以在计算机上运行的程序,它所能完成的功能往往是最终产品能完成的功能的一个子集。如图1.9所示(图中实线箭头表示开发过程,虚线箭头表示维护过程),快速原型模型的第一步是快速建立一个能反映用户主要需求的原型系统,让用户在计算机上试用它,通过实践来了解目标系统的概貌。通常,用户试用原型系统之后会提出许多修改意见,开发人员按照用户的意见快速地修改原型系统,然后再次请用户试用。一旦用户

13、认为这个原型系统确实能做他们所需要的工作,开发人员便可据此书写规格说明文档,根据这份文档开发出的软件可以满足用户的真实需求。图图1.9快速原型模型快速原型模型 快速原型的本质是“快速”。开发人员应该尽可能快地建造出原型系统,以加速软件开发过程,节约软件开发成本。原型的用途是获知用户的真正需求,一旦需求确定了,原型将被抛弃。GIS软件工程的生存周期指一个GIS软件从提出开发要求开始直到该软件报废为止的整个时期。GIS软件工程整个生存周期划分为四个阶段:系统分析、系统设计、系统实施、系统评价及维护。GIS软件工程整个生存周期按工程化的思想可划分为五个阶段:前期工程、设计工程、数据工程、工程实施、维

14、护工程。1.3 GIS软件工程的生存周期前期工程包括工程调研、可行性研究、制定项目计划、需求分析等子阶段。1.工程调研通过走访、交谈、函件往来、资料检索等方式对相关项目进行调研,为拟开展的软件工程项目提供有价值的参考资料。2.可行性研究可行性研究阶段必须回答的问题是:“要解决的问题是什么,是否有行得通的解决办法”。1.3.1 前期工程3.制定项目计划根据开发项目的目标、功能、性质及规模,估计项目需要的软、硬件和开发人员等资源,估算软件开发费用,估计开发进度,制定完成任务的实施计划。4.需求分析这个阶段的任务仍然不是具体地解决客户的问题,而是准确地回答“目标系统必须做什么”这个问题。 这个阶段的

15、另外一项重要任务,是用正式文档准确地记录对目标系统的需求,这份文档通常称为规格说明(specification)。1.3.2 设计工程设计工程包括总体设计、数据库设计、模型设计、详细设计等子阶段。1.总体设计总体设计就是设计软件的结构,包括模块组成、模块的层次结构、模块的调用关系、各模块的功能。2.数据库设计数据库设计是指把现实世界中一定范围内存在的应用处理和数据抽象成一个数据库的具体结构的过程。3.应用模型设计应用模型设计是针对拟开发领域的特殊技术要求,运用并分析该领域的应用模型,设计实现该模型的技术方法。4.详细设计详细设计阶段是为每个模块完成的功能进行具体描述,要把功能描述转变为精确的、

16、结构化的过程描述。这个阶段的任务还不是编写程序,而是设计出程序的详细规格说明。1.3.3 数据工程数据工程包括数据预处理、数据采集、数据处理等子阶段。1.数据预处理通过数据预处理,才能获得净化的数据文件,使采集的数据符合规范化标准。2.数据采集数据采集就是将图形数据和属性数据输入到地理数据库中。2.数据采集数据采集包括野外数据采集、图形数据采集、属性数据采集、图形数据和属性数据的连接。野外数据采集的方法:GPS方法 摄影测量方法测量法图形数据采集的方式:手扶跟踪数字化扫描数字化3.数据处理数据处理包括:格式转换图形单元的修改与增删图幅拼接坐标转换几何纠正数据编辑处理拓扑结构拓扑关系的自动生成1

17、.3.4 工程实施工程实施包括程序编制、测试、试运行等子阶段。1.程序编制这个阶段的关键任务是写出正确的容易理解、容易维护的程序模块。2.测试测试方式是在设计测试用例的基础上检验软件的各个组成部分。测试分为模块测试、组装测试、确认测试。3.试运行试运行是保证最终交付给用户的软件质量的重要手段。1.3.5 维护工程维护工程包括数据库维护、软硬件维护等方面。1.数据库维护根据系统的规模和实际需求,建立系统的数据维护更新机制,规定系统数据维护更新的周期,使系统的所有数据均相对地处于最新的状态。2.软件维护维护阶段的关键任务是,通过各种必要的维护活动使系统持久地满足用户的需要。 通常有四类维护活动:改

18、正性维护,也就是诊断和改正在使用过程中发现的软件错误;适应性维护,即修改软件以适应环境的变化;完善性维护,即根据用户的要求改进或扩充软件使它更完善;预防性维护,即修改软件为将来的维护活动预先做准备。GIS与一般信息系统的区别:1.综合性强,横跨多学科;2.数据组织以空间数据为主;3.面向应用,以空间分析为主。1.4 GIS软件工程建设的主要过程按照软件工程化方法,GIS开发分为以下六个步骤:1.制定GIS开发计划2.GIS需求分析3.GIS系统设计(包括总体设计、数据库设计和详细设计)4.GIS程序编码5.GIS产品测试 6.GIS产品的运行维护1.4.1 GIS软件开发的工程化方法1.4.2

19、 GIS软件工程的系统分析 GIS软件工程系统分析的目标:1.较低的开发成本2.符合要求的功能3.较好的性能和可靠性4.较好的移植性和较低的维护费用5.按时完成软件并及时交付使用GIS软件工程系统分析的步骤:1.识别GIS用户要求2.评价GIS的可行性3.进行GIS开发经济分析和技术分析4.把功能分配给GIS软硬件、人、 GIS数据库和其他系统元素5.建立GIS开发成本和进度限制6.生成GIS规格说明,形成所有后续GIS工程的基础 GIS软件工程的可行性研究GIS可行性研究包括:1.经济可行性2.技术可行性3.法律可行性4.对系统不同开发方案进行比较评估 GIS软件工程的可行性研究GIS可行性

20、研究报告的内容:1.GIS项目背景2.候选方案3.GIS系统描述4.经济可行性5.技术可行性6.法律可行性7.GIS用户使用可行性 GIS开发成本效益分析成本效益分析的目的是从经济角度评价开发一个新的GIS项目是否可行。成本效益分析首先是估算待开发GIS的成本,然后与可能取得的效益进行比较和权衡。 GIS开发技术分析技术分析的内容:1.完成GIS的功能和性能需要什么技术2.哪些新设备、方法、算法或者过程3.有什么开发风险4.这些技术问题对成本的影响如何 分配与权衡对各候选GIS的系统配置方案进行评估,并将每一个GIS功能,与其必要的一些性能和接口特性一起分配给一个或多个系统元素(软硬件、数据库

21、、人员、文档等),并据此建立AFD层次结构模型,用以表达GIS系统元素之间的相互关系。1.4.3 GIS软件工程的需求分析GIS软件工程需求分析的目的是把GIS的功能和性能的总体概念描述为具体的GIS产品需求规格说明;其任务是深入描述GIS的功能和性能,确定GIS系统设计的限制和GIS同其他系统元素的接口细节。 GIS软件工程需求分析的原则1.必须能够表达和理解问题的数据域和功能域数据域包括:数据流:数据通过一个GIS系统时的变化方式数据内容:数据项数据结构218:各种数据的逻辑组织2.必须按自顶向下、逐层分解22的方式对问题进行分解和不断细化分解分为横向分解和纵向分解。横向分解是同一层次的分

22、解;纵向分解是多层次的分解 GIS软件工程需求分析的过程GIS软件工程需求分析的内容:对问题的识别、分析与综合、制定规格说明和评审。1.对问题的识别问题的识别要确定对GIS的综合要求,并提出这些要求的实现条件,应达到的标准。这些需求包括:功能需求性能需求环境需求可靠性分析安全保密要求用户界面需求2.分析与综合分析方法包括:面向数据流的结构化分析方法(SA)面向数据结构(JSD)方法面向对象分析方法(OOA)用于建立动态模型的状态迁移图或Petri网3.编制需求分析文档需求分析文档是指软件需求规格说明书。1.4.4 GIS软件工程的系统设计GIS软件工程系统设计的内容包括数据设计、系统结构设计和

23、过程设计。数据设计侧重于空间数据结构和属性数据库结构的定义;系统结构设计定义GIS各主要成分之间的关系;过程设计是把结构成分转换成GIS的过程性描述。GIS软件工程系统设计的方法包括结构化设计方法、原型化设计方法和面向对象设计方法。 结构化设计方法结构化设计方法是基于模块化、自顶向下逐层细化、结构化程序设计等程序设计技术基础上发展起来的,该方法的要点:1.首先研究、分析数据流图,从GIS的需求规格说明中弄清数据流加工的过程;2.根据数据流图决定问题的类型;3.由数据流图推导出GIS的初始结构图;4.利用一些调控性原则来改进GIS的初始结构图,直到得到符合要求的结构图为止;5.修改和补充数据词典

24、;6.制定测试计划。GIS软件工程系统设计的方法包括结构化设计方法、原型化设计方法和面向对象设计方法。 原型化设计方法原型是指模拟某种产品的原始模型。原型化设计方法的优点:1.增进GIS开发人员和GIS用户对系统服务需求的理解,使比较含糊的具有不确定性的GIS需求明确化;2.用户可以亲身体验早期的开发过程,获得关于GIS系统的专门知识;3.可以容易地确定GIS的性能,确认各项主要系统服务的可应用性,确认系统设计的可行性和系统作为产品的结果;4.原型经过略加修改可成为系统的一个组成部分。 面向对象设计方法基本概念:1.对象是客观世界实体的抽象描述,由信息(数据)和对数据的操作组合而成;2.类是多

25、个相似对象共同特性的描述;3.消息是对象之间通信的手段,是对象之间相互请求或相互协作的途径,它用来指示对象的操作;4.方法是对象接收到信息后应采取的行动序列的描述;5.继承是一种现实世界中对象之间独特的关系,它使得某类对象可以继承另一类对象的特征和能力;6.持久性是指数据能在进程或操作中存在,并且能在下一个进程或操作中重新使用的能力。 结构化程序设计结构化程序设计的三种基本控制结构:1.顺序结构2.选择结构3.重复(循环)结构1.4.5 GIS软件工程的编码设计 图图1.101.10三种基本的控制结构三种基本的控制结构(a) (a) 顺序结构,先执行顺序结构,先执行A A再执行再执行B B;(b) IF-THEN-ELSE(b) IF-THEN-ELSE型选择型选择( (分支分支) )结构;结构;(c) DO-WHILE(c) DO-WHILE型循环结构型循环结构结构化程序设计的主要原理:1.使用程序设计语言中的顺序、选择、重复等基本控制结构表示程序和逻辑结构;2.选用的控制结构只允许有一个入口和出口;3.程序由容易识别的块组成,每个块只有一个出口和入口;4.复杂结构应该用基本控制结构进行组合嵌套来实现;5.严格控制使用GOTO语句。程序设计自顶向下,逐步求精方法的优点:1.符合人们解决复杂问题的普遍规律,可提高软件开发的成功率和生产率;

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论