- 1、本文档共24页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
软件工程16(结构化设计优化原则)精选
小结 本次课主要讲述软件设计优化的基本原则。重点掌握软件结构模块优化的具体应用。 下课了。。。 休息一会儿。。。 * 模块A的控制范围为模块A、B、C、D、E、F、G。模块C的控制范围为模块C、F、G。 * 模块A的控制范围为模块A、B、C、D、E、F、G。模块C的控制范围为模块C、F、G。 * 经验表明,一个设计得较好的软件模块结构,平均扇出数是3~4。 软件工程 主讲:陈利平 计算机与信息科学学院 2015 一、主要内容 讲述软件结构模块的优化。 二、目的与要求 了解软件设计的基本原理,理解软件设计的优化原则。 三、重点与难点 如何进行软件结构模块优化。 概述: 思考: 提问: 1) 软件设计优化的原则是什么? 2) 如何进行软件结构模块优化? 4.3.5 软件模块结构的改进方法 (1) 模块功能的完善化。一个完整的功能模块,不仅能够完成指定的功能,而且还应当能够告诉使用者完成任务的状态,以及不能完成的原因。一个完整的模块由以下几部分。 ① 执行规定的功能的部分。 ② 出错处理的部分。 ③ 返回一个“结束标志”。 4.3.5 软件模块结构的改进方法 (2) 消除重复功能,改善软件结构。 ① 完全相似。 ② 局部相似。 4.3.5 软件模块结构的改进方法 (3) 模块的作用范围应在控制范围之内。 模块的控制范围包括它本身及其所有的从属模块。 模块的作用范围是指模块内一个判定的作用范围,凡是受这个判定影响的所有模块都属于这个判定的作用范围。 4.3.5 软件模块结构的改进方法 (3) 模块的作用范围应在控制范围之内。 如果一个判定的作用范围包含在这个判定所在模块的控制范围之内,则这种结构是简单的。 (a) 4.3.5 软件模块结构的改进方法 (3) 模块的作用范围应在控制范围之内。 图(b)表明作用范围不在控制范围之内。模块G做出一个判定之后,若需要模块 C工作,则必须把信号回送给模块D,再由D把信号回送给模块B。图中加黑框表示判定的作用范围。 (b) 4.3.5 软件模块结构的改进方法 (3) 模块的作用范围应在控制范围之内。 如果在设计过程中,发现作用范围不在控制范围内,可采用如下办法把作用范围移到控制范围之内。 ① 将判定所在模块合并到父模块中,使判定处于较高层次。 ② 将受判定影响的模块下移到控制范围内。 ③ 将判定上移到层次中较高的位置。 4.3.5 软件模块结构的改进方法 (4) 尽可能减少高扇出结构,随着深度增大扇入。 模块的扇出数是指模块调用子模块的个数。如果一个模块的扇出数过大,就意味着该模块过分复杂,需要协调和控制过多的下属模块。 4.3.5 软件模块结构的改进方法 (4) 尽可能减少高扇出结构,随着深度增大扇入。 一个模块的扇入数越大,则共享该模块的上级模块数目越多。 但如果一个模块的扇入数太大,如超过8,而它又不是公用模块,说明该模块可能具有多个功能。 4.3.5 软件模块结构的改进方法 (5) 避免或减少使用病态连接。 应限制使用如下3种病态连接。 4.3.5 软件模块结构的改进方法 (6) 模块的大小要适中。 模块的大小,可以用模块中所含语句的数量的多少来衡量。 通常规定其语句行数为50~100,保持在一页纸之内,最多不超过500行。 4.3.5 软件模块结构的改进方法 实例研究 第1步:对银行储蓄系统的数据流图进行复查并精化,得到如图所示的数据流图。 4.3.5 软件模块结构的改进方法 第2步:确定数据流图具有变换特性还是事务特性。 通过对精化后的数据流图进行分析,可以看到整个系统是对存款及取款两种不同的事务进行处理,因此具有事务特性。 4.3.5 软件模块结构的改进方法 第3步:确定输入流和输出流的边界,如图所示。 4.3.5 软件模块结构的改进方法 第4步:完成第一级分解。分解后的结构图如图所示。 4.3.5 软件模块结构的改进方法 第5步:完成第二级分解。对上图中的“输入数据”、“输出数据”和“调度”模块进行分解,得到未经精化的输入结构、输出结构和事务结构,分别如图(a)、(b)和(c)所示。 (b) 未经精化的输出结构 (a) 未经精化的输入结构 (c) 未经精化的事务结构 4.3.5 软件模块结构的改进方法 第5步:完成第二级分解。将上面的3部分合在一起,得到初始的软件结构,如图所示。 4.3.5 软件模块结构的改进方法 第6步:对软件结构进行精化。 (1) 由于调度模块下只有两种事务,因此,可以将调度模块合并到上级模块中,如图所示。 4.3.5 软件模块结构的改进方法 (2) “检查密码”模块的作用范围不在其控制范围之内(即“输入密码”模块不在“检查密码”模块的控制范围之内),需对其进行调整,如图所示。 4
文档评论(0)