软件工程导论 第5章
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
块内联系常见的类型 偶然型 特点:组成模块 的成分纯属偶然,没 有必然联系。
图10 偶然型
主要缺点:不易修改、模块含义不易理解, 难易测试,偶然型块内联系通常是为了节省 空间而产生的,所以只要有足够的空间就应 避免构造这种模块,免得造成维护时的困难。
软件工程 27 王素红
中北大学电子与计算机科学技术学院
软件工程
16
王素红
中北大学电子与计算机科学技术学院
四、块间联系和块内联系 块间联系的大小一般可从三个角度来衡量: 方式-块间联系是通过怎样的方式进行的。 作用-块间共用的信息是作什么用的。 数量-块间共用信息的多少。
软件工程
17
王素红
中北大学电子与计算机科学技术学院
1、块间联系的各种类型
1)联系的方式 块间联系的方式一般有两种: “用过程语句调用”(通过模块的名 字调用整个模块)或“直接引用”(一个 模块直接存取另一个模块内部的某些信 息。) 前者的块间联系较低,后者的块间联 系则很高。
一层。
图19
软件工程 42 王素红
中北大学电子与计算机科学技术学院
如果发现作用范围不在控制范围之内,可 选用以下一些手段对结构图作改进:
• 将作判定的模块合并到它的调用模块中, 从而使判定处于足够高的位置。 • 将受判定影响的模块下移到控制范围内。 • 把判定上移到足够高的位置。
软件工程
43
王素红
软件工程 8 王素红
中北大学电子与计算机科学技术学院
图2 块间联系和块内联系图
软件工程 9 王素红
中北大学电子与计算机科学技术学院
3、描述方式 SD方法使用的描述方式是结构图,它描 述了程序的模块结构,并反映了块间联系和 块内联系等特性。
软件工程
图3 模块结构图 10
王素红
中北大学电子与计算机科学技术学院
软件工程 35 王素红
中北大学电子与计算机科学技术学院
3、功能型模块的组成 执行某项具体任务的部分。 通知它的调用模块发生了例外情况的部分。 在数据结束时通知调用模块“文件完”的 部分。
软件工程
36
王素红
中北大学电子与计算机科学技术学院
4、消除重复功能
图15 消除重复功能
软件工程 37 王素红
中北大学电子与计算机科学技术学院
功能型 特点:一个模 块包括并仅 包括为完成 某一个具体 任务所必须 的所有成分。
图14 功能型
优点:界面比较清晰,易于理解,同其它 模块的联系较低。功能型模块也易于测试 和维护。复用性比较好。
软件工程 32 王素红
中北大学电子与计算机科学技术学院
3、设计总则 SD方法的设计总则 使每个模块执行一个功能。 模块间传递数据型参数。 模块间共用信息尽量少。
为了提高可理解性、可靠性和可维护 性,一个模块最好只引用其调用模块显式 传送给它的参数以及它本身的局部变量, 这样,模块同系统其它部分的联系会大大 减少。
软件工程
24
王素红
中北大学电子与计算机科学技术学院
模块分解的目的是为了降低复杂性, 一个复杂的大问题 几个孤立的小 问题降低问题的复杂性。 如何达到块间联系尽可能小? 每个模块用过程语句(或函数方式)调用 其它模块。 模块间传递的参数做数据用。 模块间共用的信息尽量少。
数据流图一般有两种典型的结构:变 换型结构和事务型结构。 两种典型的结构可分别通过“变换分 析”和“事务分析”技术导出标准形式的 程序结构图。 这些技术都是先设计模块结构顶端的 主模块,然后“由顶向下逐步细化”,最 后得到一个满足数据流图所表达的用户要 求的程序。
软件工程
49
王素红
中北大学电子与计算机科学技术学院
软件工程
25
王素红
中北大学电子与计算机科学技术学院
2、块内联系的各种类型
块内联系是指模块内部各成分之间 (如语句之间或语句段之间)的联系。 SD方法的另一个目标是:块内联系尽 量大。 即,模块分解时尽量把有密切联系的 成分划分在同一模块,而不要把不相关的 成分凑到一个模块中。
软件工程
26
王素红
中北大学电子与计算机科学技术学院
软件工程
3
王素红
中北大学电子与计算机科学技术学院
二、概要设计的基本概念 1、总体设计的基本任务 将系统划分成模块 决定每个模块的功能 决定模块的调用关系 决定模块的界面,即模块间传递的数据
软件工程
4
王素红
中北大学电子与计算机科学技术学院
2、概要设计的主要工作: 完成模块分解,确定系统的模块层次 结构。 3、概要设计需交付的文档: 数据结构的描述部分 模块的说明部分,它包括模块结构图及每 个模块的功能说明。
软件工程
5
王素红
中北大学电子与计算机科学技术学院
三、结构化设计概要 SD方法的目标:建立结构良好的程序 系统。 评价设计质量的两个标准:块间联系 和块内联系。
软件工程
6
ቤተ መጻሕፍቲ ባይዱ
王素红
中北大学电子与计算机科学技术学院
1、相对独立功能单一的模块结构 SD方法的基本思想: 将系统设计成由相对独立、单一功能 的模块。 用SD方法设计的程序系统,每个模块 可以独立的被理解、编程、测试、排错和修 改,使复杂的研制工作地以简化。 模块的相对独立性也能有效地防止错 误在模块之间扩散蔓延,因而提高了系统的 可靠性。
结构图中的主要成分有: 模块 调用 数据
软件工程
11 图4 结构图主要成分
王素红
中北大学电子与计算机科学技术学院
图5 结构图其它成分
软件工程 12 王素红
中北大学电子与计算机科学技术学院
图6 结构图
软件工程 13 王素红
中北大学电子与计算机科学技术学院
注意:一个模块在结构图中只能出现一 次,否则修改模块结构时就需要修改多处, 这容易造成错误。
中北大学电子与计算机科学技术学院
如果一个模块篇幅较大,可以从中抽出一 些功能构成它的下层模块。 如果一个模块篇幅较小,可以考虑将它同 其调用模块合并。 尽可能研究整张结构图。 初始结构图可以暂不满足系统说明书中的 某些要求,而在改进过程中使这些要求逐 步得到满足,因为越到后面,结构图的 “可维护性”越好,局部的改动不会影响 整个大局。
中北大学电子与计算机科学技术学院
5、作用范围和控制范围 一个判定的作用范围是指所有受这个 判定影响的模块的集合。 一个模块的控制范围包括它本身及其 所有的下属模块。 SD方法认为作用范围应该是控制范围 的子集。
软件工程
38
王素红
中北大学电子与计算机科学技术学院
作用范围和控制范围 1)作用范围不在控制范围之内,质量较差。
软件工程
47
王素红
中北大学电子与计算机科学技术学院
六、从数据流图导出初始结构图 设计阶段的SD方法与分析阶段的SA方 法有着密切的联系。 SD方法则以数据流图为设计程序的模 块结构。从表达“用户要求”的数据流图 可以根据一些简单的规则导出初始的模块 结构。
软件工程
48
王素红
中北大学电子与计算机科学技术学院
软件工程 7 王素红
中北大学电子与计算机科学技术学院
2、块间联系和块内联系 块间联系: 模块之间的联系,是对模块独立性的直 接衡量,块间联系越小就意味着模块的独立 性越高,最基本的标准。 块内联系: 一个模块内部各成分(语句或语句段) 之间的联系,块内联系大了,则模块的相对 独立性势必会提高。 SD方法的目标是使块间联系尽量小,块内联 系尽量大。
逻辑型
图11 逻辑型
特点:将几个逻辑上相似的功能放到 一个模块中。 主要缺点:难理解、难编程、难修改
软件工程 28 王素红
中北大学电子与计算机科学技术学院
瞬时型 特点:将需要同时执行的成分放在同 一模块中,如初始化模块(为各种变量置 初值,打开若干个文件等)或结束模块等。
软件工程
29
王素红
中北大学电子与计算机科学技术学院
软件工程
14
王素红
中北大学电子与计算机科学技术学院
画结构图的一般习惯: 输入模块在左,输出模块在右,而计 算模块居中。
软件工程
15
王素红
中北大学电子与计算机科学技术学院
4、步骤 SD方法可分两步进行: 建立一个满足系统说明书要求的初始结构 图。 对结构图作逐步改进,以提高块内联系和 减少块间联系。
软件工程
45
王素红
中北大学电子与计算机科学技术学院
扇出和扇入 一个模块调用其它模块的个数,称为 该模块的扇出。扇出越大,设计该模块时 需要考虑的问题就越多,因而复杂型越高。 一般为7,多了则考虑分解。
图20
软件工程 46 王素红
中北大学电子与计算机科学技术学院
一个模块调被其它模块的个数,称为 该模块的扇入。扇入大些,一般不会影响 问题的复杂性,而且扇入越大,说明该模 块的复用性越好。
图16
软件工程 39 王素红
中北大学电子与计算机科学技术学院
2)作用范围在控制范围之内,但判定在
层次结构中的位置太高了。
图17
软件工程 40 王素红
中北大学电子与计算机科学技术学院
3)判定所在的位置比较合适。
图18
软件工程 41 王素红
中北大学电子与计算机科学技术学院
4)判定的作用范围恰好在判定所在模块的下
软件工程 18 王素红
中北大学电子与计算机科学技术学院
图7 块间联系情况 1
软件工程 19 王素红
中北大学电子与计算机科学技术学院
图8 块间联系情况 2
软件工程 20 王素红
中北大学电子与计算机科学技术学院
直接引用的缺点: 界面不清楚,理解某个模块时必须同 时去了解另一模块内部的情况,编程时也 是如此;修改时往往要涉及多个模块;排 错时也要同时分析几个模块才能找出错误 的原因。
软件工程
21
王素红
中北大学电子与计算机科学技术学院
2)共用信息的作用 模块间共用信息可以作“控制信息”用, 也可以做数据用。但是如果混合用则块间联 系最高。
软件工程
22
王素红
中北大学电子与计算机科学技术学院
图9 将控制信号作为参数显示传送到另一模块
软件工程
23
王素红
中北大学电子与计算机科学技术学院
图21 变换流
软件工程 50 王素红
中北大学电子与计算机科学技术学院
图22 事务流
软件工程 51 王素红
中北大学电子与计算机科学技术学院
变换型结构的数据流图可分成三部分: 输入、主加工和输出。 使用“变换分析”技术导出标准形式 的程序结构的步骤如下: 找出主加工、确定逻辑输入和逻辑输出。 设计模块结构的顶层和第一层。 设计中、下层模块。
中北大学电子与计算机科学技术学院
软件设计: 为编程制订一个周密的计划称为设计。 设计内容: 软件系统的结构,包括数据结构和程序 结构。 模块:用一个名字 可以调用的一段程 序语句。
图1 模块图
软件工程 2 王素红
中北大学电子与计算机科学技术学院
一、模块 一个模块具有输入和输出、功能、内 部数据、程序代码等特性。 输入输出和功能构成了一个模块的外貌, 即模块的外部特性。 内部数据和程序代码是模块的内部特性。 先确定模块的外部特性再确定模块的内 部特性。
中北大学电子与计算机科学技术学院
模块的大小
模块的大小是指源程序的行数。适 当地控制模块的大小也是降低复杂性的 手段之一。 一般说来,模块大小以一至三页为 宜(约50· 100行),这样比较易于阅读、 易于理解。
软件工程
44
王素红
中北大学电子与计算机科学技术学院
对篇幅较大的模块,应该检查一下它 是否包含好几个功能,是否可以从中分离 出一些功能来构成同层或下一层的其它模 块。 对篇幅较小的模块,可以考虑是否同 它的调用块合并。
软件工程
33
王素红
中北大学电子与计算机科学技术学院
五、设计技巧 1、结构图的改进有两条途径: 减少块间联系,提高块内联系。 2、改进结构图的过程和技巧: 减少块间联系,其中用的最多的是减少模 块之间传送的参数个数。 消除重复功能。 消除“管道”性模块。 要考虑将来可能发生的变化。
软件工程 34 王素红
通讯型 特点:模 块中的成 分引用共 同的数据 缺点:复用性差。 通讯型的块内联系比顺序型稍弱,因 为各成分的执行次序是任意的。
30
图12 通讯型
软件工程
王素红
中北大学电子与计算机科学技术学院
顺序型
图13 顺序型
特点:复用性较差。 缺点:模块中某个成分的输出是另一模块 的输入。
软件工程 31 王素红
中北大学电子与计算机科学技术学院
第5章 总体设计 学习要求:软件设计目的是建立一个符 合用户要求的软件系统。 明确结构化设计的主要任务、设计步骤、 具体方法; 了解其它设计方法及特点,具体掌握软 件概要设计的基本思想和方法; 重点掌握从数据流图导出初始结构图及 如何对初始结构图进行改进的方法。
软件工程 1 王素红