《gis软件工程的实施与测试课件》由会员分享,可在线阅读,更多相关《gis软件工程的实施与测试课件(26页珍藏版)》请在金锄头文库上搜索。
1、第一节 GIS软件工程的实施准备,一、实施阶段的准备工作 二、硬软件引进 三、软件工程对编程的技术要求 四、软件工程对编程的质量要求,一、 实施阶段的准备工作,系统实施工作量大,投入的人力、物力多,技术含量高,为了保障系统编程工作顺利开展,必须进行充分准备。无论是程序的编制还是系统的实施都需要一定客观的条件环境,包括硬件、软件、模拟的客户网络和工作模式等要素,同时这个阶段需要大量投入技术人员。在正式开始编程序前,需要开展如下工作: 1、硬件准备 硬件设备包括计算机主机输入输出设备、存储设备、辅助设备(稳压电源、空调设备等)、通信设备等。按照系统设计方案,要购置、安装、调试这些设备。这方面的工作
2、需要花费大量的人力、物力,持续相当长的时间。,2、软件准备 GIS往往不是从底层开发的,而是建立在一定的GIS基础软件的基础 上,如ARC/INFO、AutoCAD、Map、MAP/INFO等。即使是从底层开始开发,也需要准备编程语言软件、系统开发中的工具软件、数据库管理系统软件等。软件的配置方案已经包含在系统设计方案中,按照配置方案进行落实就可以了。 3、开发人员准备 系统实施工作量大,相对于系统分析、系统设计阶段而言,需要更多的参加人员,而且整个系统的实施需要专门的人来进行组织和管理。因此需要进行人员补充,特别是具体编程人员的增加。同时这些新增人员由于没有参加前两个阶段,所以必须由系统设计
3、人员向他们进行培训,尽快熟悉系统开发的任务。在此基础上,根据编程人员的能力分配系统的不同模块。,4、数据准备 GIS是一种基于数据管理的信息系统,除系统运行后产生和录入的数据外,需要系统外提供大量的基础数据,一般有地形图、地籍图和一些现存的业务数据。虽然数据字典和数据库设计书规定了数据的格式,但是系统在编制和测试过程中,需要使用到实际数据,方便编程人员对进行程序调试和测试工作。而数据的收集、整理、录入是一项既繁琐又要确保质量的工作,需要花费大量的人力和物力。一般说来,确定数据库物理模型之后,就应进行数据的整理、录入。这样既分散了工作量,又可以为系统调试提供真实的数据。我国GIS实践证明,这方面
4、的工作往往容易被人忽略,人们认为通过假造极少的符合数据格式的数据来满足开发和测试的需要,所以系统在运行过程中问题不断,甚至系统完成后只能作为摆设放在那里而不能真正运行。,二、硬软件引进,一般说来,在经费一定,系统开发目标正确的条件下,硬件、操作系统软件及GIS基础软件要同时考虑,制定最佳配置方案。硬件选择除了考虑和比较各种技术指标外,实施过程中还应注意各子系统之间硬件、软件的兼容但当然最好选用同一型号;硬件、软件最好由同一家公司负责;设备最好分批进,以适应计算机迅速更新换代的特点;切忌在尚未完成设计之前,线购置大量高档设备和软件,造成积压浪费。 软硬件引进工程的实施步骤为:配置方案制定购置(或
5、开发)安装调试试运行,其流程图如下:,制定硬软件配置方案、网络设计方案,网络设备 购置,硬件、操作系统 软件购置,GIS基础软件 购置(或开发),中心机房 装修,系统硬软件、网络 安装测试、试运行,系统管理员培训,GIS基础软件培训,硬软件引进工作实施中应注意的问题有: (1)GIS基础软件对硬件和操作系统均有一定的要求,选择硬件和操作系统时 要充分考虑这一因素。 (2)除非原来有较好的基础,否则不提倡从头开始自行研制GIS基础软件。最好在国内外已有先进的商品化软件中挑选,并在此基础上根据本系统的用户需求进行二次开发。 (3)较大的GIS一般要设中心机房,机房装修应由专业人员承担,要符合用电、
6、防火、防静电、防尘、温度、湿度、通风等各项指标要求。 (4)网络规模应与系统规模相适应,设备应使用、效率高、安全性好。 (5)尽早安排人员培训,上岗人员必须经过一定程度的培训。 (6)安装、调试、试运行中发现的问题因及时处理。,三、软件工程对编程的技术要求,作为软件工程的一个阶段,程序编制是设计的继续。然而,在编码中所遇到的问题,如程序设计语言的特性和程序设计风格会深刻地影响软件的质量和可维护性。下面介绍软件工程对编码的技术要求。 1、有关编码的原则 (1)简明清楚。避免过分技巧,以免造成程序的可读性差。 (2)避免及少用全局变量,避免副作用,不要过多的程序嵌套结构。 (3)编程时首先达到正确
7、性,然后考虑执行速度。 (4)采用记忆名;充分的注释;合适的编程语言。 (5)不要害怕缺乏某种编程语言的知识。不同的编程语言的本质具有共性,真正掌握了一种编程语言,可以很快地掌握其他语言。,2、编码与软件开发方法 编程语言的选择常常依赖于开发的方法,如果要用快速原型模型来开发,要求能快速实现原型的构建,宜采用第四代编程语言(4GL)。如果是面向对象方法,宜采用面向对象的语言编程,面向对象的语言有:C+,Java等。 3、编码与软件环境 良好的编程环境不但有效提高软件生产率,同时能减少错误,有效提高软件质量。近几年推出了许多可视化的软件开发环境,如:VB、VC、VFP、Delphi等编程语言即有
8、效地提高了软件的生产率。,四、软件工程对编程的质量要求,为了保证编码的质量,程序员必须深刻地理解、熟练掌握并正确地运用程序设计语言的特性,例如一些语法规则和语义的细节。只有语法上没有错误的程序才能通过编译系统的语法检查。然而,软件工程项目对代码编写的要求,绝不仅仅是源程序语法上的正确性,也不只是源程序中没有各种错误,此外,还要求源程序具有良好的结构性和良好的程序设计风格。因此,在编写程序的过程中必须做到:源程序便于阅读,具有良好的可维护性。,第二节 程序编制,一、程序编制的一般要求 二、编程语言的特征及选择 三、程序设计风格,一、程序编制的一般要求,程序编制就是为各个模块编写程序,把系统详细设
9、计转变为计算机能够接受的代码。这是系统实现阶段的核心工作,合理的程序是系统质量得到保证的基础。 随着计算机硬件的发展,人们对程序的执行速度和程序长度要求已经大大降低,同时系统规模不断扩大,系统开发人员也往往达数十人,甚至成百上千的共同从事一个大项目的开发,所以编程更加强调程序的可读性和可重用性等要素。一般认为好程序应具备的素质是:能够正常工作;调试代价低;易于维护;易于修改;设计不复杂;效率高等。 GIS的程序也具有上面的通用要求,针对GIS本身的特征,还具有如下一般要求:,1、尽量使用GIS基础软件的变成资源 GIS建立在GIS基础平台上的应用,除对GIS基础平台的功能进行定制外,还需要进行
10、大量的开发来获得系统所需要的专有功能。 实现这些开发有两种方式:一是直接利用操作系统或通用编程语言的资源进行编程;二是利用GIS基础平台提供的资源库进行开发。前者由于直接进行开发往往工作量大,而且无法享受由基础平台升级带来的好处,所以系统维护工作量大,系统生命周期受到很大影响。后者因为GIS基础平台建立在操作系统资源上,所以用户既能够享受到操作系统升级带来的好处,也可以享受GIS基础平台升级本身带来的好处,所以在不影响功能实现和严重影响效率的前提下尽量采用后者进行开发,当然这可能导致开发不方便、功能使用不便、界面美观程度不够等一些缺点。,2、注意系统配置要求 GIS设计大容量数据处理、显示、读
11、写,所以对硬件、网络等设备要求较高,特别具有一定仿真功能的三维GIS,一般的PC机甚至满足不了要求。这给GIS应用提高了门槛。而系统的算法、程序流程对GIS的效率具有很大的影响,特别对数据操作的功能,GIS基础平台提供的数据库操作模块效率往往远远低于数据管理系统本身提供客户端程序,甚至操作系统提供的数据连接程序。在这种情况下,则编程中采用效率高的连接方式,而不能节约开发工作量而牺牲系统的效率。否则在实践中面临海量数据的操作时,系统陷入灾难性等待之中。 3、良好的程序设计风格 GIS处理对象多,操作也往往具有较多的非流程化的过程,这导致程序流程复杂,这样保证程序的可读性和稳定性非常重要,故必须保
12、证程序具有良好的设计风格。,4、程序容错性强 根据统计,稳定性高、健壮性好,易于操作的程序容错代码甚至占程序代码的70%以上。GIS服务对象主要是业务人员,而且系统流程性差,所以在系统运行过程中。可能面临许多不规范甚至非法操作,如果程序容错性不强,非常容易导致系统陷入瘫痪。对程序容错性重视不够是我国GIS不稳定、难以推广的重要原因之一。 5、采用版本控制管理程序代码 版本控制指将系统划分为若干个具有一定顺序的部分,即所谓版本,首先实现系统的轮廓或框架,在此基础上不断添加新的功能,逐步完善,最后达到系统物理模型所要求的全部功能。这是自动向下开发的一种重要方法,将系统功能划分到多个相对具有独立性的
13、版本之中,为系统程序的开发组织、质量控制、测试等工作减小了难度。,版本控制中应注意的问题:必须决定模块借口问题。如果借口定义不好,将在以后的版本开发和调试中不得不修改程序,大大增加程序开发的工作量。 版本划分一般应遵循的原则是:先上层后下层,先控制部分后执行部分;与开发环境、开发力量、培训计划、用户要求等结合一起综合考虑;复杂的模块分散到多个版本中逐步实现;功能模块与数据库实现兼顾考虑;保证每个版本具有详细的记录,可根据需要回溯到前面版本。,二、程序语言的特征及选择,编程语言是人机通信的工具,人类使用它“指挥”计算机干什么。编程语言的心理特性、工程特性、技术特性都对编制程序的质量有重要的影响。
14、 1、编程语言特性 1)心理特性 编程语言的心理特性指影响程序员心理的语言性能,这类特性是作为程序设计的结果而出现的,其表现形式如下: (1)歧义性:有的编程语言的语法规则容易使人用不同的方式来解释语言,易产生心理上的二义性。 (2)简洁性:人们为了掌握编程语言,必须记住若干的语句种类、数据类型、运算符、函数、过程等,而这些成分数量越多,该语言的简洁性越差,人们越难理解。,(3)局部性和顺序性:局部性指语言的联想性。在编程过程中,有语句组合成模块,由模块组装成系统,并在组装过程中实现模块的高内聚、低耦合,加强程序的局部性。若在程序中多采用顺序序列,则使人容易理解。如果存在大量的分支或循环,则不
15、利于人们理解。 (4)传统型:人们已习惯于已掌握的编程语言,若新的一种编程语言的结构、形式与原来的类似,还容易接受。若风格完全不同,则较难接受。 2)工程特性 从软件工程的观点,编程语言的特性着重考虑软件开发项目的需要,因此对程序编制有如下要求: (1)可移植性:要增加可移植性应考虑以下几点:设计的模块与操作系统的特性不应有高度的联系;要使用标准的语言,要使用标准的数据库操作;对程序中的各种可变信息均应参数化。,(2)开发工具的可利用性:有效地软件开发工具可以缩短编码时间,改进源程序的质量。这些开发工具为:交互式调试器、交叉编译器、屏幕格式定义工具、报表格式定义工具、图形开发环境、菜单系统和宏
16、处理等。 (3)软件的可重用性:编程语言应能提供可重用的软件成分,如模块子程序可通过源程序剪贴、包含和即成等方式实现软件重用。 (4)可维护性:原程序的可读性、语言的文档化特征好对复杂的软件开发项目有重要的影响,可以做到易于把详细设计翻译为源程序,易于修改需要变化的源程序等。,3)技术特性 软件设计阶段的设计质量一般与语言的技术特性关系不大(面向对象设计例外),但将软件设计转化为程序代码时,转化的质量往往受语言性能的影响,可能会影响到设计方法。 编程语言的技术特性对软件的测试与维护也有一定的影响。支持结构化构造的语言有利于减少程序的复杂性,是程序易测试、易维护。 2、编程语言的选择 项目应用领域是选择语言的关键因素。选择编程语言可以从以下几个方面进行考虑:,(1)科学工程计算。该计算需要大量的标准库函数,以便处理复杂的数值计算。 可供选择的语言有:FORTRAN、Pascal、C、PL/