概要设计与详细设计页PPT文档

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