- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第四章 总体设计 5.2 软件设计原理 5.5.2 变换分析技术 图5.8 变换流 2. 事务流 原则上所有信息流都可以归结为变换流这一类。但是,当数据流图具有和图5.9类似的散射形状时,这种数据流是“以事务为中心的”,也就是说,数据沿输入通路到达一个处理T,这个处理根据输入数据的类型在若干个动作序列中选出一个来执行。这类数据流称为事务流。其中的处理T称为事务中心,它完成下述任务: (1) 接收输入数据(输入数据又称为事务); (2) 分析每个事务以确定它的类型; (3) 根据事务类型选取一条活动通路。 图5.9 事务流 事务中心 T 完成下述任务: 1.接受输入数据(事务) 2.分析每个事务以确定它的类型 3.根据事务类型选取一条活动通路 3. 设计过程 图5.10(见书96页)说明了使用面向数据流方法逐步设计的过程。 应该注意,任何设计过程都不是机械地一成不变的,设计首先需要人的判断力和创造精神,这往往会凌驾于方法的规则之上。 精化数据流图 流类型 区分事务中心和数据接收通路 映射成事务结构 区分输入和输出分支 映射成变换结构 用启发式设计规则精化软件结构 导出接口描述和全程数据结构 复查 详细设计 事务分析 变换分析 一、DFD图的分类 一般将DFD图分为两种典型的类型,分析系统的DFD图类型的目的,是为了采用不同的技术将其转换为初始的模块结构图。 中心变换型(transform center) (1)变换型数据处理问题的工作过程大致分为三步,即取得数据,变换数据和给出数据。 (2)相应于取得数据、变换数据、给出数据,变换型系统结构图由输入、中心变换和输出等三部分组成。 检查 顺序 (物理输入) 检查 合理性 扩充 代码 核对 检查和 修改 压缩 代码 配 检查和 (逻辑输入) (逻辑输出) 输 入 中心变换 输 出 卡 片 旧文件 (物理输出) 新文件 事务处理型(transaction)— 事务分析 这类数据流图可看成是对一个数据经过某种加工后,按加工的结果选择一个输出数据流继续执行的处理。其中,事务中心模块按所接受的事务的类型,选择某一个事务处理模块执行。各个事务处理模块是并列的,依赖于一定的选择条件,分别完成不同的事务处理工作。每个事务处理模块可能要调用若干个操作模块,而操作模块又可能调用若干个细节模块。某些事务处理模块可能共享一些操作模块,而某些操作模块又可以共享一些细节模块。通过事务分析技术,将事务处理型的DFD图转换为的SC图。 它接受一项事务,根据事务处理的特点和性质,选择分派一个适当的处理单元,然后给出结果。 在事务型系统结构图中,事务中心模块按所接受的事务的类型,选择某一事务处理模块执行。各事务处理模块并列。每个事务处理模块可能要调用若干个操作模块,而操作模块又可能调用若干个细节模块。 分类 报名 付款 注销 查询 复审 对篇幅较大的模块,应该检查一下它是否包含了好几个功能,是否可以从中分离出一些功能来构成同层或下一层的其他模块。 对篇幅较小的模块,可以考虑是否同它的调用模块合并。 应该注意,这种用代码行数来衡量模块大小的方法只适合于传统的程序. 但是模块的设计准则,不应是语句的多少,而应按模块的独立性来选取模块的规模,例如,某个模块功能是一个独立的少于50行的程序段,则不要嫌小而去与其他内容拼凑成50行的模块;如果一个具有独立功能的程序占用一页半,也不要嫌大而将它划分成两个模块。 3.深度、宽度、扇入、扇出都应适当 深度:软件结构中控制的层数,即模块的层数。 深度与程序语句长度和模块划分大小有关。 宽度:软件结构内同一层次上模块总数的最大值。 一般来说,宽度越大系统越复杂。 由此可见,一个系统的大小和复杂程度在一定的程度上可以用深度和宽度表示。一个系统越大 越复杂,其深度和宽度也越大。 扇出:一个模块调用其他模块的个数。 尽可能减少高扇出结构,如果一个模块的扇出数过大,就意味着该模块过分复杂,需要协调和控制过多的下属模块。同时需要考虑的问题(如接口)就越多,应当适当增加中间层次的控制模块。一般扇出数为7,多了则考虑分解。同时扇出过小也不好。经验表明,一个好的设计应该平均扇出通常是3或4。 扇入:一个模块被其他模块调用的个数。 扇入大些,一般不会影响问题的复杂性,而且扇入越大,说明该模块的复用性越好。 M M M的扇入 M的扇出 1层 2层 A E F G H I J K L M N 深度 扇入为2 扇出为3 扇入为3 B C D 3层 4层 顶层 宽度 大量的系统研究表明,认为高层模块应有较高的扇出,低层模块应有较高的扇入。扇入越大,表示该模块被更多的上级模块共享。扇入越大越好,但不能把许多不相关的功能
文档评论(0)