《gis软件工程的总体设计》由会员分享,可在线阅读,更多相关《gis软件工程的总体设计(27页珍藏版)》请在金锄头文库上搜索。
1、第二节第二节 软件体系结构设计软件体系结构设计 一、体系结构一、体系结构 n n 软件体系结构是软件系统中最本质的东西。软件体系结构是软件系统中最本质的东西。 n n 良好的体系结构必须是普适、高效和稳定的。良好的体系结构必须是普适、高效和稳定的。 n n 软件的体系结构包含软件构件、构件对外可见的性质以软件的体系结构包含软件构件、构件对外可见的性质以 及它们之间的关系。及它们之间的关系。 1 二、面向数据流的设计二、面向数据流的设计 n n 结构化开发方法(结构化开发方法(Structured Developing MethodStructured Developing Method)由)由
2、 :结构化分析方法(:结构化分析方法(SASA法)、结构化设计方法(法)、结构化设计方法(SDSD法)及法)及 结构化程序设计方法(结构化程序设计方法(SPSP法)构成的。法)构成的。 n n 面向数据流的设计方法又称结构化设计。面向数据流的设计方法又称结构化设计。 n n 结构化设计方法主要完成软件系统的总体结构设计。结构化设计方法主要完成软件系统的总体结构设计。 2 n n SDSD方法的中心任务:方法的中心任务:把用把用DFDDFD图图表示的表示的系统分析系统分析模型方便模型方便 地转换为地转换为软件结构软件结构的的设计模型设计模型; DFD DFD System Hierarchy S
3、ystem Hierarchy 3 三、数据流的三、数据流的分类分类与面向数据流的设计过程与面向数据流的设计过程 在软件工程的需求分析阶段,在软件工程的需求分析阶段,信息流信息流是一个关是一个关 键考虑,通常用数据流图描绘信息在系统中加工和流动的情键考虑,通常用数据流图描绘信息在系统中加工和流动的情 况。况。面向数据流的设计方法面向数据流的设计方法定义了一些不同的定义了一些不同的“ “映射映射” ”,利用,利用 这些映射可以把数据流图变换成软件结构。这些映射可以把数据流图变换成软件结构。 4 Internal representationInternal representation Info
4、rmationInformation Transform flowTransform flow OutgoingOutgoing flowflow IncomingIncoming flowflow External External representationrepresentation TimeTime 1.1.数据流的数据流的分类分类 (1 1)变换流变换流(Transform Flow)(Transform Flow) 5 输入输入 路径路径 变换变换 中心中心 输出输出 路径路径 变换中心的任务:就是通过计算或者处理,把系统的输入变换中心的任务:就是通过计算或者处理,把系统的输入
5、流变换为系统的输出流。流变换为系统的输出流。 6 (2 2)事务流)事务流(Transaction Flow)(Transaction Flow) n n 当信息流具有明显的当信息流具有明显的 “发射中心发射中心”时,可归结时,可归结 为事务流。为事务流。 n n 数据沿输入通路到达数据沿输入通路到达 一个处理一个处理T T,这个处理根,这个处理根 据输入数据的类型在若干据输入数据的类型在若干 个动作序列中选出一个来个动作序列中选出一个来 执行。执行。 T T TransactionTransaction requestrequest Action pathsAction paths 事务 中
6、心 7 事务型结构的系统基本模型事务型结构的系统基本模型 n n 这类系统的特征,是这类系统的特征,是 具有在多种事务中执行具有在多种事务中执行 某类事务的能力。某类事务的能力。 8 T T TransactionTransaction requestrequest Action pathsAction paths 事事 务务 中中 心心 事务中心完成下述任务:事务中心完成下述任务: (1 1)接收输入数据(输入)接收输入数据(输入 数据又称为事务);数据又称为事务); (2 2)分析每个事务以确定)分析每个事务以确定 它的类型;它的类型; (3 3)根据事务类型选取一)根据事务类型选取一 条
7、活动通路。条活动通路。 9 “ “变换变换” ”“ “事务事务” ” 精化数据流图精化数据流图 流类型流类型 区分事务中心和区分事务中心和 数据接收通路数据接收通路 区分输入和区分输入和 输出分支输出分支 映射成事务结构映射成事务结构映射成变换结构映射成变换结构 用启发式设计规用启发式设计规 则精化软件结构则精化软件结构 导出接口描述和导出接口描述和 全程数据结构全程数据结构 复复 查查 详细设计详细设计 变换分析变换分析事务分析事务分析 2.2.面向数据流的设计过程面向数据流的设计过程 10 例:汽车数字仪表板的设计例:汽车数字仪表板的设计 功能:功能: 通过模通过模 - - 数转换实现传感
8、器和微处理机接口;数转换实现传感器和微处理机接口; 在发光二极管面板上显示数据;在发光二极管面板上显示数据; 指示每小时英里数指示每小时英里数(mph)(mph),行驶的里程行驶的里程,每加仑油每加仑油 行驶的英里数行驶的英里数(mpg)(mpg)等等;等等; 指示加速或减速;指示加速或减速; 如果车速超过如果车速超过55mph ,55mph ,则发出警告铃声。则发出警告铃声。 四、变换分析四、变换分析 变换分析是一系列设计步骤的总称,经过这些步骤把变换分析是一系列设计步骤的总称,经过这些步骤把 具有变换流特点的数据流图具有变换流特点的数据流图按预先确定的模式按预先确定的模式映射成软件映射成软
9、件 结构结构。 11 设计步骤:设计步骤: n n 第第1 1步:复查基本步:复查基本 系统模型;系统模型; n n 第第2 2步:复查并精步:复查并精 化数据流图;化数据流图; 12 n n 第第3 3步步 确定确定 数据流图具有数据流图具有 变换性还是事变换性还是事 务特性;务特性; 13 燃料流 传感器信号 SPS 旋转信号 读 旋转信 号 收集和 求平均 确定加 /减速 转换成 转/分 计算里 程 计算 mph,超 速值 产生 加/减速 显示 计算燃 料消耗 计算 gph 读和校 核 产生 mpg显 示 产生 mph显 示 发出铃 声 产生里 程显示 SPS SPS 箭头指示 燃烧流
10、上箭头 水平线 下箭头 rpm rpm gph mph mpg mph 超速值 英里 显示 铃声 mph显示 mpg显示 n n 第第4 4步步 确定确定 输入流和输出输入流和输出 流的边界,从流的边界,从 而孤立出变换而孤立出变换 中心;中心; 14 n n 第第5 5步步 完成完成“ “第一级分解第一级分解” ” 第一级分解的方法第一级分解的方法 对于变换流的情况,数据流图被映射成一个特殊的软件对于变换流的情况,数据流图被映射成一个特殊的软件 结构,这个结构控制输入、变换和输出等信息处理过程。结构,这个结构控制输入、变换和输出等信息处理过程。 控制模块控制模块 CmCm协调下述从协调下述从
11、 属的控制功能:属的控制功能: uu 输入信息处理控制模输入信息处理控制模 块块 CaCa; uu 变换中心控制模块变换中心控制模块CtCt ; uu 输出信息处理控制模输出信息处理控制模 块块 CeCe; 15 数字仪表板系统的第一级分解数字仪表板系统的第一级分解 16 第二级分解的方法第二级分解的方法 n n 第第6 6步步 完成完成“ “第二级分解第二级分解” ” 所谓第二级分解就是把数据流所谓第二级分解就是把数据流 图中的每个处理映射成软件结图中的每个处理映射成软件结 构中一个适当的模块。构中一个适当的模块。 uu 从变换中心的边界开始沿着从变换中心的边界开始沿着 输入通路向外移动,把
12、输入通输入通路向外移动,把输入通 路中每个处理映射成软件结构路中每个处理映射成软件结构 中中 CaCa控制下的一个低层模块;控制下的一个低层模块; uu 然后沿输出通路向外移动,然后沿输出通路向外移动, 把输出通路中每个处理映射成把输出通路中每个处理映射成 直接或间接受模块直接或间接受模块 CeCe控制的一控制的一 个低层模块;个低层模块; uu 最后把变换中心内的每个处最后把变换中心内的每个处 理映射成受理映射成受CtCt控制的一个模块控制的一个模块 。 17 数字仪表板 控制 数据转换 控制 驱动仪表板 接收传感器 信号 计算 gph 读燃料流 转换成 rpm 收集sps 读旋转信号 确定
13、 加/ 减速 计算 mph 计算 mpg 计算 里程 加/ 减速 显示 显示 mpg 显示 mph 显示 里程 发出 铃声 发光二极管显示 未精化的数字仪表板系统的软件结构未精化的数字仪表板系统的软件结构 18 mpg显示 燃料流 传感器信号 SPS 旋转信号 读 旋转信 号 收集和 求平均 确定加 /减速 转换成 转/分 计算里 程 计算 mph,超 速值 产生 加/减速 显示 计算燃 料消耗 计算 gph 读和校 核 产生 mpg显 示 产生 mph显 示 发出铃 声 产生里 程显示 SPS SPS 箭头指示 燃烧流 上箭头 水平线 下箭头 rpm rpm gph mph mpg mph
14、超速值 英里 显示 铃声 mph显示 19 n n 第第7 7步步 使用设计度量和启发式规则对得到的软件结构进一使用设计度量和启发式规则对得到的软件结构进一 步精化;步精化; 精化后的数字仪表板系统的软件结构精化后的数字仪表板系统的软件结构20 四、事务分析四、事务分析 事务分析的设计步骤和变换分析的设计步骤大部事务分析的设计步骤和变换分析的设计步骤大部 分相同或类似,主要差别仅在于由数据流图到软件结构的映射分相同或类似,主要差别仅在于由数据流图到软件结构的映射 方法不同。方法不同。 21 n n 映射出映射出接收分接收分 支结构支结构的方法:的方法: 从事务中心的边从事务中心的边 界开始,把
15、沿着界开始,把沿着 接收流通路的处接收流通路的处 理映射成模块;理映射成模块; n n 发送分支的结发送分支的结 构构包含一个调度包含一个调度 模块;模块; n n 然后把数据流然后把数据流 图中的每个活动图中的每个活动 流通路映射成与流通路映射成与 它的流特征相对它的流特征相对 应的结构;应的结构; 22 五、综合设计五、综合设计 n n 在实际的软件系统中,数据流图往往是变换型和在实际的软件系统中,数据流图往往是变换型和 事务型的混合体,这就要用综合设计的方法:事务型的混合体,这就要用综合设计的方法: 一般以一般以“ “变换分析变换分析” ”为主,为主,“ “事务分析事务分析” ”为辅进行
16、设计。先找为辅进行设计。先找 出主加工,设计出结构图的上层,然后根据数据流图各部出主加工,设计出结构图的上层,然后根据数据流图各部 分的结构特点适当地运用分的结构特点适当地运用“ “变换分析变换分析” ”或或“ “事务分析事务分析” ”对下层对下层 模块进行设计,可得到初始结构图。模块进行设计,可得到初始结构图。 23 设计优化设计优化 n n 注意,结构简单通常既表示设计风格优雅,又表注意,结构简单通常既表示设计风格优雅,又表 明效率高。明效率高。设计优化应该力求做到设计优化应该力求做到在有效的模块化在有效的模块化 的前提下使用最少量的模块,以及在能够满足信息的前提下使用最少量的模块,以及在能够满足信息 要求的前提下使用最简单的数据结构。要求的前提下使用最简单的数据结构。 n n 软件设计人员应该致力于软件设计人员应该致力于开发能够满足所有功能开发能够满足所有功能 和性能要求,而且按照设计原理和启发式设计规则和性能要求,而且按照设计原理和启发式设