- 1、本文档共102页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第九章 面向数据流的设计方法 第九章 面向数据流的设计方法 基本概念和设计过程 变换分析(重点) 事务分析(重点) 启发式设计策略 数据逻辑模型设计 通用化设计 面向数据流的设计的方法,就是通常所说的结构设计法,是根据需求阶段对数据流的分析设计软件结构。 需求阶段对数据流的分析一般用数据流图和数据字典表示。 面向数据流的设计方法根据数据流图的特性定义两种映射: 变换流映射 事务流映射 这两种映射能机械地将数据流图转换为程序结构 变换流 典型的变换流 变换流的特点是:经过变换B的数据流一部分先经过变换C到达变换E,然后另一部分经过变换D到达E;即C和D是顺序结构。 面向数据流的设计过程 变换分析 下面以“家庭保安系统”的传感器监测子系统为例说明变换设计的各个步骤。 步骤一、复审基本系统模型 基本系统模型指顶级DFD和所有由外部提供的信息。这一设计步骤是对系统规格说明书和软件需求规格说明书进行评估。这两个文档描述软件界面上信息的流程和结构。 图9-1 “家庭保安系统”的顶级数据流图 图9-2 “家庭保安系统”的第一级DFD 步骤二、复审和精化软件数据流图 这一步主要是对软件需求规格说明书中的分析模型进行精化,直至获得足够详细的DFD。 例如,由“传感器监测子系统”的第一级(图9?2的局部)和第二级(图9?3)DFD进一步推导出第三级数据流图(图9?4),此时,每个变换对应一个独立的功能,可以用一个具有较高内聚度的模块实现,至此已有足够的信息可用于设计“传感器监测子系统”的程序结构,精化过程亦可结束。 图9?3 “传感器监测子系统”的第二级DFD 图9?4 “传感器监测子系统”的第三级DFD 步骤三、确定DFD的特性,判定它为变换流还是事务流。 以图9?4所示DFD为例,数据沿一个传入路径进来,沿三个传出路径离开,没有明显的事务中心,因此,该信息流应属变换流。 步骤四、划定输入流和输出流的边界,孤立变换中心。 步骤五、执行“一级分解”(first level factoring) 一级分解的目标是导出具有三个层次的程序结构,顶层为主控模块;底层模块执行输入、计算和输出功能;中层模块控制、协调底层的工作。 图9?5所示的结构图对应于一级分解的上两层模块,即主控模块和下面几个中层控制模块: ① 输入流控制模块,接收所有输入数据; ② 变换流控制模块,对内部形式数据进行加工、处理; ③ 输出流控制模块,产生输出数据。 图9?5 一级分解 图9?5展示的是一个简单三叉结构,实际处理大型系统的复杂数据流时,可能需要多个模块对应图9-5中一个模块的功能。“一级分解”总的原则是,在完成控制功能并保持低耦合度、高内聚度的前提下尽可能地减少模块的数量。 “传感器监测子系统”一级分解如图9?6所示,其中控制模块的名字概括了所有下属模块的功能。 图9?6 传感器监测子系统一级分解结果 步骤六、执行“二级分解”。 二级分解的任务是把数据流图中每个处理框映射为结构图中的一个模块。其过程是从变换中心的边界开始沿输入、输出通道向外移动;从变换中心的输入(出)边界向外移动,把遇到的每个处理框映射为结构图中相应控制模块下的一个模块。 图9-7 二级分解 DFD的处理框与程序结构模块一一对应,但按照软件设计原则进行设计时,可能需要把几个处理框聚合为一个模块,或者把一个处理框裂变为几个模块。总之,应根据“良好”设计的标准,进行二级分解。 二级分解后得到的仅仅是程序结构的“雏形”(first?cut),后续的复审和精化会反复修改。 程序结构的模块名已隐含了模块功能,但仍有必要为每个模块写一个简要的处理说明,它应当包括: 1.进出模块的信息(接口描述); 2.模块的局部信息; 3.处理过程陈述,包括任务和主要的判断点的位置、条件; 4.对有关限制和一些专门特性的简要说明(例如,文件I/O,独立于硬件的特性,特殊的实时要求等)。 这些描述构成第一版设计规格说明书。 步骤七、采用启发式设计策略,精化所得程序结构雏形,改良软件质量 对于程序结构的雏形,以“模块独立”为指导思想,对模块进行整合或分解,旨在追求高内聚、低耦合,以及易实现、易测试、易维护的软件结构。 图9-8 结构的优化 上述七个设计步骤的目标是给出软件的一个整体描述。 一旦有了这样一个描述,设计人员即可从整体角度评价和精化软件的总体结构,此时修改所需耗费不多,却能大大提高软件质量。 §9.3 事务分析 事务分析:虽然在任何情况下都可以使用变换分析方法设计软件结构,但是在数据流具有明显的事务特点时,也就是有一个明显的“发射中心”(事务中心)时,还是以采用事务分析方法为宜。 事务分析的设计步骤和变
文档评论(0)