- 1、本文档共82页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
总体设计和详细设计2
第五章 传统的设计方法 结构化设计模型 结构化设计方法 过程设计 Jackson方法 面向数据流设计和面向数据设计 SD方法 数据流是考虑一切问题的出发点 Jackson方法 算法的结构在很大程度上依赖于要处理的数据结构 5.2 结构化设计方法 结构设计—也称概要设计 体系结构设计 SC(结构)图 接口设计 SC图 过程设计—也称详细设计 模块的处理过程 N-S图,PAD(问题分析图),IPO图,PDL等 概要设计的任务 把系统的功能需求分配给软件结构,形成软件的模块结构图。 简要的讲,就是把流程图中的加工(处理)转化成模块,形成模块结构图。 软件的模块结构图 概要设计的表示形式 层次(hierarchy)图 HIPO图 SC图 正文加工系统的层次图 带编号的层次图( HIPO ) IPO图的一个例子 SC图 结构图是精确表达程序结构的图形表示方法。它作为软件文档的一部分,清楚地反映出程序中模块之间的层次调用关系和联系:它不仅严格地定义了各个模块的名字、功能和接口,而且还集中地反映了设计思想。换句话说.它以特定的符号表示模块、模块间的调用关系和模块间信息的传递。 SC图允许使用的六种模块 一般地,在系统结构图中有6种类型的模块;??? (1)传入模块——从下属模块取得数据,经过某些处理,再将其结果传送给上级模块。它传送的数据流叫逻辑输入数据流。??? (2)传出模块——从上级模块获得数据,进行某些处理,再将其结果传送给下属模块。它传送的数据流叫作逻辑输出数据流。??? (3)变换模块——也叫加工模块。它从上级模块取得数据,进行特定的处理,转换成其它形式,再传送回上级模块。它加工的数据流叫作变换数据流。大多数计算模块(原子模块)属于这—类。???(4)源模块—— (5)漏模块—— (6)控制模块—— 在实际系统中有些模块属于上述某—类型,有些模块是上述各种类型的组合。 SC图的组成符号 SC图的模块调用 简单调用 选择调用 注意:图中必须画出红线的数据流 循环调用 注意:图中必须画出红线的数据流 产生最佳解的一般结构图 数据流图的类型 变换型结构的DFD 变换型结构也叫变换流 事务型结构(事务流)DFD 同时存在两类结构 结构化设计方法的设计 结构化设计方法的设计 变换分析 第一步:划分DFD图的边界 第二步:建立初始SC图的框架 顶层都只含一个用于控制的主模块 第一层包括传入、传出和中心变换三个模块 第三步:分解SC图的各个分支 分解实质上是“映射” 最后可组成初始SC图 在形成的SC图下应有模块的简要说明 每个模块的简要说明应有: ① 进出该模块的信息(接口描述); ② 模块内部的信息(功能、数据) ; ③ 过程陈述,包括主要判定点及任务等; ④ 对约束、限制的说明。 例子—划分DFD 第一级分解 第一级分解后的SC(另一种画法) 传入分支的分解(1) 传入分支的分解(2) 传出分支的分解 变换中心的分解 组成初始SC图 事务分析 第一步:在DFD图上确定边界 事务中心 接收部分(包括接收路径) 发送部分(包括全部动作路径) 第二步:画出SC图框架 DFD图的三个部分分别映射为事务控制模块,接受模块和动作发送模块 第三步:分解和细化接收分支和发送分支 例子—划分DFD 事务型SC图的顶层分解 事务分析的映射方法 混合结构 归纳 如果数据流不具有显著的事务特点,最好使用变换设计 如果具有明显的事务中心,应该采用事务设计方法 不要机械遵循规则,根据实际情况将模块进行合并或分解 5.2.5 优化结构设计的指导规则 对模块分割、合并和变动调用关系的指导规则 提高模块独立性(按四项基本原则调整) 模块大小合适 (可脱离DFD图进行调整) 保持高扇入/低扇出(3-5不超过9)的原则 —— 提高公共(共享)模块的使用率! 作用域/控制域规则 作用域不要超出控制域的范围 位置离受它控制的模块越近越好 扇入和扇出 例子:扇出 例子:扇出 有效模块化设计的启发式原则: 1.评估软件结构的初始模型以降低耦合并提高内聚。 2.高层高扇出使结构最小化;当深度增加时(特别是底层)争取提高扇入。(图) 3.将模块的作用范围限制在模块的控制范围内。 作用范围:受模块内一个判定影响的所有模块的集合。 控制范围:模块本身及其所有下属模块的集合。 4.评估模块接口以降低复杂度和冗余并提高一致性。 5.定义功能可以预测的模块,(如对于相同的输入,输出是恒定的),但要避免过分限制模块(如数据结构的大小、控制流的选择、外部接口的模式等限制)。 作用域和控制域
文档评论(0)