《地理信息系统设计与开发课程设计》课程大纲
课程代码:08314024
课程学分:2学分
课程总学时:32学时
适用专业:地理信息科学
一、课程概述
(一)课程的性质
1、《地理信息系统设计与开发课程设计》是地理信息科学专业学生的一门专业必修课,在《地理信息系统设计与开发》课程学习的基础上,利用一周停课实践教学的方法,使学生掌握地理信息系统设计与开发的基本步骤和方法,能够熟练运用GIS工具进行设计和二次开发,培养设计和建设地理信息系统的能力。
2、本课程主要采用C#语言及ArcObject,进行地理信息系统的二次开发,实现桌面地理信息软件产品的设计和开发,在掌握此开发思路和接口开发方法的基础上,方便将来WebGIS的开发和移动GIS的开发的学习。
(二)设计理念与开发思路
1、设计理念
课程教学方法以有利于课程内容的学习和取得良好的教学效果为原则,本课程主要互助式操作、应用操作指导、自学、讨论等形式。其中互助式操作主要是学生课堂进行一定程度的自主程序开发设计,提高自我程序开发能力;自学和讨论要求学生通过实践案例的设计讨论、应用功能架构,程序设计架构等完成难点和描述性内容的学习,自学效果通过讨论、提问等方式予以检查。
2、开发思路
为了培养学生的动手能力和创新精神,全面提高其综合素质,教学过程中要始终注重培养学生的动手能力,动脑能力,动口能力(提出和讨论问题以及辩论的能力),在实践过程中让学生自己不断发现问题,积累问题,最终达到提高分析问题和解决问题能力的目的。重点培养学生有良好的程序设计和开发习惯,规范化程序设计开发行为。同时在实践中培养学生的互助和协作能力,形成良好的团队开发经验。
3、本课程评价采用多元性的方式,做到三个结合:一是过程、阶段与目标评价相结合;二是理论与实践评价相结合;三是主持教师、实践指导教师和学生自评与互评相结合,以主持教师为主导。本课程分成四个阶段,分别是功能设计阶段、架构设计阶段、代码编写阶段、测试分析阶段。每个阶段都需要进行阶段评价。最终成功邀请相关专业其他专家和老师进行评判,结合同学之间的互评,评定每个学生的成绩及课程教学成果。
二、课程目标
本课程教学的总体目标是通过本门课的教学使学生掌握利用C#语言及ArcObject组件进行地理信息系统软件的设计和开发能力的培养,通过实践环节达到系统化的强化GIS软件设计开发的方法、步骤。
(一)知识目标
1、GIS软件的设计
包括功能设计及架构设计两大部分。
功能设计应该能够根据GIS软件的应用方向,结合实践应用,设计功能模块,并且完成相应的UI交互设计等。
架构设计应该能够完成程序系统架构的设计开发,能够完成系统的子模块的划分和分解,并且做好相关的功能接口设计,做到系统程序的健壮和功能的开放。
在此基础上,还要兼顾行业的发展和市场的应用,做到能够具备可扩展性,能够向移动端、Web端互相发展、跨平台操作的能力。
2、数据库设计
了解空间数据统计开发、空间数据库设计、空间数据编辑的方法的开发等。
掌握进行GIS不同数据源数据的连接、地图图层的加载保存等;空间数据的选择和查询等、专题图输出、节点编辑等开发的方法。
3、空间分析部分
了解矢量数据的拓扑分析、GP工具进行空间分析的开发等;栅格数据的插值分析、信息提取等开发方法
掌握矢量数据叠加分析的方法、数据格式转换,栅格数据的空间插值、统计、计算、重分类等空间开发方法
4、架构设计
了解基于三层架构、MVVM、MVC架构设计的思路,能够利用三层架构方法进行GIS软件的开发。
5、三维GIS开发
了解三维数据的生成、TIN、以及三维可视化工具开发三维显示的方法。
(二)能力目标
1、GIS软件设计
培养学生形成功能设计(需求开发)及软件三层架构思路进行程序设计的理念,同时形成以不同的应用,选择不同的开发模式进行GIS二次开发的思路。
2、数据库设计
培养学生在封装的基础上完成GIS基础功能的封装,实现基础GIS操作方法的调用等开发理念的培养,进一步加强GIS开发接口设计,实现基础GIS数据操作的方法,将已经学过的GIS的基本地图操作方法,包括专题图,地图统计、地图编辑等功能进行软件开发,并且实现这些功能的封装,方便后期的学习和调用。
3、空间分析部分
培养学生针对矢量数据和栅格数据常见空间分析开发方法的学习及掌握,并且能够灵活运用这些开发方法,实现一些常见应用功能的软件开发,并且能够将这些方法进行相互融合,形成更加合理和更加实用的GIS空间分析软件的针对性开发方法。
4、架构设计
培养基于三层架构程序设计的理念,触类旁通,了解基于MVVM、MVC架构设计的思路,能够利用三层架构方法进行GIS软件的开发的方法。
5、三维GIS开发部分
培养学生对三维GIS的常见开发方法的了解及数据集的处理,利用三维开发工具搭建简单的三维GIS分析平台。
(三)素质目标
本课程素质目标可以定位为如下:
1、改变传统的开发设计理念,将传统的界面开发思维模式转变为架构开发模式;
2、由传统的功能型开发向系统型开发转变。
3、将应用和开发相结合,使得GIS开发更加具备针对性。
4、良好的空间思维能力在本课程的学习培养中亦是重点内容;
5、理解如何进行团队开发、协作开发;
6、要懂得好的设计是开发的基础
三、课程内容与要求
本课程为实践类课程,共十天的实践。
(一)课程内容与要求
第一天:需求分析
(1)设计方向选题
(2)功能分析
(3)需求分析
(4)撰写需求分析报告
重点:对选题方向进行相关资料的搜集和查询,确定功能需求;
难点:撰写需求分析报告
目标和要求:完成需求分析报告,对需求内容具备可操作性。
第二天:总体设计
(1)实践项目的总体设计
(2)实践项目的功能框架
(3)实践项目UI设计框架
(4)数据库设计框架
(5)设计报告(总体设计)
重点:如何进行GIS应用项目的设计,如何形成合理,满足需求的设计报告。
难点:系统设计的合理性进行评价,数据库设计与功能设计是否符合应用需求。
目标和要求:分小组完成各组的系统设计及设计报告,要求切合项目内容进行合理的设计,同时注重小组成员之间的合作,开始就要形成良好的团队合作理念。
第三天:数据库设计
(1)数据图层的定义
(2)数据字段内容的定义
(3)数据关系设计
(4)数据字典设计
(5)现有数据的预处理及数据入库
重点:数据库内的设计
难点:数据关系设计及数据质量检查
目标和要求:空间数据库的合理选型,设计符合实际应用的数据库,数据关系的正确性,数据连接方法,最终形成系统开发文档。
第四天:详细设计
(1)程序的系统架构设计
(2)程序系统的子系统设计
(3)系统接口设计
(4)系统架构设计报告
重点:系统架构设计和系统接口设计
难点:子系统之间的划分及系统之间数据流和工作流的设计
目标和要求:合理选择系统架构以及系统子系统的划分,在此基础上实现系统接口的设计。消息传递的方法和接口设计的方法是每一个同学需要掌握和理解的。
第五天:业务流程设计和数据流程设计
(1)根据详细设计的内容,对业务流程进行定义
(2)对数据流进行定义
(3)对关键功能和关键步骤的功能编写实现思路
(4)一周工作成果汇总
重点:业务流程和数据流程定义
难点:业务流和数据流的结合及伪代码的编写
目标和要求:训练从全局角度对业务流程的设计能力及数据流的控制能力。从微观上掌握对具体功能实现方法的理解。
第六天:功能模块设计(一)
(1)数据库连接功能
(2)GIS基本操作功能模块的设计(放大、缩小)漫游、鹰眼等)
(3)UI交互设计
重点:地图数据库的连接及UI设计
难点:如何进行UI的交互,形成人性化的UI,代码的封装和整合
目标和要求:能够设计合理的UI交互,从方便易用的角度去设计GIS软件UI交互,有合理的数据流和工作流,做到系统消息传递,功能正确,代码健壮。以及方便的地图操作功能的实现。
第七天:功能模块设计(二)
(1)GIS的图上查询功能和属性查询功能
(2)基于GIS的拓扑查询功能
(3)空间数据的创建和部分编辑功能
(4)基于应用功能的接口代码设计
(5)地图符号化功能的代码设计
重点:基础查询功能的实现
难点:应用功能代码设计及拓扑功能的实现
目标和要求:要求掌握GIS的空间查询功能、地图符号化功能、应用功能的设计
第八天:功能模块设计(三)
(1)实现应用功能代码的编写
(2)应用功能接口功能的集成
重点:应用功能代码编写
难点:功能的集成
目标和要求:掌握基于具体应用项目功能的实现
第九天:系统调试及报告撰写
(1)系统联测调试
(2)系统故障调试
(3)系统优化问题分析
(4)撰写实习报告
重点:联测、调试
难点:如何去调试及优化程序
目标和要求:能够将小组成员的数据进行联测整合,掌握通过不同的方法进行空间数据和程序的整合,同时掌握程序调试的方法。
第十天:撰写报告及汇报交流
(1)撰写实习报告
(2)报告内容的修改
(3)成果展示及交流
重点:报告撰写能力
难点:如何突出对关键功能的实现
目标和要求:撰写报告的能力的培养
(二)教学设计
1、小组讨论
在系统功能设计、架构设计、系统交互设计、系统整合等方面,采用小组讨论的方法,确定系统的设计方案,系统整合方案等。
2、交互式指导
在系统代码设计、系统接口设计、系统整合设计等方面采用交互式指导,有助于学生掌握如何进行设计和开发。
3、网络查询
在系统UI交互设计、系统代码设计优化、系统架构等方面,可以通过ArcEngine指导书,C#开源网站等,辅助完成系统开发设计。
四、课程实施建议
课程实施建议内容包括教学建议、教学评价、教材选编、课程资源开发与利用等方面的建议。
(一)教学建议
1、本实践课程是培养程序设计和开发能力的课程,故在教学上,实践项目训练为主。
2、以案例教学为主,在制定的时间内完成一定的工作内容,让学生在案例中得到训练,以提高学生学习的兴趣,了解学习的目标。
3、从工程应用的角度出发,遵循工程应用的思路,从GIS功能开发到系统的开发发展。
4、在学习中不断应用封装的思路,实现代码的积累。
5、学会工程应用软件的开发,而不是就开发而开发。
6、优化代码,提高程序运行的效率。
7、将设计提高到比开发更加重要的位置,在好的设计上进行开发
(二)教学评价
课程模块 | 评价对象 | 评价性质 | 评价方式 | 成绩性质 | 比重% |
设计报告 | 理论知识研讨 | 过程评价 | 教师观察记录 | 平时成绩 | 15 | 25 |
实践内容 | 阶段、目标评价 | 教师评审 | 评审成绩 | 10 |
架构报告 | 理论知识讨论 | 过程评价 | 教师观察记录 | 平时成绩 | 15 | 25 |
实践内容 | 阶段、目标评价 | 教师评审 | 评审成绩 | 10 |
开发文档 | 开发理论 | 过程评价 | 教师观察记录 | 平时成绩 | 10 | 25 |
实践内容 | 目标评价 | 教师评审 | 评审成绩 | 15 |
自拍与互评 | 整体把握 | 过程评价 | 学生评审 | 评审成绩 | 10 | 10 |
专家评价 | 整理把握 | 目标评价 | 专家评审 | 评审成绩 | 15 | 15 |
说 明 | 1、主持教师评价:50%, 实践指导教师评价:30%,共80%;学生评价:20%。 2、平时成绩:40%, 评审成绩:60%; |
(三)教材选编
本课程拟采用的教材:
邱洪刚等,《ArcEngine地理信息系统开发从入门到精通》,北京:人民邮电出版社,2013年4月第二版
(四)课程资源的开发与应用
(1)牟乃夏等,《ArcEngine地理信息系统开发教程》,北京:测绘出版社,2015年4月
(2)http://www.csdn.net
编写者(课程负责人):陈建
审核者(专业负责人):刘咏梅
院系(部门)教学委员会主任:
2018年 1 月 15 日