软件工程第4章 总体设计.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
4.5 面向数据流的设计方法 事务型数据流 通常接受一项事务,根据事务处理的特点和性质,选择分派一个适当的处理单元,然后给出结果。 完成选择分派任务的部分称为事务处理中心,或分派部件。 4.5 面向数据流的设计方法 事务型系统结构图 4.5 面向数据流的设计方法 简化的事务型系统结构图 事务型系统的结构图可以有多种不同的形式,如有多层操作层或没有操作层。 如果调度模块并不复杂,可将其归入事务中心模块。 4.5 面向数据流的设计方法 变换型映射方法 系统数据处理问题的处理流程总能表示为变换型数据流图,进一步可采用变换型映射方法建立系统的结构图。 也可能遇到明显的事务数据处理问题,这时可采用事务型映射方法。 4.5 面向数据流的设计方法 变换分析方法的步骤 (1) 重画数据流图。在需求分析阶段得到的数据流图侧重于描述系统如何加工数据,而重画数据流图的出发点是描述系统中的数据是如何流动的。 (2)在数据流图上区分系统的逻辑输入、逻辑输出和中心变换部分。 4.5 面向数据流的设计方法 变换分析方法的步骤 (3) 进行一级分解,设计系统模块结构的顶层和第一层。自顶向下设计的关键是找出系统树形结构图的根或顶层模块。 首先设计一个主模块,并用程序的名字为它命名,然后将它画在与中心变换相对应的位置上。 第1层设计:为每个逻辑输入设计一个输入模块,它的功能是为主模块提供数据;为每个逻辑输出设计一个输出模块,它的功能是将主模块提供的数据输出;为中心变换设计一个变换模块,它的功能是将逻辑输入转换成逻辑输出。 4.5 面向数据流的设计方法 变换分析方法的步骤 第一层模块与主模块之间传送的数据应与数据流图相对应,如图所示。 4.5 面向数据流的设计方法 变换分析方法的步骤 (4) 进行二级分解,设计中、下层模块。 这一步工作是自顶向下,逐层细化,为每一个输入模块、输出模块、变换模块设计它们的从属模块。 设计下层模块的顺序是任意的。但一般是先设计输入模块的下层模块。 4.5 面向数据流的设计方法 事务型映射方法 事务分析也是从分析数据流图开始,自顶向下,逐步分解,建立系统的结构图。 4.5 面向数据流的设计方法 事务分析方法的步骤 (1) 识别事务源。利用数据流图和数据词典,从问题定义和需求分析的结果中,找出各种需要处理的事务。 (2) 规定适当的事务型结构。在确定了该数据流图具有事务型特征之后,根据模块划分理论,建立适当的事务型结构。 (3) 识别各种事务和它们定义的操作。 (4) 注意利用公用模块。 4.5 面向数据流的设计方法 事务分析方法的步骤 (5) 建立事务处理模块。对每一事务,或对联系密切的一组事务,建立一个事务处理模块。 (6) 对事务处理模块规定它们全部的下层操作模块。 (7) 对操作模块规定它们的全部细节模块。 大型的软件系统通常是变换型结构和事务型结构的混合结构,所以,我们通常利用以变换分析为主,事务分析为辅的方式进行软件结构设计。 4.5 面向数据流的设计方法 混合结构的例子 4.5 面向数据流的设计方法 软件模块结构的改进方法 (1) 模块功能的完善化。一个完整的功能模块,不仅能够完成指定的功能,而且还应当能够告诉使用者完成任务的状态,以及不能完成的原因。也就是说,一个完整的模块应当有以下几部分。 ① 执行规定的功能的部分。 ② 出错处理的部分。 当模块不能完成规定的功能时,必须回送出错标志,向它的调用者报告出现这种例外情况的原因。 ③ 如果需要返回一系列数据给它的调用者,在完成数据加工或结束时,应当给它的调用者返回一个“结束标志”。 4.5 面向数据流的设计方法 (2) 消除重复功能,改善软件结构。 ① 完全相似。在结构上完全相似,可能只是在数据类型上不一致。此时可以采取完全合并的方法。 ② 局部相似。 4.5 面向数据流的设计方法 ② 局部相似:此时,不可以把两者合并为一,如图(b)所示,因为这样在合并后的模块内部必须设置许多查询开关,如图(f)所示。 4.5 面向数据流的设计方法 (3) 模块的作用范围应在控制范围之内。 模块的控制范围包括它本身及其所有的从属模块。 模块的作用范围是指模块内一个判定的作用范围,凡是受这个判定影响的所有模块都属于这个判定的作用范围。 如果一个判定的作用范围包含在这个判定所在模块的控制范围之内,则这种结构是简单的。 (a) 4.5 面向数据流的设计方法 (3) 模块的作用范围应在控制范围之内。 图(b)表明作用范围不在控制范围之内。模块G做出一个判定之后,若需要模块 C工作,则必须把信号回送给模块D,再由D把信号回送给模块B。图中加黑框表示判定的作用范围。 (b) 4.5 面向数据流的设计方法 (3) 模块的作用范围应在控制范围

文档评论(0)

132****9295 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档