模块和模块化 PPT

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
应该允许不同的设计者使用他们喜欢的 技巧,只要他们的文档能让其他设计者 明白就可以了。 设计方法的选择又是取决于设计者的偏 好,而更多的时候取决于系统要求的结 构或数据。
大家好
15
软件设计中涉及的问题
抽象(abstract)与细化(refinement)
–抽象:分层次考虑和处理问题(数据和过程 )
–细化:从高到低的逐步分解过程
信息隐藏
–对其它模块隐藏模块内部的数据和过程
大家好
16
抽象
抽象是对具体对象(问题)进行概括,抽出 这一类对象的公共性质并加以描述的过程。
–先注意问题的本质及描述,其次是实现过程或细 节。
–数据抽象:描述某类对象的属性或状态(对象相 互区别的物理量)。
–代码抽象:描述某类对象的共有的行为特征或具 有的功能。
大家好
19
分解(Decomposition)
模块化是为了使一个复杂的大型程序能 被人的智力所管理
设函数c(x)定义问题x的复杂程度,函 数E(X)确定解决问题x需要的工作量( 时间)。对于两个问题P1 和P2,如果
C(P1)C(P2)
显然
E(P 1)E(P2)
大家好
20
模块化的依据
人类解决一般问题时一个有趣的规律:
结构图的基本成分有:模块、调用和数 据
大家好
6
模块是指具有一定功能并可以用模块名调 用的一组程序语句,如函数、子程序等, 它们是组成程序的基本单元
一个模块具有其外部特征和内部特征
–外部特征包括:模块的接口(模块名、输入/输 出参数、返回值等)和模块的功能
–内部特征包括:模块的内部数据和完成其功能 的程序代码
总成本
软 件
最小成本区

M


接口成本


模块成本
模块数
大家好
23
模块划分的基本原则
概括了把软件划分为模块时要遵守的准 则,也是判断模块构造是不是合理的标 准。 但是到目前为止,没有统一的标准判断 一个系统化分成几个模块是最优的。
大家好
24
模块划分的四项基本原则
1.模块独立性强
– 块内联系强
– 块间联系弱
C (P1+P2)>C (P1)+C (P2) E (P1+P2)>E (P1)+E (P2) 结论:各个击破——把复杂的问题分解 成容易解决的小问题,原来的问题也就 容易解决了
大家好
21
问题提出
如果无限的分割软件,最后为了开发 软件而需要的工作量也就小得可以忽 略了。

大家好
22
模块数与开发工作量的关系
概要设计的表示形式
大家好
1
正文加工系统的层次图
Байду номын сангаас
大家好
2
带编号的层次图( HIPO )
与层次图( H )中每个方框相对应(按编号),都有一 张IPO图描述该框代表的模块大的家处好 理过程,称为HIPO图。 3
IPO图的一个例子
大家好
4
软件的模块结构图:
大家好
5
描述一个软件系统由哪些模块组成,以 及模块之间的调用关系
在结构图中,模块用矩形框表示,每个模 块都有一个应能适当反映该模块功能的名 字
大家好
7
调用(call):用从一个模块指向另一 个模块的箭头来表示,其含义是前者 调用了后者
–为了方便,有时常用直线替代箭头,此时,表 示位于上方的模块调用位于下方的模块
数据(data):模块调用时需传递的参 数可通过在调用箭头旁附加一个小箭 头和数据名来表示,其中小箭头的方 向是数据的传输方向
大家好
27
内聚与耦合
内聚和耦合是相互关联的。在程序结构 中各模块的内聚程度越高,模块间的耦 合程度就越低。但这也不是绝对的。软 件概要设计的目标是力求增加模块的内 聚,尽量减少模块间的耦合,但增加内 聚比减少耦合更重要,应当把更多的注 意力集中到提高模块的内聚程度上来。
–模块的扇入扇出会影响结构图的深度和宽度 ,例如减少模块的扇出,可能导致宽度变小 而深度增加
一个模块的扇出过大通常意味着该模块比较复 杂,然而扇出太少,可能导致深度的增加
–一般情况,一个模块的扇出以3~9为宜
一个模块的扇入表示有多少模块可直接调用它 ,它反映了该模块的复用(reuse)程度,因此 模块的扇入越大越好
–抽象的实现:通过类的声明。
大家好
17
模块化设计的好处
信息隐藏 从不同角度了解系统 将难以解决的问题独立出来;抽象层次 通过逐层分析来了解问题 允许不同的模块采用不同的设计方法
大家好
18
模块化设计
把大型软件按照规定的原则划分成一个个 较小的、相对独立但又相互关联的模块 重要指导思想:
–分解 –模块独立性
2.高内聚
–模块内部各成分之间
3.低耦合
–一个模块与其它模块之间
4.公共(共享)模块
–多个模块公用
大家好
25
模块独立性
问什么模块的独立性很重要?
–有效模块化的软件容易开发出来 –独立的模块比较容易测试和维护
人的独立性强如何? 人没有独立性,什么都依赖别人如何?
大家好
26
内聚
内聚是模块功能强度(一个模块内部 各个元素彼此结合的紧密程度)的度 量。一个模块内部各个元素之间的联 系越紧密,则它的内聚性就越高,相 对地,它与其他模块之间的耦合就会 减低,而模块独立性就越强。
大家好
8
SC图的模块调用
✓ 简单调用
A
X,Y
Z
Z
B
C
(a)
A
1
2
B
C
(b)
简单调用的两种表示法
大家好
9
✓选择调用
A
B
C
D
❖注意:图中必须画出数据流
大家好
10
✓循环调用
A
B
C
❖注意:图中必须画出数据流
大家好
11
结构图的几个概念
深度:程序结构图中控制的层数,例如图 中所示的结构图的深度是5
宽度:程序结构图中同一层次上模块总数 的最大值,例如图中所示的结构图的宽度 为7
大家好
13
模块和模块化
模块化:当系统的每项功能恰好由一个输入输 出都明确定义的组件完成的时候,我们称这个 系统模块化。
模块——表示能够用计算机程序代码实现的, 相对独立的单一数据处理功能,所以模块有时 也叫功能模块。
进一步明确模块是拥有明确定义的输入、输出 和特性的程序实体。
大家好
14
设计方法的选择
扇出(fan out):该模块直接调用的模块数 目。例如,例如图中模块M的扇出是4,模 块A的是2,模块B的扇出是1
扇入(fan in):能直接调用该模块的模块 数目。例如图中模块G的扇入是1,模块I的 扇入是2,模块R的扇入是4
大家好
12
深度和宽度在一定程度上反映了程序的规模和 复杂程度
–相对而言,如果程序结构图的深度和宽度较 大,则说明程序的规模和复杂程度都较大。
相关文档
最新文档