概要设计总体设计
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
模块内聚
模块的独立性:
功能内聚 (Functional Cohesion)
一个模块中各个部分都是完成某一具体功 能必不可少的组成部分,或者说该模块中所 有部分都是为了完成一项具体功能而协同工 作,紧密联系,不可分割的。则称该模块为 功能内聚模块。
模块的独立性:
信息内聚 (Informational Cohesion)
耦合是模块之间的互相连接的紧密程度 的度量。
内聚是模块功能强度(一个模块内部各个 元素彼此结合的紧密程度)的度量。
模块独立性比较强的模块应是高内聚低 耦合的模块。
模块间的耦合
模块的独立性:
非直接耦合(Nondirect Coupling)
如果两个模块之间没有直接关系, 它们之间的联系完全是通过主模块 的控制和调用来 实现的,这就是 非直接耦合。这 种耦合的模块独 立性最强。
模块的独立性:
内容耦合 (Content Coupling)
如果发生下列情形,两个模块之间就发生 了内容耦合
(1) 一个模块直接访问另一个模块的内 部数据;
(2) 一个模块不通过正常入口转到另一 模块内部;
(3) 两个模块有一部分程序代码重迭(只 可能出现在汇编语言中);
(4) 一个模块有多个入口。
理论一:成本最小 成本
最小成本区 接口成本
开发成本
模块数目
软件设计的概念与原理 抽象化:
软件系统进行模块设计时,可有不同的抽
象层次。
在最高的抽象层次上,可以使用问题所处
环境的语言概括地描述问题的解法。
在较低的抽象层次上,则采用过程化的方
法。
模块的独立性:
模块(Module)
“模块”,又称“组件”。它一般具有 如下三个基本属性:
模块的独立性:
模块独立性
模块独立性, 是指软件系统中每个模块 只涉及软件要求的具体的子功能, 而和软 件系统中其它的模块的接口是简单的
例如, 若一个模块只具有单一的功能且 与其它模块没有太多的联系, 则称此模块 具有模块独立性
一般采用两个准则度量模块独立性。即 模块间耦合和模块内聚
模块的独立性:
公共耦合(Common Coupling)
若一组模块都访问同一个公共数据环境, 则它们之间的耦合就称为公共耦合。公共的 数据环境可以是全局数据结构、共享的通信 区、内存的公共覆盖区等。
模块的独立性:
公共耦合的复杂程度随耦合模块的个数增
加而显著增加。若只是两模块间有公共数据 环境,则公共耦合有两种情况。松散公共耦 合和紧密公共耦合。
详细的实现计划 数据库设计结果
(9) 审查与复审 技术审查 管理复审
软件设计的概念与原理 模块化:
软件系统的模块化是指整个软件被划分成
若干单独命名和可编址的部分,称之为模块。 这些模块可以被组装起来以满足整个问题的 需求。
把问题/子问题的分解与软件开发中的系
统/子系统或系统/模块对应起来,就能够 把一个大而复杂的软件系统划分成易于理解 的比较单纯的模块结构。
概要设计:
基本目标是回答“概括地讲,系 统应该如何实现?”。
概要设计的两项设计任务:
系统设计 结构设计
确定系统的具体实现方案 确定软件结构
总体设计的过程:
(1) 设想供选择的方案
需求分析阶段
数据 流图
规划不同 的自动化
边界
方案1 方案2
方案n
总体设计的过程:
(2) 选取合理的方案
方案1
征求用户意见
这种模块完成多个功能,各个功能都在同 一数据结构上操作,每一项功能有一个唯一 的入口点。这个模块将根据不同的要求,确 定该执行哪一个功能。由于这个模块的所有 功能都是基于同一个数据结构(符号表), 因此,它是一个信息内聚的模块。
模块的独立性:
信息内聚模块可以看成是多个功能内聚模
块的组合,并且达到信息的隐蔽。即把某个 数据结构、资源或设备隐蔽在一个模块内, 不为别的模块所知晓。
理论一:各个击破 设函数C(x)是问题x的复杂程度,函数E(x)
是解决问题x所需要的工作量。对于问题P1和P2:
如果C(P1)>C(P2) 显然 E(P1)>E(P2)是成立的
根据人类解决问题的经验有: C(P1+P2)>C(P1)+C(P2)
显然 E(P1+P2)>E(P1)+E(P2) 把复杂的问题分解成若干小问题,是模块 化理论之一
模块的独立性:
控制耦合 (Control Coupling)
如果一个模 块通过传送开 关、标志、名 字等控制信息, 明显地控制选 择另一模块的 功能,就是控 制耦合。
模块的独立性:
外部耦合(External Coupling)
一组模块都访问同一全局简单变量而不是 同一全局数据结构,而且不是通过参数表传 递该全局变量的信息,则称之为外部耦合。
用层次图或结构图来描述。
总体设计的过程:
(6) 数据库设计 通常的四个步骤:
模式设计 子模式设计 完整性与安全性 优化
(7) 指定测试计划 在软件开发早期考虑测试问题,能使软件
设计人员在软件设计时注意提高软件的可测 试性。
总体设计的过程:
(8) 书写文档 系统说明 用户手册 测试计划
方案2 方案n
工程规模与目标
低成本 中成本 高成本
选择的方案
总体设计的过程:
(3) 推荐最佳方案
推荐最 佳方案
详细实现计划
用户与技术 专家审查
部门负责人审批
进入结构设计
总体设计的过程:
(4) 功能分解 把复杂的功能进一步分解为一系列比较简
单的功能。以确定软件结构。
(5) 设计软件结构 软件结构是由模块组成的层次系统,通常
功能:描述该模块实现什么功能 逻辑:描述模块内部怎么做 状态:该模块使用时的环境和条件
模块的独立性:
在描述一个模块时,还必须按模块的外部
特性与内部特性分别描述
模块的外部特性
模块的模块名、参数表、其中的输入参 数和输出参数,以及给程序以至整个系统 造成的影响
模块的内部特性
完成其功能的程序代码和仅供ຫໍສະໝຸດ Baidu模块内 部使用的数据
模块的独立性:
数据耦合 (Data Coupling)
如果一个模块访问另一个模块时,彼此之 间是通过简单数据参数 (不是控制参数、公 共数据结构或外部变量) 来交换输入、输出 信息的,则称这种耦合为数据耦合。
标记耦合 (Stamp Coupling)
如果一组模块通过参数表传递记录信息, 就是标记耦合。这个记录是某一数据结构的 子结构,而不是简单变量。