06、软件设计

上传人:aa****6 文档编号:51023491 上传时间:2018-08-12 格式:PPT 页数:67 大小:1.29MB
返回 下载 相关 举报
06、软件设计_第1页
第1页 / 共67页
06、软件设计_第2页
第2页 / 共67页
06、软件设计_第3页
第3页 / 共67页
06、软件设计_第4页
第4页 / 共67页
06、软件设计_第5页
第5页 / 共67页
点击查看更多>>
资源描述

《06、软件设计》由会员分享,可在线阅读,更多相关《06、软件设计(67页珍藏版)》请在金锄头文库上搜索。

1、软件工程模型与方法 Models 推动了系统各个部分的并行 开发,从而提高了软件的生 产效率。 2008 BUPT TSEG 北京邮电大学 通信软件工程中心266.6.4.1 模块的定义u模块(module):整个软件可被划分成若干个可单独 命名且可编址组成部分,这些部分称之为模块。u模块具有如下三个基本属性:功能:实现什么功能,做什么事情。逻辑:描述模块内部怎么做。状态:该模块使用时的环境和条件。u模块的表示模块的外部特性:是指模块的模块名、参数表、以 及给程序以至整个系统造成的影响。模块的内部特性:是指完成其功能的程序代码和仅 供该模块内部使用的数据。2008 BUPT TSEG 北京邮电

2、大学 通信软件工程中心276.6.4.2 模块设计的标准u模块可分解性:可将系统按问题子问题分解的 原则分解成系统的模块层次结构;u模块可组装性:可利用已有的设计构件组装成新 系统,不必一切从头开始。u模块可理解性:一个模块可不参考其他模块而被 理解;u模块连续性:对软件需求的一些微小变更只导致 对某个模块的修改而整个系统不用大动;u模块保护:将模块内出现异常情况的影响范围限 制在模块2008 BUPT TSEG 北京邮电大学 通信软件工程中心286.6.5 信息隐藏u由Parnas提倡的信息隐藏是指,每个模块 的实现细节对于其它模块来说是隐蔽的。u就是说,模块中所包含的信息(包括数据 和过程

3、)不允许其它不需要这些信息的模块 使用。 u其最大的好处就是使得模块的修改和软件 的维护所造成的影响可以局限在一个或几个 模块范围内。2008 BUPT TSEG 北京邮电大学 通信软件工程中心296.6.6 模块的独立性u功能独立性是抽象、模块化和信息隐藏的 直接产物。u如果一个模块能够独立于其他模块被编程 、测试和修改,而和软件系统中其它的模块 的接口是简单的,则该模块具有功能独立性 。 u1978年Meyer提出了两个准则度量模块独立 性,即模块间的耦合和模块的内聚。 2008 BUPT TSEG 北京邮电大学 通信软件工程中心306.6.6.1 模块的内聚性u内聚是模块功能强度的度量,

4、一个模块内部各元 素之间的联系越紧密,则它的内聚性就越高,相对 地,它与其他模块之间的耦合性就会减低,而模块 独立性就越强。 巧合 逻辑 时间 过程 通信 信息 功能 内聚 内聚 内聚 内聚 内聚 内聚 内聚内聚性功能独立性2008 BUPT TSEG 北京邮电大学 通信软件工程中心31模块的内聚性u巧合内聚当几个模块内凑巧有一些程序 段代码相同,又没有明确表现 出独立的功能,为了减少存储 把这些代码独立出来建立一个 新的模块,这个模块就是巧合 内聚模块。它是内聚程度最低 的模块。u逻辑内聚 这种模块把几种相关的功能组 合在一起,每次被调用时,由 传送给模块的判定参数来确定 该模块应执行哪一种

5、功能。2008 BUPT TSEG 北京邮电大学 通信软件工程中心32模块的内聚性u时间内聚时间内聚又称为经典内聚。这种模块一般为多功能 模块,但模块的各个功能的执行与时间有关,通常要求 所有功能必须在同一时间段内执行。例如初始化模块和终止模块。u过程内聚使用流程图做为工具设计程序时,把流程图中的某 一部分划出组成模块,就得到过程内聚模块。例如,把流程图中的循环部分、判定部分、计算部 分分成三个模块,这三个模块就是过程内聚模块。2008 BUPT TSEG 北京邮电大学 通信软件工程中心33模块的内聚性u通信内聚如果一个模块内各功能部分都使用了相同的输入数 据,或产生了相同的输出数据,则称之为

