地理信息系统二次开发实例教程-c#+ArcGis

所需积分/C币:18 2013-10-17 23:00:41 24.59MB PDF

地理信息系统二次开发实例教程-c#+ArcGis
面,包括需求分析、数据管理设计、用户界面设计、设计模式在软件开发中的应用。在 开发过程中应用软件工程技术,可以提高软件开发效率和质量。第章“需求分析”介 纽了“北京市地理信息公众查询系统”的需求分析,包括需求概述、功能需求以及功能需 求详细描述。第章“系统总体设计”介绍了系统平台选择、系统总体框架、系统数据组织 及系统开发进度安排等。第章“系统详细设计”根据系统的总体设计结构分别从北京市地 理信息公众查询系统的数据库设计和一些相关类的设计两方面米详细阐述系统的设计。 第章“系统主界面的实现”首先简单介绍 的功能、特点、结构及其数据源,然 后介绍如何设计系统的主界面及主要实现代码。第章“选择与査询功能的实现”主要介绍 如何通过查询与数据集有关的衣从数据中获取信息,以及如何通过空间和逻辑的查询方法 从数据中获取信息。第章“系统其他辅助功能”介绍了系统中其他一些辅助功能的实现, 例如当鼠标移动到某地物上并稍做停留后,岀现一个小标签,显示该地物的名称,以及距 离量算、面积量算的实现,等等。为了让读者更加全面地掌握 的廾发,第章介 绍了“北京市地理信息公众査询系统”开发过稈中没有涉及到的一些对象,包括投影对象、 地址匹配对象、动态跟踪层( 对象与地理事件( )对象。 科海网站提供了本书涉及的所有源代码,以及实现书中内容所需的所有组件。读者可 以从 中下载这些资料。 由于时间仓促,书中难免有一些错误、遺漏,恳请读者谅解,并提出批评和指正 编者 2004年5月 日录 第章地理信息系统软件工程 软件工程简介 基本概念 软件系统开发过程 开发过程模型 需求分析 需求获取 需求规约 数据管理设计 全部采用文件管理 文件结合关系数据库管理 全部采用关系数据库合理 采用面向对象数据库管理 用户界面设计 界面设计原则 界面设计中的要素 界面样式 应用模式与开发方式 应用模式 开发方式 “北京市地理信息公众查询系统”介绍 第章需求分析 需求概述 功能性需求 系统体系结构 用户描述 具体功能需求 非功能性需求 功能需求详细描述 第章系统总体设计 系统平台选择 便件平台 目录 系统操作平台 数据库平台 系统川发模式与组件选择 开发工具 系统总体框架 系统功能框架 系统数据库 系统的川发结构 系统界面组织 系统数据组织 系统数据的逻辑组织 系统的主要数据类型 进度规划 第章系统详细设计 数据库详细设计 地名分类编码 元数据表结构 电子地图数据 系统相关类的详细设计 辅助类的详细设计 类的详细设计 类的详细设计 类的详细设计 类的详细设计 第章系统主界面的实现 简介 的功能 的特点 的结构 的数据源 建立项目 加入地图控件 加入其他引用 创建位图资源 主窗体的实现 界面设汁 基本编码 类的初步实现 目录 辅助类的实现 类的成员变量 读取元数据 创建主窗口中的工作区 创建I作区 创建“地图”选项卡 创建“查询”选项卡 创建“帮助”选项卡 图层的加入与控制 在地图中加入图层 依据比例尺控制图层显小 通过“地图”选项卡控制地图显示 控制显示的地物类型 控制地图显示区域 地图的放大、缩小、全图显示和漫游 其他辅助功能的实现 鹰眼功能的实现 显示经纬度 第章选择与查询功能的实现 选择地物 查询地物信息 地名查询 查找最近地物 公交查询 公交站点与线路查询 乘车路线询 地名索引 查洎绀果的定位与更详细信息 最短路径查询 第章系统其他辅助功能 地名的快速显示 距离量算与面积量算 其他工具栏按钮功能的实现 地图输出子系统的实现 在线帮助子系统的实现 第章 的其他对象 动态跟踪层对象与 对象 目录 对象的属性 对象的方法 对象的属性 对象的方法 实例应用 投影对象 坐标系 地图投影 地理编码 用于地址匹配的专用文件 绘制街道文件 地理编码对象 地址定位对象 地址标准化对象 交耳式地址兀配 批地址匹配 第章地理信息系统软件⊥程 在地理信息系统( 开发过程中应用软件工程技术, 可以提高软件开发效率和质量。本章首先介绍了软件工程的基本概念、软件系统开发过程 和开发过程模型。然后讲述了软件工程技术在系统廾发中的应用:需求分析、数据管理 设计、用户界面设计、设计模式在软件开发中的应用。这些方面涉及了开发过程中 的不同阶段及不同层次,有些方法之间是互斥的,如和方法,但是软件工程技术 最重要的特点是实用,开发者可以根据只体情况选用不同的技术。 软件工程简介 基本概念 计算机软件工程是一类求解工程。它应用计算机科学、数学、工程科学及管理科学等 原理,借鉴传统工程的原则、方法创建软件,以达到提高软件质量、降低开发成本的目的。 其中,讣算杋科学、数学用于构造模型与算法,工程科学用于制定规范、设计范型、评估 成本及确定权衡,管理科学用于管理计划、资源、质量、成本等。从学科角度来看,软件 ⊥程是·门指导计算机软件开发和维护的上程学科。 软件工程的提出是为了解决世纪年代出现的软件危机,当时在大型软件开发项日 中存在着成本髙、开发进程不易控制、开发工作量难于估算、软件质量低、项目失败率高 等诸多闩题,给软件行业带来了巨大的沖击。软件工程提出了一系列理论、原则、方法及 工具,试图解决这种软件危机。 和其他工程一样,软件工程有自己的目标、活动和原则,其框架可以概括为图所示 的内容。 分多// 算 持 开发范型 需现 设计方法 支持过程 求 管理过程 图软什工稈框架 第章地理信息系统软件工程 软件工程的目标可以概括为“生产具有正确性、可用性及开销合宜的宀品”,其活动 包括需求、改计、实现、确认及支持等。围绕工程设计、支持及管理,软件工程有以下 条基本原则: )选取适宜的廾发模型。选取适宜的廾发模型可以利」认识需求易变性并加以控制 以保证软件产品满足用户的需求 〔)采用合适的设计方法。通常要考虑实现软件的模块化、抽象与信息隐藏、本地化 致性及适应性等特征。 ()提供高质量的工程支持。在软件工程中,软件工具与环境对软件过程的支持颇为 重要。 ()重视开发过稈的管理。开发过程的管理直接影响可用资溟的有效利用、最终的软 件产品的满意度,软件组织的生产能力等问题。只有对开发过程实施有效管理,才能实现 有效的软件工程 软件工程把软件工程的思想和方法应用于软件的开发过程。如前所述,软 件工程活动包括需求、设计、实现、确认及支持等,它们对应」软件廾发过程的不同阶段。 般来说,软件开发都要经历从分析设计到实现确认的过程。每个阶段按照相应的规范进 行工作,并得到该阶段的成果,是保证整个开发过程戊功的关键。 软件系统开发过程 前面讲过,软件工程活动包括需求、设计、实现、确认及支持,它们对应于整个软件 开发过程的不同阶段。 需求分析 需求分析阶段处于软件开发过程的前期,其基本活动是准确定义未来系统的目标,确 定为满足用户的需求必须做什么。需求分析又划分为两个阶段,即需求获取和需求规约 前者用自然语言清楚地描述用广的需求,而后者的目的是消除获取需求的二义性和不致 性。 在软件项目的生命周期中,一个错误发现得越晩,修复错误的代价也越髙,所以,高 质量的需求工程是软件项目得以正确、高效完成的前提。对于系统分析人员,建立需求面 临着以下个方面的困难: ·问题空间的理解系统开发人员通常是计算机专业人员,难以深入理解各种业务系 统所憂解决的问题空间。 人与人之间的通信对于系统分析人员而言,通信主要包括同用户的通信以及同事 之间的通信,由于自然语言的二义性,会给准确刻田需求造成障碍。 ·需求的不断变化造成需求变化的原因很多,包括技术、用户方、市场等等。作为 分析人员,必须采用些策咯以适应变化。 面向对象的分析方法被认为是解决上述闲难的较好技术,但是完整、准确地刻划问题 空间始终是分析人员所面临的挑战 第章地理信息系统软件工程 系统设计 一般来说,需求分析阶段的主要任务是确定系统“做什么”,而系统设计阶段则要解 决“怎么倣”的问题。系统设计的任务是将系统分析阶段提出的逻辑模型转化为相应的物 理模型,其设计的内容随系统的目标、数据的性质和系统的不同而有很大的差异。一般前 言,首先应根据系统的目标,确定系统必须具备的空间操作功能,称为功能设计;其次是 系统的建模和产品的输出,称为应用设计。系统设计是系统整个开发工作的核心,不但要 完成熤辑模型所规定的任务,而且要使所改计的系统达到优化。所谓优化,就是选择最优 方案,使系统具有运行效率高、控制性能好和可变性强等特点。要提高系统的运行效率, 般要尽量避免中问文件的建立,减少文件扫摧的遍薮,并尽量采用优化的数据处理算法 为增强系统的搾制能丿,要拟定对数字和字符岀错时的校验方法;在使用数据文件时,要 设置口令,防止数据泄密和被非法修改,保证只能通过特定的通道存取数据。为了提高系 统的可变性,最有效的方法是釆用模块化的方法,即先将氅个系统看成一个模块,然后按 功能分解为若干个子模块。一个模只执行一种功能,一种功能只用一个模垗实现,这样 设计出来的系统才能做到可变性好并具有生命力。 功能设计又称为系统的总体设计,它的主要仟务是根据系统的目标来规划系统的规模, 确定系统的各个组成部分,并说明它们在整个系统中的作用与相互关系,以及确定系统的 硬件軋置,规定系统采用的合适技术规范,以保证系统总体目标的实现。图给出了通用 的总体设计结构图。 因此,系统的总体设计大致包括 数据库设计 硬件配置与选购 软件设计等 应用设计又称详细设计。详细设计包括详细的算法、数据表示和数据结构、实施的功 能和使用数据之间的关系。详细改计过程中采用了一些工只,以便对数据、算法等进行描 述,包括流程图、 ,问题分析图)、盒图(图)、伪码 实现阶段 软件实现阶段将设计的结果变换成程序设计语言编写的程序。一般情况下在实现阶段, 首先要确定程序改计语言,其影响因素包括:开发人员对语言的熟悉程度、语言的可移植 性、编译程序的效率、编译工具的支持等等。目前,语言是被普遍采用的构造系统软 件的编程语言,而则更多地应用于编写网络应用程序。 无论采用哪一种编程语言,都要求编写高质量的源稈序代码,稈序质量通常包含正确 性、可读性、可移植性、程序效率等指标。考虑到系统的维护和演化,提髙源程序的可读 性是实觋阶段的一个重要目标,其途径包括添加注释、规范书写格式、确定标认符命名原 则、采用结构化的程序设计方法(不用或减少使用语句)等。

...展开详情

评论 下载该资源后可以进行评论 7

pikachyu 版本太老了没有用。
2019-07-03
回复
不愿动脑的zy 挺不错的资料,不错
2018-04-27
回复
NeverGiveUpl 不错,很适合我这种新手,二次开发,从基础学起!
2017-05-08
回复
zh9844 对于初学者还可以
2014-10-19
回复
huayiluo216 还不错,初学者
2014-03-21
回复
img

关注 私信 TA的资源

上传资源赚积分,得勋章
最新资源