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

上传人:仙人指路1688 文档编号:2208848 上传时间:2023-01-31 格式:PPT 页数:29 大小:99.01KB
返回 下载 相关 举报
【软件工程讲解】软件设计的启发式规则.ppt_第1页
第1页 / 共29页
【软件工程讲解】软件设计的启发式规则.ppt_第2页
第2页 / 共29页
【软件工程讲解】软件设计的启发式规则.ppt_第3页
第3页 / 共29页
【软件工程讲解】软件设计的启发式规则.ppt_第4页
第4页 / 共29页
【软件工程讲解】软件设计的启发式规则.ppt_第5页
第5页 / 共29页
点击查看更多>>
资源描述

《【软件工程讲解】软件设计的启发式规则.ppt》由会员分享,可在线阅读,更多相关《【软件工程讲解】软件设计的启发式规则.ppt(29页珍藏版)》请在三一办公上搜索。

1、第八讲,软件设计的启发式规则面向数据流的设计方法,一、软件设计的启发式规则,提高模块独立性设计规模适中的模块深度、宽度、扇入、扇出适中模块的作用域应该在控制域之内降低接口复杂性设计单入口和单出口的模块设计功能可以预测的模块,启发式规则是一种经验规律,对改进设计和提高软件质量具有重要的参考价值,但不要过分拘泥于这些规则,1)提高模块独立性,是划分模块的最高准则。高内聚,尽量一个模块一个功能;低耦合,避免“病态连接”;降低接口的复杂程度;综合考虑模块可分解性、模块可组装性、模块可理解性、模块连续性和模块保护(因修改错误而引起的副作用被控制在模块的内部)等。,2)设计规模适中的模块,W.M.Wein

2、berg的研究表明:如果一个模块长度超过30条语句,其可理解性将迅速下降;F.T.Baker:最好控制在50行左右,能够打印在一张纸上。由于模块独立性是最高原则,对于一个设计合理的功能性模块,即使长达千句或小到几行,也是允许的。分解模块不应该降低模块独立性。,3)深度、宽度、扇入、扇出适中,深度:软件结构中控制的层数。一般而言它与系统的复杂度和系统大小直接对应。宽度:软件结构中同一个层次上的模块总数的最大数。扇出:一个模块直接控制(调用)的模块数目。扇出过大说明模块过分复杂;过小也不好,不利于系统平衡分解,3到9为宜。扇入:一个模块的扇入是指直接控制该模块的模块数目。扇入越大说明共享该模块的上

3、级模块越多。整个系统结构呈现“椭圆外型”。,如图的系统中:深度为4;宽度为5;模块A的扇出为5,扇入为0。模块K的扇出为0;扇入为2。,4)模块的作用域应在控制域之内,控制域:控制范围,是包括模块本身以及所有下属模块(直接调用模块和间接调用模块)的集合。作用域:作用范围,它是一个与条件判定相联系的概念。是受该模块内一个判定影响的所有模块的集合。对作用域不在控制域的两种改进方法:判定上移和在作用域但不在控制域的模块下移。,如果D中判定影响到E,通常需在D为判定结果设置一标记,并把该标记通过上级模块A传递给E,导致控制耦合。其作用域为D,G,H,I,J,K和E,作用域在控制域内。,模块D的控制域为

4、D,G,H,I,J,K。,如果D中有一个条件判定仅影响到模块G和H,其作用域为G,H,I,J,K,作用域在控制域内。,5)降低接口复杂性,尽量少用go to,避免病态连接和内容耦合。注意全局变量的使用,控制外部耦合和公共耦合的使用。将数据结构的传递改成数据传递,例如:在求一元二次方程根的模块quad_root(Table,X)中,利用系数数组Table和根数组X进行参数传递。如果将其改为直接的系数和根传递,即quad_root(a,b,c,x1,x2),则特征耦合数据耦合。,6)设计单入口和单出口的模块,符合结构化程序设计的思想应避免病态连接和内容耦合。“一个功能一个模块”提高软件的可读性和可