6、通信内聚模块 。通常,通信内聚模块是通过数据流图来定义的。2008 BUPT TSEG 北京邮电大学 通信软件工程中心34模块的内聚性u信息内聚这种模块完成多个功能,各个功能都在同一数据结构上操作, 每一项功能有一个唯一的入口点。这个模块将根据不同的要求,确定该执行哪一个功能。由于这 个模块的所有功能都是基于同一个数据结构(符号表),因此,它 是一个信息内聚的模块。信息内聚模块可以看成是多个功能内聚模块的组合,并且达到 信息的隐蔽。u功能内聚一个模块中各个部分都是完成某一具体功能必不可少的组成部 分,或者说该模块中所有部分都是为了完成一项具体功能而协同工 作,紧密联系,不可分割的。则称该模块为

7、功能内聚模块。2008 BUPT TSEG 北京邮电大学 通信软件工程中心356.6.6.2 模块的耦合性u耦合是模块之间互相连接的紧密程度的度 量。模块之间的连接越紧密,联系越多,耦 合性就越高,而其模块独立性就越弱。 非直接 数据 标记 控制 外部 公共 内容耦合 耦合 耦合 耦合 耦合 耦合 耦合耦合性功能独立性2008 BUPT TSEG 北京邮电大学 通信软件工程中心36模块的耦合性u内容耦合一个模块直接访问另一个模块的内部数据;一个模块不通过正常入口转到另一模块内部;两个模块有一部分程序代码重迭(只可能出现在汇编 语言中);一个模块有多个入口。2008 BUPT TSEG 北京邮电

8、大学 通信软件工程中心37模块的耦合性u公共耦合(Common Coupling) 若一组模块都访问同一个公共数据环境,则它们之间的耦 合就称为公共耦合。公共的数据环境可以是全局数据结构 、共享的通信区、内存的公共覆盖区等。公共耦合的复杂程度随耦合模块的个数增加而显著增加。 若只是两模块间有公共数据环境,则公共耦合有两种情况 。松散公共耦合和紧密公共耦合。公共耦合会引起下列问题: 所有公共耦合模块都与某一个公共数据环境内部各项的物理安排 有关,若修改某个数据的大小,将会影响到所有的模块。 无法控制各个模块对公共数据的 存取,严重影响软件模块的可靠性和适应性。 公共数据名的使用,明显降低了 程序

9、的可读性。 2008 BUPT TSEG 北京邮电大学 通信软件工程中心38模块的耦合性u外部耦合 一组模块都访问同一全局简单变量而不是同一全局数据结 构,而且不是通过参数表传递该全局变量的信息,则称之 为外部耦合。u控制耦合 如果一个模块通过传送开关、标志、 名字等控制信息,明显地控制选择另 一模块的功能,就是控制耦合。控制耦合的实质是在单一接口上选择多 功能某块中的某项功能。对所控制模块的任何修改,都会影响控 制模块且控制模块必须知道所控制模块内部的 一些逻辑关系,降低了模块的独立性。2008 BUPT TSEG 北京邮电大学 通信软件工程中心39模块的耦合性u标记耦合如果一组模块通过参数

10、表传递记录信息,就是标记 耦合。这个记录是某一数据结构的子结构,而不是简单 变量。要求这一组模块都必须清楚该数据结构,并按结构 的要求进行操作。它使在数据结构上的操作复杂化了, 应该把数据结构上的操作全部集中在一个模块中,来消 除这种耦合。p0 (x0, y0) p1 (x1, y1) 标记耦合 LINE ( p0, p1)2008 BUPT TSEG 北京邮电大学 通信软件工程中心40模块的耦合性u数据耦合如果一个模块访问另一个模块时,彼此之间是通过简单数 据参数 (不是控制参数、公共数据结构或外部变量) 来交换输 入、输出信息的,则称这种耦合为数据耦合。由于限制了只通过参数传递数据,该方式

