GIS软件工程第7章GIS软件工程的设计方法.ppt
《GIS软件工程第7章GIS软件工程的设计方法.ppt》由会员分享,可在线阅读,更多相关《GIS软件工程第7章GIS软件工程的设计方法.ppt(151页珍藏版)》请在课桌文档上搜索。
1、GIS软件工程,GIS Software Engineering(七),教材:毕硕本等.地理信息系统软件工程的原理与方法.科学出版社.2004.参考材料:(1)李存珠.软件工程概论传统方法学和面向对象软件工程.南京大学计算机科学与技术系.1999.(2)任一本软件工程书籍.,GIS软件结构化设计方法GIS软件Jackson设计方法GIS软件面向对象Booch设计方法GIS软件面向对象Coad设计方法GIS软件面向对象OMT设计方法GIS软件面向对象UML设计方法,第7章 GIS软件工程的设计方法,第一节 结构化设计方法,主要的GIS设计方法:结构化设计方法面向对象设计方法结构化设计方法的目的
2、系统结构图,问题:干吗要设计系统结构图?,一、系统结构图的基本组成四种基本模块类型(1)传入模块从下属模块取数据,处理后传给上级模块(2)传出模块从上级模块取数据,处理后传给下属模块(3)变换模块从上级数据模块取数据,处理后传给上级模块(4)协调模块协调所有下属模块,两种典型系统结构形式:变换型 系统结构图 线性结构:逻辑输入-主加工-逻辑输出系统的3步变换分析过程:取得数据变换数据输出数据系统结构图组成由输入中心变换输出事务型 系统结构图 某个加工将它的输入分析成一串平行的数据流,二、数据流图变换为系统结构图的方法1、变换分析设计方法4步:(1)重画数据流图需求分析 的 数据流图 如何加工数
3、据重画数据流图的出发点 数据是如何流动要点 从物理输入物理输出 或 相反 不要出现控制逻辑 箭头表示数据流 不要理会:系统的开始和终止 省略加工的简单例外处理 当数据流进入和离开加工标记它们,不要重名 可用逻辑运算符,(2)确定系统的逻辑输入、逻辑输出和中心变换部分变换型系统结构图3个组成部分逻辑输入中心变换部分 几种数据的交汇处或关键计算部分逻辑输出,逻辑输入,中心变换,逻辑输出,(3)进行一级分解,设计系统模块结构的顶层和第一层一个主模块 系统的名字分支划分 输入-中心变换-输出第一层:为每一个逻辑输入设计一个输入模块 功能:为主模块提供数据为每一个逻辑输出设计一个输出模块 功能:为主模块
4、提供数据输出为每个中心变换设计一个变换模块 功能:将逻辑输入转换成逻辑输出,(4)进行二级分解,设计输入、中心变换、输出部分的中、下层模块输入模块功能 向调用它的上级模块提供数据2个下属模块:接收数据把这些数据变换成它的上级模块所需的数据输入模块细化过程 若:输入模块已经是原子模块,即物理输入端 则:细化工作停止 在数据流图上向物理输入端方向逆向移动 输入模块 子输入模块 子变换模块输出模块 从调用它的上级模块接收数据,用以输出2个下属模块将上级模块提供的数据变换成输出的形式将它们变换后的数据输出,逻辑输入,中心变换,逻辑输出,2、事务分析设计方法事务 数据流图中,引发一个或多个处理、完成该作
5、业要求的功能 的数据流 事务分析 对数据流程图进行事务分析、变换建立系统结构图的过程,事务分析的3步骤:(1)识别事务源 带有“请求”性质的信息(2)确定适当的事务型结构第一层:主层(P层)事务中心模块(主模块)第二层:事务层(T层)由承担事务处理的加工转换而来的模块事务层3类模块:取得事务处理事务给出结果,(3)识别各种事务和它们定义的操作原始事务 寻找事务及其操作从:软件需求规格说明书 系统内部产生的事务 定义操作事务模块的下层操作模块分解、扩展 A-层(活动层)D-层(细节层),3、系统结构图完善 完善:初始结构图 变换分析/事务分析 得到(1)模块功能完善(2)消除重复功能,改善系统结
6、构 手段:变量定义、数据类型 模块合并(3)控制模块大小和子模块数,降低模块的复杂性(4)增加适当的说明 包括:处理说明、接口说明、数据结构说明等,三、结构化设计的审查 针对 数据流图、数据字典常见错误:(1)未标记的数据流(2)丢失数据流,得不到某处理过程需要的数据信息(3)纯记录性的数据流,某些数据未加以利用(4)改进过程中未保持数据一致性(5)遗失处理过程(6)包含了控制信息,1、正确性检查(1)数据守恒 规则:加工只能把流入的数据流,加上不变的信息,变换成输出信息的数据流 删去:加工没有使用的输入数据流无用(2)局部文件中间文件 注意:数据流的方向输入流数据流 局部文件输出流局部文件
7、数据流(3)父子图平衡问题 只修改:图的一部分,2、提高可理解性(1)简化加工之间的关系 加工之间的数据流越少,各个加工就越独立 尽量减少:加工之间的输入/输出数据流的数目(2)分解的均匀性 理想的分解:把一个问题分成大小均匀的几个部分(3)适当的命名,3、重新组合与分解 改进数据流图的办法步骤:(1)把要重新分解的几个子图合成一张图,把各接口连起来(2)重新划分子集,使其接口最简单(3)重新建父图,每一部分为一个加工(4)建新的子图(5)命名及编号,第二节 Jackson方法,一、概述 1、产生JSP Jackson结构化程序设计 70年代,M.Jackson 提出 面向数据结构,数据驱动J
8、SD Jackson系统开发 80年代,M.Jackson&J.R.Cameron 开发 基于进程模块,事件驱动,2、基本思想 面向/围绕:数据结构 重点:内在数据结构 输入数据结构+输出数据结构 程序结构3、设计和数据结构的关系记录、表、结构 顺序控制结构数组、文件 循环的控制结构联合 选择控制结构1970s,代表性的“面向数据结构”的设计方法M.Jackson提出的Jackson 方法 J.Warnier提出的Warnier方法,4、SD方法与JSP方法的异同共同点:数据信息驱动不同点:面向数据流的设计(SD方法)根据数据流图,建立软件模块的层次结构软件体系结构面向数据结构的设计(JSP方
9、法)以数据结构为指导的映射过程,输入、输出 数据结构 按一定的规则映射成软件的过程描述程序结构5、JSP方法的优缺点优点:简单,适合于规模不大的系统局限性:不适合于:大系统 一般:总体上用SD方法,局部范围用JSP方法,二、JSP方法适用于:中小型数据处理系统设计原则 程序结构 对应 数据结构描述工具 Jackson图纲要逻辑 描述算法过程的语言,类似于伪码 纲要逻辑的3类关键字:seq顺序结构iter重复结构sel-alt 选择结构,1、Jackson图 描绘:数据结构Jackson图的表示顺序结构 A由BCD 顺序执行组成选择结构 A由BCD 选择执行组成循环结构 A由 循环执行组成Jac
10、kson图的优点便于表示层次结构自顶向下逐步分解形象直观可读性好既能表示数据结构,又能表示程序结构,Jackson图应用实例,选择,循环,循环,顺序,2、纲要逻辑 类似于:伪码的语言 3个关键字:seq,iter,sel-alt 对应于:Jackson图顺序结构 A seq B C D A end,选择结构 A sel 条件1 B alt 条件2 C alt 条件3 D A end,问题:C+中有哪2种选择结构?,循环结构 A iter until(或while)条件 B A end,问题:C+中有哪3种循环结构?,3、开发步骤5步:(1)分析并确定输入数据和输出数据的逻辑结构 Jackson
11、图描绘(2)找出输入数据结构和输出数据结构中有对应关系的数据单元(3)从描绘数据结构的Jackson 图 导出 描绘程序结构的Jackson 图 3条规则:有对应关系的数据单元 画:处理框 剩余的 输入数据结构 处理框剩余的 输出数据结构 处理框(4)列出操作和选择/循环条件(5)纲要逻辑表示seq顺序结构iter重复结构sel-alt 选择结构,4、结构冲突问题JSP适用于:输入数据和输出数据结构之间有对应关系的问题求解 开发:小型程序结构冲突 输入数据与输出数据结构找不到对应关系,结构冲突解决办法 增加:中间数据结构/中间文件输入数据与输出数据结构之间,三、JSD方法1、JSD概述(1)J
12、SD的产生 扩充JSP,解决JSP的结构冲突(2)JSD的基本思想分而治之的原则 输入数据流 与 输出数据流 分离 独立的、彼此无关联的、结构简单的确定实体 系统的每个输入数据流现实的一个实体建立顺序进程 模拟:系统主题输入数据流的内含(客观世界及其动态行为)JSD适用于:时序特点较强的系统 如:数据处理系统,实时控制系统,(3)JSD方法的特点 建立现实世界的模型,确定功能需求用顺序进程的网络描述需求JSD描述的需求可:直接执行 快速原型法突出需求分析,编程分散 在 各个步骤,问题:快速原型法是啥方法?,2、JSD的基本概念(1)现实和系统现实物质世界系统开发的目标(2)顺序进程 实体和按时
13、序执行的动作顺序进程 模拟:实体 及其动作 联系 模拟:实体间的交互作用 模型 一组顺序进程组成的 现实网络,(3)进程间的联系 模拟:实体之间的联系 使用:数据流/状态向量 数据流方式 针对:实体向另一个进程发送数据状态向量 一个进程的所有内部状态 针对:一个进程读另一进程的内部状态(4)模型和功能模型 一组顺序进程组成的 现实网络 反映 现实世界功能 系统做的事,3、JSD方法的开发步骤6步:(1)实体动作步 定义:系统所感兴趣的客观世界域 通过:客观实体 及其 执行/承受的动作,(2)实体结构步 描述:每个实体执行的动作及其时序 产生:实体进程的Jackson结构图,实体结构步实例餐厅会
14、计,顺序,循环,选择,(3)初步模型步 顺序进程网络 构成 现实模型 产生:系统说明图描述模型的 纲要逻辑描述实体进程的,实体与进程的联系,实体,顺序进程或功能进程,实体,(4)功能步 描述:系统的功能 产生:完善的系统说明图 和 纲要逻辑(5)性能步 确定:系统性能需求、系统响应时间(6)实现步 软件系统说明 转换 软件系统 考虑:目标计算机环境物理限制 性能需求,第三节 Booch方法,一、面向对象设计概述 对象和对象层次结构模块+数据结构+接口 成员函数 参数面向对象的分析 OOP 通过:对象的认定,确定:问题空间中应当存在的对象和对象层次结构面向对象的设计 OOD 通过:对象的认定和对
15、象层次结构的组织 确定:解空间中应存在的对象和对象层次结构 确定:外部接口和主要的数据结构,OOD目标:1、提高生产率 手段:重用类机制 类库2、提高质量 高质量分析过程+设计过程 高质量系统3、提高可维护性 设计有利于:将来的修改 手段:稳定部分 与 易变部分 分离 类 可变的服务,问题:为什么OOD能实现这些目标?,二、Booch方法的发展Booch方法的提出 1980s初,Booch提出Booch方法强调 反复的处理+开发人员的创造性Booch方法的软件开发过程 螺旋上升的过程每个螺旋周期的4个步骤(1)发现类和对象(2)确定类和对象的含义(3)找出类和对象之间的相互关系(4)说明每一个
16、界面及其实现的类与对象,Booch开发模型的2个部分逻辑设计 包括2个文件:类图和对象图物理设计 包括2个文件:模块图和进程图Booch静态模型 系统的构成和结构Booch动态模型 系统在执行过程中的行为 手段:状态迁移图描述:类实例的语义 时序图描述:对象之间事件发生的时序Booch方法用于的系统 过程控制,存储管理,客户/服务器计算 人工智能,命令控制,三、Booch方法的过程 5步:,状态转换图,时序图,1、在一定抽象程度上确定类和对象对象词法分析问题说明文档类 抽象化对象2、确定这些类和对象的语义/含义 较困难3、确定这些类和对象之间的关系,并确定它们怎样进行交互继承关系实例关系使用关
17、系Booch“机构”密切相关协同作业的一组对象4、实现这些类和对象 特定的编程语言 模块结构化的类和对象5、说明每一类的界面和实现,问题:使用关系在C+中通过什么实现?,问题:啥词作为对象?啥词作为成员函数?,问题:目前有哪些OOP语言?,四、Booch方法的特点(1)独立于任何语言的、开放式的实现过程(2)丰富的图示技术(3)逻辑和物理观点分离开来(4)可设计辅助工具 自动检测一致性、错误(5)开发代价与系统复杂程度成正比(6)最大的不足:怎样找到每个对象和类的操作?怎样进行建模?,取决于开发人员,五、基本模型静态模型 描述:系统的构成和结构逻辑模型 类图和对象图 基于:类和对象的含义 着重
18、于:类和对象的定义物理模型 模块图和进程图 基于:软件系统的结构 着重描述:软件系统的构造和组成动态模型 系统执行过程中的动态行为状态图时序图,1、类图(1)类图的含义 类+类之间的相互关系(2)类图的组成类 关联 类之间的语义关系关系 类之间的继承关系、包含关系、使用关系(3)类图的表示虚线云图,(4)类图的示例“温室管理系统”,关联,使用关系,关联,关联,关联,2、对象图(1)对象图的含义 对象+对象之间的相应关系 某一时刻的场景(2)对象图的组成 对象+消息(3)对象图的表示 实线云图,消息传递的次序,(4)对象图的示例“温室管理系统”,3、状态图(1)状态图的含义 描述:系统中类的动态
19、行为类的状态空间状态变化的事件状态变化执行的操作(2)状态图的组成 状态+事件+转换(3)状态图的表示,引起状态转换,开始状态,转换,(4)状态图的示例“温室管理系统”环境控制器类,开始状态,引起状态转换的事件,引起状态转换的操作,4、时序图(1)时序图的含义 几个对象在共同完成某一功能 的 交互关系 消息传递的序列(2)时序图的组成 对象+对象生命线+消息+消息传递(3)时序图的表示,一个对象向另一个对象发送消息,对象的生命线,对象的生命线周期,对象,(4)时序图的示例“温室管理系统”,对象,一个对象向另一个对象发送消息,对象的生命线,5、模块图(1)模块图的含义 类+对象 分配到 软件模块
20、 文件 基本模块(2)模块图的组成 模块+模块的依赖关系 模块之间的编译依赖关系,(3)模块图的表示,依赖关系,箭头所指向的模块编译完后,另一端模块才可进行编译,模块,6、进程图(1)含义 多处理机系统将可同时执行的进程分配到不同的处理机上 单处理机系统描述:同时处于活动状态的对象(2)组成 进程+通信关系 进程之间的信息联系(3)表示 立方形的图符,通信关系,进程名,第四节 Coad设计方法,一、概述 Coad&Yourdon 提出,OOA阶段:5个层次,OOD阶段:4个组成部分,用户界面,二、设计问题域组元 4种组元:类与对象+结构+属性+操作/服务1、原因 保持问题域组织框架的完整性、稳
21、定性2、内容 合并/分解:多组元模型 的 类与对象、结构、属性、服务3、策略(1)围绕4种组元(2)直接改进OOA结果(3)加入常规类完善:OOA结果,4、方法(1)利用重用设计加入现有类 加入:类库/现存类(2)将专门的问题域类组合在一起 形成:container 类,问题域类 作为其从属类(3)加入一般化类(抽象类)以建立协议 相似的一个协议/服务集合(4)调整继承的支持层次对于单重继承机制语言 多重继承 化为 单重继承对于不具备继承机制的语言 多重继承调整为 各个孤立的类,问题:何谓抽象类?,问题:何谓多重继承、单重继承?,5、提高效率 组合:多个问题域组元 高耦合 提高速度6、支持数据
22、管理组元 2种数据存储方法:对象自己保存自己数据管理组元负责数据保存 各个对象将自己发送给数据管理组元,三、设计人机交互组元1、原因 用户-系统交互对用户使用系统影响较大2、内容 增加:人机交互的细节 包括:指定窗口 设计窗口的布局 设计报表的形式 原型法有利于:人机交互开发 多层次多组元模型有利于:人机交互组元设计,3、方法(1)分类用户按技能分 初级、中级、高级按组织级别分 总经理、部门经理、办事员按不同组织成员分 职员、顾客(2)描述用户及其任务脚本 各类用户使用的、各自的特征 包括:年龄、文化程度、关键的成功因素、技能水平、主要任务、任务脚本,文学剧本中词汇,(3)设计命令层次 细化
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- GIS 软件工程 设计 方法

链接地址:https://www.desk33.com/p-241932.html