第十二讲 地理信息系统工程管理
程承旗
北京大学遥感与地理信息系统研究所
地理信息系统工程化思想及期
理论基础?
系统思想
?1,整体性
?2,相关性
?3,目的性和功能
?4,环境适应性
?5,动态性
?6,有序性
软件工程学研究的基本目标是:
? 1) 一种定义良好的方法学, 该方法学是面向包括计划,
开发和维护等阶段的软件生存周期的;
? 2) 一组确定的软件文档, 它对软件生存周期的每一步
记录软件文件资料, 并且具有按步显示轨迹的能力;
? 3) 一组可以预测的里程碑, 在整个软件生存周期中,
每隔一定时间可以对它们进行复审 。
? 1,分解
? 2,抽象和信息隐蔽
? 3,一致性
? 4,确定性
地理信息系统工程建设?
一、现行系统调查
? ·确定对现行系统的调查范围
? ·发现现行系统存在的问题;
? ·初步确定新建 GIS的主要目标
? ·估计新建 GIS可能带来的效益;
? ·根据用户的资金和技术力量分析建立 GIS是否可行 。
? 1,发现现行系统存在的问题
? 2,初步确定系统的主要目标
? 3,技术力量的调查分析
? 4,资金财力的调查分析
? 5,数据资料的调查分析
? 6,系统效益调查分析
二、系统分析
? 1,分析现行运作过程, 获得现行系统流程图
? 2,进行数据分析, 获取数据字典
? 数据流条目:组成, 流量, 来源, 去向;
? 文件条目:文件名, 组成, 存贮方式, 存取频率;
? 数据项条目:数据项名, 类型, 长度, 取值范围;
? 加工条目:加工名, 输入数据, 输出数据, 加工逻辑;
? 对隐含在有关图形上的数据也应引起足够重视 。
? 3,导出现行系统的逻辑模型
? 4,进行用户需求分析与描述
? 5,明确待建 GIS的目标
? 6,导出待建 GIS的逻辑模型
? 7,制定设计实施的初步计划
数据流图的制作规范?
1,数据流图的基本图元:
?
? ( 1) 数据源点和数据终点
? 数据源点和终点用方块表示, 是数据流的起点及最终目的地
?
?
?
( 2) 加工 ( 数据处理 /变换 ) 用圆框表示, 是对数据进行处理
的逻辑单元, 它接受若干数据流, 通过加工内部产生规定的数据
流, DFD中对加工的标识通常由加工编号和加工命名组成 。
?
?
?
?
( 3) 数据流:用标识箭头表示, 是系统处理的数据
对象, 同时还表示数据流动的方向, 当进入或者流出
某个加工的数据流之间, 存在重要的逻辑联系时, 可
以附加符号说明 。 见后图
? ( 4) 文件 ( 数据存储 ),文件用两条平行线段表示 。
?
?
数据流图具体步骤如下:
? 1) 确定系统边界, 画出顶层数据流图 。
? 2) 自项向下, 对每个加工进行内部分解, 画出分层数
据流图 。
? 3) 对数据流图进行复查求精 。
? 在分层数据流图求精过程中应该注意以下问题:
? ① 检查流入, 流出加工的数据流的连续性 。
? ② 控制单张数据流图的复杂性
? ③ 父图与子图的数据平衡
? ④ 终止加工分解的条件
? ⑤ 局部文件
? ⑥ 分解层次的均匀性问题
数据流图编制实例
?
以数据流图相对应的数据词典
编制规范
? 1,数据流条目:定义一个数据流的数据项组成, 其构成框架如
下, 其中方括号部分是条目构成的可选部分 。
? 数据流名称 [别名列表 ]
? 数据流组成
? [来源 ][去向 ]
? [处理特点 ( 使用频率, 数据量等 ) ]
? [其他注释 ( 格式, 位置等 ) ]
? 数据流条目中的名称应该以数据流图中出现的数据流名称一致 。
? 数据流组成是数据条目的主要部分, 其构成如下:
? 〈 数据流名称 〉 =数据项 [〈 逻辑操作符 〉 数据项 ]
? 例,学生成绩单 =课程编码 +课程名 +[任课教师 1指导教师 ]+{ 学
号 +姓名 +成绩 ( +备注 )}
? 描述数据流组成常用符号有,=,+,[|],{ }, ( )
? = 表示, 定义为 ( 等价于 ),
? + 表示, 与,
? [|] 括号内用, |”分割的各项目选择出现一项
? ( ) 括号内部分可以不出现
? { } 括号内部部分重复出现
? 例某仓库管理系统的出, 入库事务定义为:
? 数据流:仓储事务 别名:入出库请求
? 仓储事务 =[入库 |出库 ]+零件 +数量 +时间 +经办人
? 每天发生次数 〈 100次, 高峰为 9,00~11,00
? 由仓库管理员通过终端发出, 应该确认事务口令
? 对于有效事务应该记录出入库流入帐
数据项条目
? 数据项组成数据流的成分, 分为基本数据项和结构数
据项, 基本数据项如整数, 小数, 字符串, 日期, 逻
辑值等, 结构型数据项由若干数据项组成, 其说明结
构与数据流条目结构类似 。
? 例 数据流, 仓储事务, 中的数据项, 零件, 可以定
义为
? 数据项 零件
? 零件 =零件号 +零件名称 +规格 +( 备注 )
? 数据项 零件号
? 零件号 =Pxxxxxxx
? 说明:零件号由字母 P开头的 8个字符组成, 后 7个字符
可以是字母或者数字
文件条目
? 文件作为数据静态存储池, 是记录的有
序集合, 其说明结构与数据流条目类似 。
区别在于文件条目中通常要求说明文件
组织方式 。
? 文件名 [别名 ]
? 记录定义
?[文件组织 ]
?[存储介质描述 ]
? 例:文件, 学生成绩库, 定义如下:
? 文件 学生成绩库
? 学生成绩 =学号 +姓名 +{ 课程代码 +成绩
+[必修 1限选 1任选 ]
? 学号:由 8位数字组成
? 姓名,2~4个汉字
? 课程代码:字母 C开关的 8位字任串
? 成绩,1~3位十进制整数
? 课程类别,1位标识符, 定义为,B—— 必修
X—— 限选 R—— 任选
? 文件组织:以学号为关键字递增排列
加工说明
? 数据流图中, 每个加工或称数据处理与变换,
要求在数据词典中有一个准确简明的形式化或
半简明形式化描述, 其结构如下:
? 加工,加工编号 +加工名或 [别名 ]
? 输入数据流;
? 输出数据流
? 加工的功能简述
? 加工逻辑描述 ( 结构化语言 /表格 /图形 ) ;
? [附加说明 ]
1) 利用结构化语言对, 加工,
进行描述的规范
? 结构化语言要求加工中的处理操作语句之间的
联系, 使用类似于结构化的控制语句进行描述 。
例如:
? IF〈 条件 〉 THEN
? 〈 语句块 1〉
? ELSE
? 〈 语句块 2〉
? CASE〈 选择表达式 〉 OF
? CASE〈 语句块 1〉
? ……
? CASE〈 语句块 n〉
? ELSE
? 〈 语句块 n+1〉
? END
?
? WHILE〈 条件 〉 DO
? 〈 循环体 〉
?
? REPAET
? 〈 循环体 〉
? UNTIL〈 条件 〉
?
? FOR〈 循环初值;循环终止描述 〉 DO
? 〈 循环体 〉
? 上述语句块中的操作性语句通常是动词 +
宾语结构, 其中的数据对象必须在数据
词典中已定义 。
? 例如:, 加工, 计算课程冲突率
? BEGIN
? 接收合法选课记录或者重修课程;
? REPEAT
? CASE课程类别 OF
? 重修课程,//必修课程必须优先安排 //
? BEGIN查开课清单, 真写该生个人课表 END
? 合法选课记录;
? BEGIN
? 根据课程号在开课清单中查当前所选课程时间表;
? 检查当前所选课程与该生已选课程是否冲突
? IF不产生冲突 THEN填写该生个人课表;
? ELSE
? BEGIN
? 计算冲突率;
? IF冲突率 <30%THEN填写学生个人课表 //当前课程可选
? ELSE
? BEGIN
? 根据课程类别优选序删除冲突课程; //优先序:重修, 必修, 限选, 任选
? 重新计算课程冲突率
? END
? END
? END
? END
? 接收合法选课记录或者重修课程;
? UNTIL合法选课记录或者重修课程不存在;
? 输出已选课程
? END
2) 使用判定树说明复合条件
嵌套的加工逻辑。
? 如果加工逻辑是复合条件嵌套, 也可以
使用判定树描述, 例如
3) 使用判定表说明加工逻辑
在的复合条件嵌套
? 判定表的结构如下图:
?
? 其中, I区为条件区, 按行列出所有基本条件; Ⅱ 区为
条件组合区, 按列给出所有可能发生的条件组合, Ⅲ
区为动作区, 按行列出所有可能发生的动作, Ⅳ 区为
动作发生区, 在各动作行与条件组合列的交叉处表示
在指定条件组合下, 发生的动作, 通常以 Y或 N表示,
例如:
三、系统设计?
1,GIS总体设计
? ( 1) 系统目的, 目标及属性的确定
? ·投资规模 ( 大, 中, 小 )
? ·建设周期 ( 一年, 二年 …… )
? ·数据准备 ( 半年, 七个月 …… ) ]
? ·数据采集 ( 半年, 七个月 …… )
? ·旧有设备利用
? ·效益预计
? ·系统被接纳和使用度 ( 或满意度 ) 估计 ……
? ( 2) 进行各子系统或模块的划分与功能描述
? ( 3) 模块或子系统间的接口设计
? ( 4) 硬软件配置设计
? ( 5) 网络设计
? ( 6) 输入输出与数据存贮要求
? ( 7) 开发策略规定
? ( 8) 成本与收益分析
2,系统的详细设计
? ( 1) 模块设计
? ( 2) 代码设计
? ( 3) 数据库设计
? ( 4) 数据获取方案设计
? ( 5) 界面设计
? ( 6) 输入输出设计
? ( 7) 程序模块设计
? ( 8) 安全性设计
? ( 9) 实施方案计划
四、系统的开发与实施
?1,程序编制与调试
?2,数据采集与数据库建立
?3,人员的技术培训
?4,系统测试
五、系统维护和评价
?1,GIS的维护
? ( 1) 纠错
? ( 2) 数据更新
? ( 3) 完善与适应性维护
? ( 4) 硬件设备的维护
?2,系统评价
六,GIS工程建设中的组织管理
?1,GIS建设中的领导管理
?2,组织机构与人员分配
?3,计划管理
?4,GIS建设质量控制
?5,文档管理
?6,系统版本管理
?7,维护管理
地理信息系统文档设计
? 一, 文档设计的意义
? 文档作用可以表现为:
? 1) 沟通
? 2) 控制
? 3) 链接
? 1) 记录
? 2) 参照
? 3) 辅助
二,GIS文档类型
? 1,一般项目文档
? ·可行性研究与计划
? ·需求分析
? ·概要设计
? ·详细设计
? ·实现
? ·功能测试
? ·系统测试
? ·使用与维护
2,GIS文档
?GIS文档
? 地理数据库文档
? 开发策略文档
( 1) GIS基础文档
? 1) GIS信息分类与编码
? 2) 地理原始数据预处理规范
? 3) 地理数据质量规范
? 4) 地理数据数字化规范
? 5) 空间数据库建库技术与规范
? 6) GIS实体属性标准
? 7) GIS数据维护规范
? 8) GIS服务与收费标准
? 等等
( 2) GIS开发文档
? 1) 可行性研究报告
? 2) 项目开发计划书 ( 初稿 )
? 3) GIS总体需求说明书
? 4) 项目开发计划书 ( 终稿 )
? 5) GIS总体设计说明书
? 6) GIS总体控制方案
? 7) GIS系统测试计划
? 8) GIS详细设计书
? 9) GIS系统测试分析报告
? 10) 项目总结报告
? 11) 用户手册
? 12) 系统安装手册
? 13) 系统管理员手册
? 14) 系统维护手册
? 15) 数据维护规程
? 16) 各种制度, 条例汇总
三、文档质量要求
?1,即时性
?2,一致性
?3,完整性
?4,可读性
?5,规范性
四、一个典型的 GIS文档实例
?
详细设计说明书
? 1,引言
? 1) 背景
? 2) 工作条件与限制
? 3) 定义
? 4) 背景资料
? 2,模块设计
? 1) 模块划分依据
? 2) 模块结构图与功能描述
? 3,代码设计
? 4,数据库设计
? 1) 数据库总体结构
? 2) 数据库逻辑设计
? 3) 数据库物理设计
? 4) 数据库管理要求
? 5,用户界面设计
? 1) 用户界面设计原则
? 2) 交互式菜单设计
? 3) 图, 表显示设计
? 4) 布局设计
? 6,输入 /输出设计
? 7,程序模块设计
? 8,安全性设计
? 9,方案实施与管理
? 1) 方案实施说明
? 2) 工作任务分解
? 3) 进度安排
? 4) 经费预算与管理