GIS软件工程第6章GIS软件工程的详细设计.ppt
GIS软件工程,GIS Software Engineering(六),教材:毕硕本等.地理信息系统软件工程的原理与方法.科学出版社.2004.参考材料:(1)李存珠.软件工程概论传统方法学和面向对象软件工程.南京大学计算机科学与技术系.1999.(2)任一本软件工程书籍.,详细设计的任务、方法、工具用户界面设计的特性、类型、要素、方法用户界面的任务分析、设计、基本样式GIS软件工程标准化设计的内容,第6章GIS软件工程的详细设计,第一节 详细设计,总体设计 系统模块 每个模块的功能模块与模块之间的外部接口详细设计 每个模块的具体执行过程 亦称:过程设计,程序设计,一、概述详细设计给出:算法的逻辑关系(模块的实现算法,精确地表达这些算法),过程细节 编码的依据3类详细设计工具:(1)图形工具:(2)表格工具:表过程细节输入、处理、输出(3)语言工具:伪码,二、详细设计的基本任务需要完成的工作:确定软件各个组成部分内的算法各部分的内部数据结构各个组成部分的逻辑过程5项任务:1、处理方式设计(1)数据结构设计:确切的定义(2)算法设计:图形、表格、语言 详细算法(3)性能设计:4个指标:周转时间:输入-输出 的 整个时间响应时间:执行一次输入操作之后到系统输出结果的时间间隔 分:一般操作响应时间,特殊操作响应时间吞吐量:单位时间内能够处理数据量精度:科学计算/工程计算(4)确定外部信号 的 接收发送形式,2、物理设计 确定:数据库 的 物理结构 存储记录格式、存储记录安排、存储方法 依赖于DBMS3、可靠性设计 亦称:质量设计 可靠性程序、文档错误少4、其他设计(1)代码设计(2)输入/输出格式设计:界面的样式(3)人机对话设计:对话:方式、内容、格式,5、编写详细设计说明书 及 进行详细设计的评审说明书内容:(1)引言:目的、背景、定义、参考资料(2)程序系统的组织结构(3)程序1(标识符)设计说明:功能、性能、输入、输出、算法、流程逻辑、接口(4)程序2(标识符)设计说明(5)程序N(标识符)设计说明评审 处理过程的算法、数据库的物理结构,三、详细设计方法典型方法 结构化程序设计(SP)1960s中期,E.W.Dijkstra提出结构化程序设计方法要点:3点1、采用自顶向下、逐步求精的程序设计方法需求分析、总体设计自顶向下 逐层细化详细设计 自顶向下 逐层细化,2、使用3种基本控制结构构造程序 顺序、选择、重复共同点:单入口、单出口模块处理过程分解方法(1)顺序方式 确定:顺序(2)选择方式 确定:条件(3)循环方式 确定:重复 开始、结束 的 条件3、主程序员的组织形式 IBM首先提出、实施主程序员制 3人核心:1个主程序员 1个后备程序员 1个程序管理员,四、程序流程图亦称:程序框图 最普遍采用,严重缺点:(1)可以随心所欲地画控制流程线的流向,造成非结构化的程序结构 措施:单入口,单出口(2)不能反映逐步求精的过程,而是:最后结果(3)不易表示数据结构 措施:3种结构只能嵌套,不能相互交叉(4)符号不够规范 措施:规范符号,画程序流程图遵循的规范首先:五种基本控制结构 组合或嵌套(1)顺序型(2)选择型(3)先判定(while)型循环(4)后判定(until)型循环(5)多情况(case)型选择,其次:使用规定符号,最后:注意:(1)循环的界限 一对特殊的符号,(2)流线 控制流的流向 若:无箭头 则:上下,左右(3)注解符 标识注解内容,(4)判断一个入口,多个可选出口(5)虚线 两个 多个符号间 选择关系(6)外接符/内接符 流线在另外一个地方接续,转向外部/从外部转入,五、N-S图 亦称:盒图 Nassi 和 Shneiderman 提出N-S图的5种图形构件,N-S图特点:(1)矩形框 功能域(2)控制转移不能任意规定(3)容易确定局部数据/全局数据库 的 作用域(4)容易表现嵌套关系、模块的层次结构N-S图实例,N-S图的拆分,拆分的名字(椭圆形),六、PAD图 日本日立公司 提出 从:程序流程图 演化而来 ISO认可PAD图的5种基本控制结构,PAD图的实例,PAD图的扩充控制结构,循环控制变量,循环初值,循环终值,循环增量/步长,拆分,PAD图的执行顺序 纵线层次 每增加一个层次,向右扩展一条纵线 最左纵线 程序的主干线 最左主干线的上端的结点开始,自上而下依次执行PAD图的优点(1)清晰 层次结构(2)逐步求精设计方法(3)结构化的程序设计原理(4)可自动生成程序,七、判定表 非常适合:多重嵌套 的 条件选择,规则编号,所有条件,所有处理,各种条件取值组合,和每组条件取值组合相对应的动作,与上述判定表对应的流程图,判定表优点 描述所有的处理规则 简洁、无二义性判定表缺点 静态逻辑不能表达加工的顺序 不能表达循环结构,八、PDL语言 伪码描述:功能模块的算法,加工细节PDL语言的语法规则外语法 一般程序设计语言常用语句 的 语法规则内语法 英语中的一些简单句子、短语、通用数学符号 描述:程序应执行的功能PDL语言的程序结构顺序选择(IF-ELSE、IF-ORIF-ELSE、CASE)重复(FOR、WHILE、UNTIL)出口(ESCAPE、CYCLE)扩充(模块定义、模块调用、数据定义、输入/输出),PDL语言特点(1)有固定的关键字外语法提供全部结构化控制结构、数据说明、模块特征关键字大写(2)内语法使用自然语言描述处理特征,易写易读(3)有数据说明机制简单的/复杂的数据结构(4)有子程序定义与调用机制表达各种方式的接口说明PDL语言优点(1)机制比图形全面质量保证(2)可作注释嵌入在源程序中,作为程序的文档(3)可自动生成程序代码提高软件生产率,第二节 用户界面设计,软件人机接口一、用户界面应具备的特性 3点 1、可使用性(1)使用的简单性(2)用户界面中的术语标准化和一致性(3)拥有HELP帮助功能(4)快速的系统响应和低的系统成本(5)用户界面应具有容错能力、错误诊断功能,2、灵活性(1)算法的可隐可显性(2)用户可以根据需要制定和修改界面方式(3)系统能够按照用户的希望和需要,提供不同详细程度的系统响应信息,包括:反馈信息、提示信息、帮助信息、出错信息等(4)与其他软件系统相似的标准界面3、复杂性和可靠性(1)用户界面的复杂性 用户界面的规模和组织的复杂程度 一般:以相关性、重要性,进行逻辑划分 树型结构 每一层次包含的命令具有短期记忆的最佳数目 72(2)用户界面的可靠性 无故障使用的间隔时间,二、用户界面设计的任务分析4个步骤:用户特性分析用户工作分析记录用户有关 系统的概念和 术语确定界面类型,1、用户特性分析目的 了解:用户的技能和经验(1)用户类型按照技能层次分类初学者,高级人员,按照组织层次分类管理人员,一般员工,按照身份分类职员,顾客,(2)用户特性度量 打分方法 衡量标准:用户使用的频度用户需要自由选用界面的情况用户对计算机的熟悉程度用户知识:计算机编程 操作用户思维能力:综合知识 智力用户的生理能力和技能:生理特征视觉,听觉,认知,记忆 使用技能鼠标,键盘,光笔,2、用户工作分析 亦称:任务分析 自顶向下,逐步进行功能分解采用:数据流图 数据词典3、用户模型和观点(1)用户模型与用户观点 用户的思维模型:理论认知模型心理学家建立用户知识模型使用:遍历知识网络的方法用户特性模型技能,能力用户任务模型根据:任务的功能、操作次序用户观点用户模型(2)任务模型静态对象-关系模型动态系统操作/对话,三、用户界面的任务和工作设计目的 创造用户的工作环境1、任务分配 将每个任务的动作分配给:计算机、用户或二者兼有用户承担:需要创造、判断和探索的任务计算机承担:重复检查、计算、数据的处理任务混合任务数据录入、数据恢复、决策支持任务分配产生2个网络:人的任务网络如何安装、操作、使用系统计算机的任务网络计算机应负担的工作,任务分配工具数据流图 分配步骤:(1)检查数据流图计算机完成的人完成的两者共同完成的(2)人-机共同完成的任务 每一个动作,分配给:计算机/人(3)构成新的计算机的任务网络和人的任务网络(4)计算机与人的协同动作 细化:人和计算机交互考虑:精神负载减少短期记忆超载,2、工作方式和工作设计目的 任务需求 与 操作员的能力 相匹配2种工作方式(1)由一个人单独完成一个系统的目标(2)任务进展跟踪工作设计须考虑 任务流程避免:任务过载,四、界面设计 的基本类型 问题描述语言数据表格图形与图标菜单对话窗口,从:用户-计算机交互的角度划分,五、界面设计原则避免:(1)过于花哨的界面(2)模棱两可的提示(3)额外的操作1、描述人和他们的任务脚本 人员分类:使用系统的目的、特征年龄、教育水平、限制等对系统的期望必须/想要,喜欢/不喜欢/有偏见熟练程度使用系统的任务脚本,2、设计命令层 3个方面:研究现有的用户交互活动的寓意和准则建立一个初始化的命令层细化命令层一般采用标准Windows界面:“文件”“编辑”“视图”“窗口”“帮助”如:Word,PowerPoint,3、设计详细的交互 人-机交互准则:(1)保持一致性术语,步骤,活动(2)操作步骤少(3)不要“哑播放”进展动态显示(4)闭包一个操作代表一个完整的活动(5)Undo恢复原状(6)减少人脑的记忆负担(7)增加学习的时间和效果(8)增加趣味和吸引力4、继续做原型5、设计用户界面类 派生于:通用界面类窗口,按钮,菜单6、根据图形用户界面进行设计,六、GIS软件界面设计中的要素1、数据选择 过滤器扩展SQL空间过滤,2、数据表现 图形显示(1)多边形轮廓:颜色、灰度、黑白;线型(2)多边形填充:颜色、灰度、黑白、;填充模式(3)线:颜色、灰度、黑白;线型(4)符号:颜色、灰度、黑白;形状;大小,3、数据处理空间操作非空间操作操作的图形寓意象形的符号 ToolBar上Icon:(1)创建(2)删除(3)集合(4)更新(5)叠合(6)求交(7)求差(8)转换比例、移动、镜像、仿射(9)检查点回退到该点(10)回送返回上一个检查点(11)提交传给数据库,4、SQL 扩展的SQLGeoSQL(SDB中学过)5、可视化,问题:为什么要可视化?,七、GIS软件的基本界面样式5种:基于命令行的界面基于窗口的界面菜单驱动的界面基于对话框的界面基于工作流的GUI界面,1、基于命令行的GIS界面 DOS界面 适于:实现批量的、流程化的、耗时的数据处理,ARCEDIT,VC+VB中:Console Application,2、基于窗口的界面,VC+中MFC,VB中Form,3、菜单驱动的GIS界面菜单类别:(1)固定位置菜单 屏幕的一定位置(2)弹出式菜单 当需要时才从屏幕上显示出来(3)下拉式菜单 两层:父菜单项、子菜单项(4)嵌入式菜单 超级链接菜单 菜单项嵌入文本内容之中优点:界面友好缺点:不够灵活,效率低下,VC+中MFC,VB中Form,4、基于对话框的界面(1)问答式(2)显示信息式(3)警告式,VC+、VB中Dialogue,5、采用数据流图的GIS图形用户界面 适用于:数据流清晰、简单的系统 缺点:实现较为困难,拖放操作,八、GIS软件的界面设计方法 自顶向下、逐层分解最高一级用户界面主菜单系统主界面菜单分级别,第三节 标准化设计设计规范化和标准化文件按照:国家标准行业标准地方标准实际情况系统目标用户需求,一、地理定位控制1、平面控制系统 要求:转换参数,归一分类:地理坐标系统经、纬度坐标系全国统一平面直角坐标系统方里网坐标独立坐标系统 各城市自行确定的、以某一特定点为原点的、平面直角坐标系统,2、高程控制系统 要求:转换参数,归一 相对于某一起始高程平面的高度(即高程)分类:全国统一高程系统独立高程系统3、区域多边形控制系统按行政区划划分 市、区(县)、街道办事处、居民委员会按建筑群体划分 小区、街区多边形按活动性质划分 开发区、金融贸易区、商业区、文化区、旅游区、居住区,二、属性数据指标体系2方面设计:属性项设计 针对:某类图形数据的属性信息每个属性项属性值的指标确定 依据:国家标准、行业标准、地方标准,三、数据分层方案数据分层原则:(1)同一类数据放在同层(2)相互关系密切的数据尽可能放在同层(3)用户使用频率高的数据放在主要层,否则放在次要层(4)为了显示绘图或控制地名注记位置的辅助点、线或面放在辅助层(5)专题信息数据放在单独的一层或几层,四、数据文件命名规则 反映:数据库代码,数据库层名,层号,图幅号,数据加工处理阶段,通用结构,1、数据,标识:该数据文件属于哪一个数据库 用一位具有实义的字母标识,2、处理阶段,用一位具有实义的字母标识,注意:文件命名可:两级管理主目录名数据库代码、图号、图名代码文件名数据库层名,层号,数据加工处理阶段,五、统计单元 2类:规则格网 如:矿产资源评价领域根据一定条件划定的多边形六、技术流程和质量控制 整个流程+每个阶段 手段:标准技术流程,