当前位置:文档之家› 概要设计与详细设计

概要设计与详细设计

一组模块通过参数表传递记录信息,就是 标记耦合。这个记录是某一数据结构的子结构, 而不是简单变量。
控制耦合 (Control Coupling)
如果一个模 块通过传送开 关、标志、名 字等控制信息, 明显地控制选 择另一模块的 功能,就是控 制耦合。
外部耦合(External Coupling)
A: ………… ………… goto C1 ………… …………
C
D
C: ………… ………… C1:
…… ……
A
例2:部分代码重叠(常出现在汇
编程序中)
B
例3:一个模块有多个入口 (功能)
A: ……………… ……………… entry 1: ……………… ……………… entry 2: ……………… ………………
内聚是衡量一个模块内部各个元素彼此结合
的紧密程度。 软件工程
一个模块内部各个元素之间的联系越 紧密,它的内聚性就越高,对应地它与其 他模块之间的耦合性就会减低,模块独立 性就越强。相反,模块内聚性越低,模块 间耦合性就越强,模块的独立性也就越弱。
在软件设计中我们要追求高内聚低耦 合的模块,尽量提高模块的独立性 。
• 公共耦合的复杂程度随耦合模块的个数增 加而显著增加。若只是两模块间有公共数
据环境,则公共耦合有两种情况。松散公 共耦合和紧密公共耦合。
公共耦合 (Common coupling)
: Global : V1
Global : V1V2源自V2A:B:
A:
B:
………… ………… …………
…………
………… ………… …………
两个模块之间没有直接关系,它们之间的联系 完全是通过主模块的控制和调用来实现的。
非直接耦合的 模块独立性最 强。
数据耦合 (Data Coupling)
一个模块访问另一个模块时,彼此之间 是通过简单数据参数(不是控制参数、公共数 据结构或外部变量)来交换输入、输出信息的。
标记耦合 (Stamp Coupling)
软件工程
(1).耦合
耦合是程序结构中各个模块之间相互关联 的度量。耦合强弱取决于模块间接口的复杂程 度、调用模块的方式以及通过接口的信息。 Myers从耦合的机制上将耦合分为非直接耦合、 数据耦合、标记耦合、控制耦合、外部耦合、 公共耦合、内容耦合七种类型。
七种耦合类型关系图
非直接耦合(Nondirect Coupling)
1 概述
• 软件详细设计是软件工程的重要阶段, 软 件详细设计细化了高层的体系结构设计, 将软件结构中的主要部件划分为能独立编 码、编译和测试的软件单元,并进行软件 单元的设计,并最终将影响软件实现的成 败。优秀的详细设计在提高编码质量、保 证开发周期、节约开发成本等各方面都起 着非常重要的作用,是一个软件项目成功 的关键保证。
一组模块都访问同一全局简单变量而 不是同一全局数据结构,而且不是通过参 数表传递该全局变量的信息,则称之为外 部耦合。
公共耦合(Common Coupling)
若一组模块都访问同一个公共数据环 境,则它们之间的耦合就称为公共耦合。 公共的数据环境可以是全局数据结构、共 享的通信区、内存的公共覆盖区等。
目前,模块化方法已被广泛接受和应用, 特别是在面向对象的软件开发模式中很自然
4 软件设计的概念和原则
4.2 模块的独立性 模块独立性是软件系统中每个模块只涉
及软件要求的具体子功能.而和软件系统中 其他的模块接口是简单的。
模块的独立程度可以由模块间的耦合和
模块的内聚两个定性标准度量。耦合是衡量
不同模块彼此间互相依赖(连接)的紧密程度;
如果发生下列情形,两个模块之间就发生了内容 耦合: (1) 一个模块直接访问另一个模块的内部数据; (2) 一个模块不通过正常入口转到另一模块内部 ; (3) 两个模块有一部分程序代码重迭(只可能出 现在汇编语言中); (4) 一个模块有多个入口。
……
A
B
例1:A访问C的内部 数据或不通过
正常入口而转 入C的内部。
…………
A1=V1+V V1=B1 V1++
V2=B1+V1
2
………… …………
…………
………… ………… …………
…………
问题…:………公共部分的改动将影响所有调用它的模块; 公共部分的数据存取无法控制;
复杂程度随耦合模块的个数增加而增加。
内容耦合 (Content Coupling)
• 在详细设计前需要确认用例文档是否是最 终的文档。
• 保证概念的准确性的前提下,以界面为中 心。
4 软件设计的概念和原则
4.1 模块化 • 软件系统的模块化是指整个软件被划分成若
干单独命名和可编址的部分,称之为模块。 这些模块可以被组装起来以满足整个问题的 需求。
• 把问题/子问题的分解与软件开发中的系统 /子系统或系统/模块对应起来,就能够把 一个大而复杂的软件系统划分成易于理解的 比较单纯的模块结构。
c
内容耦合图
模块设计基础
实际上,模块之间是混合式的耦合
原则:尽量使用数据耦合,少 用控制耦合,限制公共耦合 的范围,完全不用内容耦合。
在面向对象的方法学中,对象是最基本的
模块,因此耦合主要指不同对象之间相互关
联的紧密程度。一般说来,对象之间的耦合 可分为交互耦合和继承耦合两大类。
⑵.内聚
内聚是程序结构中模块内各个元素彼此结合紧密程度的度 量。根据模块内部构成情况,可以用高、中、低把内聚分成三 类。其中高内聚有功能内聚和顺序内聚;中内聚有通信内聚、 过程内聚;低内聚有时间内聚、逻辑内聚和偶然内聚。在设计 时力争做到高内聚,并辨别出低内聚的模块,然后对其修改, 提高模块的内聚程度,从而得到高内聚独立性强的模块。
模块化是软件设计的一个基本准则
高层模块
分解
从整体上把握 问题,隐蔽细节
复杂问题
较小问题
分解
可减小解题所需的总的工作
在软件设计阶段通常首先要确定模块的 外部特性,这就是软件总体设计需要解决的 问题。然后再确定模块的内部特性,这就是 软件详细设计需要解决的问题。
模块化就是把程序划分成若干个模块, 每个模块具有一个子功能,把这些模块集成 起来构成一个整体,可以完成指定的功能, 实现问题的求解。
2 详细设计的基本任务
• 详细设计是概要设计的进一步的具体化, 主要确定每个模块的具体执行过程,故也 称为过程设计。其基本任务有:
1.为每个模块进行详细的算法设计。 2.为模块内的数据结构进行设计。 3.对数据库进行物理设计 。 4.界面设计。 5.其它设计。 6.编写文档。 7.评审。
3 详细设计流程
相关主题