【软件工程讲解】软件设计的启发式规则.pptVIP

【软件工程讲解】软件设计的启发式规则.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第八讲 软件设计的启发式规则 面向数据流的设计方法 一、软件设计的启发式规则 提高模块独立性 设计规模适中的模块 深度、宽度、扇入、扇出适中 模块的作用域应该在控制域之内 降低接口复杂性 设计单入口和单出口的模块 设计功能可以预测的模块 1) 提高模块独立性 是划分模块的最高准则。 高内聚,尽量一个模块一个功能; 低耦合,避免“病态连接”; 降低接口的复杂程度; 综合考虑模块可分解性、模块可组装性、模块可理解性、模块连续性和模块保护(因修改错误而引起的副作用被控制在模块的内部)等。 2) 设计规模适中的模块 W. M. Weinberg的研究表明:如果一个模块长度超过30条语句,其可理解性将迅速下降; F. T. Baker : 最好控制在50行左右,能够打印在一张纸上。 由于模块独立性是最高原则,对于一个设计合理的功能性模块,即使长达千句或小到几行,也是允许的。 分解模块不应该降低模块独立性。 3) 深度、宽度、扇入、扇出适中 深度:软件结构中控制的层数。一般而言它与系统的复杂度和系统大小直接对应。 宽度:软件结构中同一个层次上的模块总数的最大数。 扇出:一个模块直接控制(调用)的模块数目。 扇出过大说明模块过分复杂;过小也不好,不利于系统平衡分解,3到9为宜。 扇入:一个模块的扇入是指直接控制该模块的模块数目。扇入越大说明共享该模块的上级模块越多。 整个系统结构呈现“椭圆外型”。 如图的系统中:深度为4;宽度为5;模块A的扇出为5,扇入为0。模块K的扇出为0;扇入为2。 4) 模块的作用域应在控制域之内 控制域:控制范围,是包括模块本身以及所有下属模块(直接调用模块和间接调用模块)的集合。 作用域:作用范围,它是一个与条件判定相联系的概念。是受该模块内一个判定影响的所有模块的集合。 对作用域不在控制域的两种改进方法:判定上移和在作用域但不在控制域的模块下移。 5) 降低接口复杂性 尽量少用go to,避免病态连接和内容耦合。 注意全局变量的使用,控制外部耦合和公共耦合的使用。 将数据结构的传递改成数据传递,例如:在求一元二次方程根的模块quad_root(Table, X)中,利用系数数组Table和根数组X进行参数传递。如果将其改为直接的系数和根传递,即quad_root(a, b, c, x1,x2),则特征耦合→数据耦合。 6) 设计单入口和单出口的模块 符合结构化程序设计的思想 应避免病态连接和内容耦合。 “一个功能一个模块”→提高软件的可读性和可理解性。 有效阻断“涟漪效应(ripple effect)” →提高软件的可靠性和可维护性。 7) 设计功能可以预测的模块 “可以预测”——模块的输入和输出之间的关系比较简单。 功能可以预测的模块:如果一个模块可以当作一个“黑盒子(Black Box)”来对待,对于该模块的输入数据来说,可以在不考虑其内部处理细节的情况下生成输出数据。 模块功能应该可以预测,但不要过分受其局限。 二、面向数据流的设计方法 基于DFD的结构化设计的基本概念 变换流结构 事务流结构 变换分析过程 示例 设计优化 1)基于DFD的结构化设计的基本概念 Yourdon等《Structured Design》 目标:使程序结构适应问题结构。结构化设计方法(SD) 映射关系:DFD → HIPO or SC,即从数据流图映射到软件结构图,其中数据流(信息流)的类型决定了映射的方法。 两种类型的信息流(P95) 变换流 事务流 2)变换流结构 三个组成部分: (参见P95图5.8) 传入路径(afferent path) 变换中心(transform center) 传出路径(efferent path) 分别对应的三种数据流 传入流 变换流 传出流 3) 事务流结构 三个组成部分:(参见P95图5.9) 至少一条接受路径(reception path) 一个事务中心T(transaction center) 多条动作路径(action path) 事务中心的三个任务 接受输入数据(事务); 分析每个事务以确定它的类型; 选取一条动作路径(活动通路)。 说明 原则上所有信息流都可以归结为变换流结构; 混合型结构 4) 变换分析过程 复审基本系统模型 复审并精化DFD 确定DFD的类型 确定输入流和输出流的边界,从而孤立出变换中心 完成“第一级分解” (确定顶层和第一层) 完成“第二级分解”(把每个处理映射到SC的一个模块) 利用启发式规则和设计度量对软件结构进一步精化 5)实例分析 P96 例一:某企业销售管理系统的功能为: (1)接受顾客的订单,检验订单,若库存有货,进行供货处理,即修改库存,给仓库开备货单,并将订单留底;若库存不足,将缺货订单登入缺货记录。 (2)根据缺货记录进行缺货统计,将缺

文档评论(0)

精品资料 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档