- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
深度表示软件结构中控制的层数。 宽度是软件结构内同一个层次上的模块总数的最大值。 扇出是一个模块直接控制(调用)的模块数目。扇出太大,应增加中间层次的控制模块;扇出小时,把下级模块进一步分解成若干个子功能模块或合并到它的上级模块中去。 扇入是表明有多少个上级模块直接调用它。 3. 深度、宽度、扇出和扇入都应适当 设计得很好的软件结构通常顶层扇出比较高,中层扇出较少,底层扇入到公共的实用模块中去(底层模块有高扇入)。 * 精品PPT | 借鉴参考 (1)深度和程序长度之间应该有粗略的对应关系,当然这个对应关系是在一定范围内变化的。如果层数过多则应该考虑是否有许多管理模块过分简单了,能否适当合并。 (2)一般说来,宽度越大系统越复杂。对宽度影响最大的因素是模块的扇出。 (3) 一个设计得好的典型系统的平均扇出通常是3或4(扇出的上限通常是5~9)。 (4)扇入越大则共享该模块的上级模块数目越多,这是有好处的,但是,不能违背模块独立原理单纯追求高扇入。 * 精品PPT | 借鉴参考 高扇出的模块结构举例: 编外 人员 工资 取得 工资 数据 计时 制工 资额 薪金 制工 资额 编外 人员 税款 编外 人员 扣款 常规 扣款 税收 扣款 计算实发工资 避免平铺结构 * 精品PPT | 借鉴参考 编外 人员 工资 取得工资数据 计时 制工 资额 薪金 制工 资额 编外 人员 税款 编外 人员 扣款 常规 扣款 税收 扣款 计算实发工资 计时工人实发工资 计薪工人实发工资 编外人员实发工资 增加中间层降低扇出 * 精品PPT | 借鉴参考 模块的作用域定义为受该模块内一个判定影响的所有模块的集合。模块的控制域是这个模块本身以及所有直接或间接从属于它的模块的集合。 模块C的控制范围: C、D、E、F、G、H,如果模块C 作出的决策影响了模块L,L超出了C 的控制范围.(难于理解;会出现控制耦合) 1、把做决策的点C上移 2、把L移到C的控制域中 在一个设计得很好的系统中,所有受判定影响的模块应该都从属于做出判定的那个模块,最好局限于做出判定的那个模块本身及它的直属下级模块。 4. 模块的作用域应该在控制域之内 C H D E G X F A I L J K B * 精品PPT | 借鉴参考 模块接口复杂是软件发生错误的一个主要原因。应该仔细设计模块接口,使得信息传递简单并且和模块的功能一致。 接口复杂或不一致(即看起来传递的数据之间没有联系),是紧耦合或低内聚的征兆,应该重新分析这个模块的独立性。 5. 力争降低模块接口的复杂程度 * 精品PPT | 借鉴参考 这条启发式规则警告软件工程师不要使模块间出现内容耦合。当从顶部进入模块并且从底部退出来时,软件是比较容易理解的,因此也是比较容易维护的。 6. 设计单入口单出口的模块 * 精品PPT | 借鉴参考 模块的功能应该能够预测,但也要防止模块功能过分局限。 如果一个模块可以当做一个黑盒子,也就是说,只要输入的数据相同就产生同样的输出,这个模块的功能就是可以预测的。带有内部“存储器”的模块的功能可能是不可预测的,因为它的输出可能取决于内部存储器(例如某个标记)的状态。由于内部存储器对于上级模块而言是不可见的,所以这样的模块既不易理解又难于测试和维护。 7. 模块功能应该可以预测 * 精品PPT | 借鉴参考 5.4 描绘软件结构的图形工具 层次图 * 精品PPT | 借鉴参考 HIPO图(可追踪) IPO图来描述处理过程 * 精品PPT | 借鉴参考 结构图 循环 调用 条件 调用 模块的名字或主要功能 调用关系 传递的信息(数据流和控制流) * 精品PPT | 借鉴参考 5.5 面向数据流的设计方法(结构化设计 方法SD) 面向数据流的设计方法的目标是给出设计软件结构的一个系统化的途径。 面向数据流的设计方法定义了一些不同的“映射”,利用这些映射可以把数据流图变换成软件结构。 因为任何软件系统都可以用数据流图表示,所以面向数据流的设计方法理论上可以设计任何软件的结构。 * 精品PPT | 借鉴参考 5.5.1 概念 结构化设计方法(SD)以数据流图为基础,它定义了把DFD变换成软件结构的不同映射方法。 数据流图可分为两种类型: 变换型数据流 事务型数据流 * 精品PPT | 借鉴参考 参看图5.8,信息沿输入通路进入系统,同时由外部形式变换成内部形式,进入系统的信息通过变换中心,经加工处理以后再沿输出通路变换成外部形式离开软件系统。当数据流图具有这些特征时,这种信息流就叫作变换流。 1. 变换流 图5.8 变换流 * 精品PPT | 借鉴参考 当数据流图具有和图5.9类似的形状时,这种数据流是“以事务为中心的”,也就是说,数据沿输入通路到达
文档评论(0)