5、理解性。有效阻断“涟漪效应(ripple effect)”提高软件的可靠性和可维护性。,7)设计功能可以预测的模块,“可以预测”模块的输入和输出之间的关系比较简单。功能可以预测的模块:如果一个模块可以当作一个“黑盒子(Black Box)”来对待,对于该模块的输入数据来说,可以在不考虑其内部处理细节的情况下生成输出数据。模块功能应该可以预测,但不要过分受其局限。,二、面向数据流的设计方法,基于DFD的结构化设计的基本概念变换流结构事务流结构变换分析过程示例设计优化,1)基于DFD的结构化设计的基本概念,Yourdon等Structured Design目标:使程序结构适应问题结构。结构化设计方

6、法(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)事务中心的三个任务接受输入数据(

7、事务);分析每个事务以确定它的类型;选取一条动作路径(活动通路)。说明原则上所有信息流都可以归结为变换流结构;混合型结构,4)变换分析过程,复审基本系统模型复审并精化DFD确定DFD的类型确定输入流和输出流的边界,从而孤立出变换中心完成“第一级分解”(确定顶层和第一层)完成“第二级分解”(把每个处理映射到SC的一个模块)利用启发式规则和设计度量对软件结构进一步精化,确定类型;,确定边界,即确定逻辑输入(离物理输入端最远,但仍然可以被看作系统输入的那些数据流)和逻辑输出(离物理输出端最远,但仍然可以被看作系统输出的那些数据流)。,第一级分解,确定顶层和第一层,从边界沿输出通路向外移动,将每个处理

8、映射成Me的子模块;在输入、输出路径上数据的内容和形式也可能发生变化,但应区别于中心加工),第二级分解:从边界沿输入通路向外移动,将每个处理映射成Ma的子模块;,将变换中心内的处理映射成Mt的子模块,5)实例分析,P96,例一:某企业销售管理系统的功能为:(1)接受顾客的订单,检验订单,若库存有货,进行供货处理,即修改库存,给仓库开备货单,并将订单留底;若库存不足,将缺货订单登入缺货记录。(2)根据缺货记录进行缺货统计,将缺货通知单发给采购部门,以便采购。(3)根据采购部门发来的进货通知单处理进货,即修改库存,并从缺货记录中取出缺货订单进行供货处理。(4)根据留底的订单进行销售统计,打印统计表

9、给销售经理。分析以上功能要求,画出分层的数据流图,并将其转换成对应的软件结构。,销售管理系统,顾客,采购部门,仓库,经理,缺货通知单,进货通知单,订单,备货单,统计表,例二:图书馆的预定图书系统有如下功能:(1)由供书部门提供书目给订购组;(2)订购组从各单位取得要订的书目;(3)根据供书目录和订书书目产生订书文档留底;(4)将订书信息(包括数目、数量等)反馈给供书单位;(5)将未订书目通知订书者;(6)对于重复订购的书目由系统自动检查,并把结果反馈给订书者。试根据要求画出该问题的数据流程图,并把其转换为软件结构图。,订书系统0,订书组,供书单位,要订书目,订书结果,订书清单,供应书目,6)设

10、计优化(p103),对软件软件结构进行优化(启发式规则)软件结构是否简洁?设计风格?效率?对效率起决定作用的软件设计的优化在不考虑时间因素的前提下开发并精化软件结构。孤立并在详细设计阶段重点关注那些对整个软件效率起决定作用的模块(10%到20%的模块开销50%到80%的时间)。在使用高级语言编程的基础上,对孤立出来模块重新用高效率的语言进行编写,看书,准备课程设计的内容什么是软件?它有哪些特点?原型模型和瀑布模型的主要区别?需求分析的任务是什么?怎样理解需求分析阶段的任务是决定“做什么”,而不是“怎样做”?总体设计的任务是什么?需要遵守哪些规则?怎样理解这些“启发式规则”?总结你对设计原理的理解。什么是模块独立性?怎样度量之?,作业,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 建筑/施工/环境 > 项目建议


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号