11、开发的程序简单 、安全可靠,因此它是一种松散的耦合,模块间独立性强。u非直接耦合如果两个模块之间没有直接关系,它们之间的联系完全是 通过主模块的控制和调用来实现的,这就是非直接耦合。这种 耦合的模块独立性最强。p0 (x0, y0) p1 (x1, y1)数据耦合 LINE ( x0, y0, x1, y1)2008 BUPT TSEG 北京邮电大学 通信软件工程中心416.7 软件设计基础u自顶向下,逐步细化u系统控制结构u结构划分和结构图u数据结构u软件过程2008 BUPT TSEG 北京邮电大学 通信软件工程中心426.7.1 自顶向下逐步细化u这是Niklaus Wirth提出的设计

12、策略。u将软件的体系结构按自顶向下方式,对各 个层次的过程细节和数据细节逐层细化,直 到用程序设计语言的语句能够实现为止,从 而最后确立整个的体系结构。 最初的说明只是概念性地描述了系统的功能 或信息,但并未提供有关功能的内部实现机制 或有关信息的内部结构的任何信息。 对初始说明仔细推敲,进行功能细化或信息 细化,给出实现的细节,划分出若干成份。 2008 BUPT TSEG 北京邮电大学 通信软件工程中心436.7.2 系统控制结构u系统控制结构表明了程序构件(模块)的 组织情况。控制层次往往用程序的层次(树 形或网状)结构来表示。 反映了程序 结构的规模 和复杂程度 反映了程序 结构的控制

13、 规模多扇出意味着 需要控制和协 调许多下属模 块。 而多扇入的模 块通常是公用 模块 2008 BUPT TSEG 北京邮电大学 通信软件工程中心446.7.3 结构划分u程序结构可以按水平方向或垂直方向进行划分。 水平划分:水平划分按主要的程序功能来定义模块 结构的各个分支。 优点是:由于主要的功能相互分离,易于修改、易于扩 充,且没有副作用。缺点是:需要通过模块接口传递更多的数据,使程序流 的整体控制复杂化。 垂直划分:也叫做因子划分,主要用在程序的体系 结构中。优点是:对低层模块的修改不太可能引起副作用的传播 2008 BUPT TSEG 北京邮电大学 通信软件工程中心45结构图u在结

14、构图中,模块用矩形框表示,并用模块的名 字标记它。u模块的调用关系和接口 模块间的信息传递:当一个模块调用另一个模块时,调用模块把 数据和控制信息传送给所调用模块,以使所调用模块能够运行。 而在执行所调用模块的过程中又把它产生的数据或控制信息回送 给调用模块。 2008 BUPT TSEG 北京邮电大学 通信软件工程中心466.7.4 数据结构u数据结构是数据的各个元素之间的逻辑关系的一 种表示。数据结构设计应确定数据的组织、存取方 式、相关程度、以及信息的不同处理方法。 2008 BUPT TSEG 北京邮电大学 通信软件工程中心476.7.5 软件过程u软件过程必须提供精确的处理说明,包括

15、事件的 顺序、正确的判定点、重复的操作直至数据的组织 和结构等等。u程序结构与软件过程是有关系的。对每个模块的 处理必须指明该模块所在的上下级环境。u软件过程遵从程序结构的主从关系,因此它也是 层次化的。 2008 BUPT TSEG 北京邮电大学 通信软件工程中心486.8 软件体系结构简介u对于大规模的复杂软件系统来说,系统的 总体结构设计和规格说明比数据结构和算法 的选择重要的多。在这种背景下,人们认识 到软件体系结构的重要性。u软件体系结构研究的主要内容涉及软件体 系结构描述、软件体系结构风格、软件体系 结构评价和软件体系结构的形式化方法等。u其根本目的是要解决软件重用、软件质量 和软件维护问题。 2008 BUPT TSEG 北京邮电大学 通信软件工程中心496.8.1 软件体系结构定义uBooch & Rumbaugh & Jacobson 定义软件体系结构 = 组织,元素,

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > PPT模板库 > 教育/培训/课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号