软件工程讲义第9章进行体系结构设计解析.ppt

软件工程讲义第9章进行体系结构设计解析.ppt

  1. 1、本文档共91页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
变换映射 变换映射是一组设计步骤,可以将具有变换流特征的DFD映射为某个特定的体系结构风格。 步骤1:评审基本系统模型 基本系统模型或者环境图把安全功能描述为一个单一的变换,描述了流入和流出安全功能的数据的生产者和消费者。图9-11刻画了一个0层模型,图9-12描述了初步精化后的安全功能数据流。 SAFEHOME实例[39] 图9-11 SafeHome的环境级DFD SAFEHOME实例[40] 图9-12 SafeHome安全功能的第一层DFD 步骤2:评审和精化软件的数据流图 对从分析模型获得的信息进行精化,以获得更多的细节。例如,检查第2层监控传感器的DFD(如图9-13),并导出第3层数据流图(如图9-14)。在第3层,数据流图中的每个变换都展示了高内聚性,即变换所包含的过程完成单一的、清楚的功能,该功能可被实现为SafeHome软件中的一个构件。图9-14中的DFD包含了设计监控传感器子系统体系结构所需的细节信息,不需要再进一步精化。 SAFEHOME实例[41] 图9-13 精化“监控传感器”变换的第2层DFD SAFEHOME实例[42] 图9-14 具有流边界的监控传感器的第3层DFD 步骤3:确定DFD是否含有变换流或事务流特征 通过评估DFD(图9-14),可以看出,数据通过一条输入路径进入软件,沿三条输出路径流出,没有明显的事务中心。信息流将呈现出一个从头到尾的变换特征。 步骤4:通过确定输入和输出流的边界,分离出变换中心 输入流被描述为信息从外部形式变换为内部形式的路径,而输出流是信息从内部形式变换为外部形式的路径。不同的设计人员在选择流边界时可能不尽相同。事实上,不同的流边界选择会导致不同的设计方案。尽管在选择流边界时要加以注意,但沿流路径若有一个泡泡的差异对最终程序结构的影响并不会太大。 步骤5:完成“第一级分解” 使用这个映射导出的程序体系结构导致了自顶向下的控制分布。分解的作用是得到一个程序结构,其中顶层模块做决策;低层模块完成大多数输入、计算和输出工作;中层模块既完成一部分控制,又完成适量的工作。 当遇到变换流时,DFD将被映射成一个能为信息的输入、变换和输出处理提供控制的特定结构。图9-15给出了对监控传感器子系统进行第一级分解的结果,主控制器(图中称为监控传感器输入控制器)位于程序结构的顶端,负责协调从属控制功能。 SAFEHOME实例[43] 图9-15 监控传感器的第一级分解 步骤5:完成“第一级分解” 输入信息处理控制器负责协调所有输入数据的接收。 变换流控制器负责管理内部形式的数据上的所有操作。 输出流信息处理控制器负责管理输出信息的产生。 虽然图9-15蕴涵了三叉结构,但是,大型系统的复杂数据流图可能会要求为上述每个类属控制功能提供两个或多个模块。第一层模块的数量应限定在既能完成控制功能又能维持良好的独立特征所要求的最少模块数。 步骤6:完成“第二级分解” 第二级分解是将DFD中的每个变换映射到程序结构中的相应模块。从变换中心的边界开始,沿输入路径和输出路径向外,将变换依次映射到软件结构的从属层。图9-16描述了第二级分解的一般方法。 SAFEHOME实例[44] 图9-16 监控传感器的第二级分解 步骤6:完成“第二级分解” 虽然图9-16描述了DFD变换和软件模块间的一对一映射,但其他的映射方式也经常采用。两个甚至三个变换可以合并在一起表示为一个构件,或者一个单独的变换也可以扩展成两个或者多个构件。现实考虑和设计质量的权衡决定着第二级分解的输出结果。评审和精化可能会导致这个结构的改变,但这个结构仍然应作为第一次迭代设计。 步骤6:完成“第二级分解” 对于输入流的第二级分解遵循同样的方式,从输入流一侧的变换中心边界开始向外移动。变换中心映射略有不同,DFD变换部分的每个代表数据转换或计算的变换都被映射为变换控制器的从属模块。图9-17给出了一个完整的第一次迭代的体系结构。 按以上方法映射出来的构件描述了软件体系结构的一个初始设计。虽然构件的名字已经可以体现其功能,但我们仍然需要为每个构件提供简要的处理叙述。 SAFEHOME实例[45] 图9-17 监控传感器第一次迭代后的结构 步骤7:使用提高软件质量的设计启发式方法,精化第一次迭代得到的体系结构 应用功能独立性概念,能够精化第一次迭代得到的体系结构。对构件进行外爆或内爆,可以得到合理的分解、好的内聚性、低的耦合性,最重要的是获得易于实现、可系统性测试和易于维护的程序结构。 求精是在前述的分析和评估方法以及现实考虑和常识等指导之下进行的。例如,有时输入数据流的控制器完全没有必要,有时需要在一个从属于变换控制器的构件中完成输入处理,有时全局数据的存在使得高耦合性不可能避免,有时不能达到优化结构特征,软件需求加人工判断是最终依据

文档评论(0)

武神赵子龙 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档