第五章总体设计(事务分析的映射方法实例)
软件工程导论课件之第5章总体设计

} n 继续对3.1和4.1细化,直到每个语句都能用程序设计语
言来表示
软件工程导论课件之第5章总体设计
逐步求精的作用: n 它能帮助软件工程师把精力集中在与当前开发
阶段最相关的那些方面上,而忽略那些对整体 解决方案来说虽然是必要的,然而目前还不需 要考虑的细节。 n 逐步求精方法确保每个问题都将被解决,而且 每个问题都将在适当的时候被解决,但是,在 任何时候一个人都不需要同时处理7个以上知 识块。
软件工程导论课件之第5章总体设计
5.2.5 模块独立
模块独立: n 模块独立的概念是模块化、抽象、信息隐藏和
局部化概念的直接结果。 n 希望这样设计软件结构,使得每个模块完成一
个相对独立的特定子功能,并且和其他模块之 间的关系很简单。
软件工程导论课件之第5章总体设计
模块独立的重要性: n 有效的模块化(即具有独立的模块)的软件比较
软件工程导论课件之第5章总体设计
n 上述框架中每一个加工语句都可进一步细化
n main() { /*建立2到100的数组A[ ],其中A[i]=i*/ ………..………1 for (i = 2;i <= 100;i++)A[i] = i; /* 建立2到10的素数表B[ ],存放2到10以内的素数*/ ….2 B[1] =2; B[2] = 3; B[3] = 5; B[4] = 7; /*若A[i]=i是B[ ]中任一数的倍数,则剔除A[i]*/ .…..….3 for (j = 1; j <= 4; j++) 检查A[]所有数能否被B[j]整除并将其从A[]剔除;.....3.1 /*输出A[ ]中所有没有被剔除的数*/ …………………….4 for (i = 2; i <= 100; i++) 若A[i]没有被剔除,则输出之……………………..…..4.1
软件工程导论 第5章 总体设计

第五章总体设计经过需求分析阶段的工作,系统必须“做什么”已经清楚了,现在是决定“怎样做”的时候了。
总体设计的基本目的就是回答“概括地说,系统应该如何实现?”这个问题,因此,总体设计又称为概要设计或初步设计。
通过这个阶段的工作将划分出组成系统的物理元素——程序、文件、数据库、人工过程和文档等等,但是每个物理元隶仍然处于黑盒子级,这些黑盒子里的具体内容将在以后仔细设计。
总体设计阶段的另一项重要任务是设计软件的结构,也就是要确定系统中每个程序是由哪些模块组成的,以及这些模块相互间的关系。
总体设计过程首先寻找实现目标系统的各种不同的方案,需求分析阶段得到的数据流图是设想各种可能方案的基础。
然后分析员从这些供选择的方案中选取若干个合理的方案,为每个合理的方案都准备一份系统流程图,列出组成系统的所有物理元素,进行成本/效益分析,并且制定实现这个方案的进度计划。
分析员应该综合分析比较这些合理的方案,从中选出一个最佳方案向用户和使用部门负责人推荐。
如果用户和使用部门的负责人接受了推荐的方案,分析员应该进一步为这个最佳方案设计软件结构,通常,设计出初步的软件结构后还要多方改进,从而得到更合理的结构,进行必要的数据库设汁,确定测试要求并且制定测试计划。
从上面的叙述中不难看出,在详细设计之前先进行总体设计的必要性:可以站在全局高度上,花较少成本,从较抽象的层次上分析对比多种可能的系统实现方案和软件结构,从中选出最佳方案和最合理的软件结构,从而用较低成本开发出较高质量的软件系统。
5.1 设计过程总体设计过程通常由两个主要阶段组成:系统设计阶段,确定系统的具体实现方案;结构没计阶段,确定软件结构。
典型的总体设计过程包括下述9个步骤:1.设想代选择的方案如何实现要求的系统呢,在总体设计阶段分析员应该考虑各种可能的实现方案,并且力求从中选出最佳方案。
在总体设计阶段开始时只有系统的逻辑模型,分析员有充分的自由分析比较不同的物理实现方案,一旦选出了最佳的方案,将能大大提高系统的性能/价格比。
第5章 总体设计

第 5 章 总 体 设 计
通信内聚:如果模块中所有元素都使用同一个输入数
据和(或)产生同一个输出数据,则称为通信内聚。
25
软 件 工 程
高内聚也有两类: 顺序内聚:如果一个模块内的处理元素和同一个功 能密切相关,而且这些处理必须顺序执行(通常一个 处理元素的输出数据作为下一个处理元素的输入数 据),则称为顺序内聚。
设 计
8
软 件 工 程
5. 设计软件结构
通常程序中的一个模块完成一个适当的子功能。应该把 模块组织成良好的层次系统,顶层模块调用它的下层模块以 实现程序的完整功能,每个下层模块再调用更下层的模块, 从而完成程序的一个子功能,最下层的模块完成最具体的功 能。软件结构(即由模块组成的层次系统)可以用层次图或结 构图来描绘,第5.4节将介绍这些图形工具。
逻辑内聚:如果一个模块完成的任务在逻辑上属于 相同或相似的一类,则称为逻辑内聚。
第 5 章 总 体 设 计
时间内聚:如果一个模块包含的任务必须在同一段 时间内执行,就叫时间内聚。
24
软 件 工 中内聚主要有两类: 程
过程内聚:如果一个模块内的处理元素是相关的,而 且必须以特定次序执行,则称为过程内聚。 (使用程序流程图作为工具设计软件时,常常通过研究 流程图确定模块的划分,这样得到的往往是过程内聚 的模块)
第 5 章 总 体 设 计
如果数据流图已经细化到适当的层次,则可以直接从数 据流图映射出软件结构,这就是第5.5节中将要讲述的面向 数据流的设计方法。
9
软 件 工 程
6. 设计数据库
对于需要使用数据库的那些应用系统,软件 工程师应该在需求分析阶段所确定的系统数据需 求的基础上,进一步设计数据库。 在数据库课中已经详细讲述了设计数据库的 方法,本书不再赘述。
软件工程 总体设计PPT课件

于公共耦 的物理安
合,区 排。
别在于在
外部耦合
中不存在依
赖
设
计
原
理
**
28
第28页/共80页
(6)公共耦合
• 若一组模块都访问同一个公共数据环境,则它们
5.2
之间的耦合就称为公共耦合。
软 件
• 公共的数据环境可以是全局数据结构、共享的通 信区、内存的公共覆盖区等。
设
• 这种耦合会引起下列问题:
计 原
过
过程设计确定每个模块的处理过程。
程
• 为确定软件结构,首先需要从实现角度把复杂的功
能进一步分解。一般说来,经过分解之后应该使每
个功能对大多数程序员而言都是明显易懂的。功能 9 第9页/共80页
5.1.5 设计软件结构
• 通常程序中的一个模块完成一个适当的子功
能。
5.1
总
• 应该把模块组织成良好的层次系统,顶层模
**
上的操作全部集中在一个模块中,就可以消除
这种耦合。
26
第26页/共80页
(4)控制耦合
5.2
• 如果一个模块通过传送开关、标志、名字等控
软
制信息,明显地控制选择另一模块的功能,就
件
是控制耦合。
设
• 这种耦合的实质是在单一接口上选择多功能模块
计
中的某项功能。
原
理
• 对所控制模块的任何修改,都会影响控制模块。
• 总体设计阶段的另一项重要任务是设计软件的结构,也 就是要确定系统中每个程序是由哪些模块组成的,以及 这些模块相互间的关系。
总体设计的意义
• 在详细设计之前进行总体设计可以站在全局高度上,花 较少成本,从较抽象的层次上分析对比多种可能的系统 实现方案和软件结构,从中选出最佳方案和最合理的软 件结构,从而用较低成本开发出较高质量的软件系统。
软件工程导论知识点总结(整理)

《软件工程导论》课后习题答案第一章软件工程概论1.什么是软件危机?软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。
这些问题表现在以下几个方面:(1)用户对开发出的软件很难满意。
(2)软件产品的质量往往靠不住。
(3)一般软件很难维护。
(4)软件生产效率很低。
(5)软件开发成本越来越大。
(6)软件成本与开发进度难以估计。
(7)软件技术的发展远远满足不了计算机应用的普及与深入的需要。
2.为什么会产生软件危机?(1)开发人员方面,对软件产品缺乏正确认识,没有真正理解软件产品是一个完整的配置组成。
造成开发中制定计划盲目、编程草率,不考虑维护工作的必要性.(2) 软件本身方面,对于计算机系统来说,软件是逻辑部件,软件开发过程没有统一的、公认的方法论和规范指导,造成软件维护困难。
(3) 尤其是随着软件规模越来越大,复杂程度越来越高,原有软件开发方式效率不高、质量不能保证、成本过高、研制周期不易估计、维护困难等一系列问题更为突出,技术的发展已经远远不能适应社会需求。
3.怎样克服软件危机?(1)充分吸收和借鉴人类长期以来从事各种工程项目中积累的行之有效的有效原理、概念、技术与方法,特别是吸取几十年来人类从事计算机硬件研究和开发的经验教训.在开发软件的过程中努力作到良好的组织,严格的管理,相互友好的协作。
(2) 推广在实践中总结出来的开发软件的成功的技术和方法,并研究更好、更有效的技术和方法,尽快克服在计算机系统早期发展阶段形成的一些错误概念和作法。
(3)根据不同的应用领域,开发更好的软件工具并使用这些工具。
将软件开发各个阶段使用的软件工具集合成一个整体,形成一个很好的软件开发支环环境.总之为了解决软件危机,既要有技术措施(方法和工具),又要有必要的组织管理措施。
4.构成软件项目的最终产品:应用程序、系统程序、面向用户的文档资料和面向开发者的文档资料.5.什么是软件生存周期?软件生存周期是指从软件定义、开发、使用、维护到淘汰的全过程。
第5章 总体设计

8
设计原理(续1)
◆设计示例: “用 AND, OR, and NOT 门构
建的计算机。 ”
chip1
chip2
◆第一种设计:设计师 设计三个功能芯片
chip3
2013-7-16
上海大学计算机学院
9
设计原理(续2)
◆第二种设计:每芯片一种门
2013-7-16
上海大学计算机学院
10
设计原理(续3)
2013-7-16
上海大学计算机学院
16
耦合(续1)
1. 内容耦合
● 一个模块直接引用另一个模块的内容 ● 示例
模块a修改模块b的语句 模块 a的分支转移到模块 b的局部标号
● 缺点
模块b的任何变化都要求变化a
2013-7-16
上海大学计算机学院
17
耦合(续2)
2. 共用耦合
● 两模块存取相同的数据 ● 示例
第5章 总体设计
◆设计任务
◆设计过程
◆设计原理
◆启发规则
◆图形工具 ◆面向数据流的设计
2013-7-16
上海大学计算机学院
1
总体设计的任务
◆“概括地说,系统应该如何实现?”
◆总体设计阶段的任务
●系统划分: 程序、文件、数据库、人工过程和文档等 ●设计软件的结构
每个程序是由哪些模块组成,以及这些模块相互间的关系。
2013-7-16
上海大学计算机学院
26
内聚(续4)
4. 过程性内聚
●一个模块内的处理元素是相关的,而且必须以特定次 序执行. ●示例
Function { read part number from database update repair record on master file }
总体设计

第 5 章 总体设计
a. 偶然内聚 如果一个模块完成一组任务, 如果一个模块完成一组任务,这些任务彼此之 间即使有关系,关系也是松散的, 间即使有关系,关系也是松散的,这种内聚称为偶 然内聚。 然内聚。 b. 逻辑内聚 如果一个模块完成的任务在逻辑上属于相同或 相似的一类,则称为逻辑内聚。 相似的一类,则称为逻辑内聚。 c. 时间内聚 如果一个模块包含的任务必须在同一段时间内 执行,就叫时间内聚。 执行,就叫时间内聚。
第 5 章 总体设计 5.2.2 抽象
在现实世界中一定事物、 在现实世界中一定事物、状态或过程之 间总存在着某些相似的方面, 间总存在着某些相似的方面,把这些相似 的方面集中和概括起来, 的方面集中和概括起来,暂时忽略它们之 间的差异,就是抽象。 间的差异,就是抽象。
第 5 章 总体设计
例 考虑适用于低级CAD的图形软件包 抽象Ⅰ 该CAD软件系统配有能与绘图员进行可 视化通信的图形界面,能用鼠标代替绘图工具,画 各种直线和曲线;能完成所有几何计算以及所有截 面视图和辅助视图的设计。图形设计的结果存在图 形文件中,图形文件可包含几何的、正文的和其他 各种补充设计信息。 抽象Ⅱ 软件任务: 用户界面任务; 创建二维图形任务; 显示图形任务; 管理图形文件任务。
第 5 章 总体设计
总体设计的目的: 总体设计的目的: 回答“概括地说,系统应该如何实现? 回答“概括地说,系统应该如何实现?”。 总体设计的任务: 总体设计的任务: 1. 划分出组成系统的物理元素—— 程序、文件、 划分出组成系统的物理元素—— 程序、文件、 数据库、人工过程和文档。 数据库、人工过程和文档。 2. 设计软件结构,也就是要确定系统中每个程 设计软件结构, 序是由哪些模块组成的, 序是由哪些模块组成的,以及这些模块相互之间 的关系。 的关系。
软件工程知识梳理3-总体设计

总体设计(概要设计)总体设计的基本目的是回答“概括地说,系统应该如何实现”这个问题,因此总体设计又称为概要设计或初步设计。
本阶段的工作讲划分出组成系统的物理元素:程序、文件、数据库、人工过程和文档等,但是每个物理元素仍然处于黑盒子级,这些黑盒子里面的具体内容将在后面的详细设计完成。
两个阶段:系统设计:确定系统具体实现方案结构设计:确定软件结构九个步骤:1.设想供选择的方案2.选取合理的方案3.推荐最佳方案——>进入下一个阶段结构设计4.功能分解:先进行结构设计确定软件结构,然后进行过程设计5.设计软件结构6.设计数据库7.制定测试计划8.书写文档:系统说明、用户手册、测试计划、详细的实现计划、数据库设计结果9.审查和复审设计原理1.模块化:把程序划分程独立命名且可独立访问的模块,每个模块完成一个子功能,再把这些模块集成起来构成一个整体,可以完成指定的功能以满足用户需求。
(分治)2.抽象:3.逐步求精:4.信息隐藏和局部化:5.模块独立:耦合、内聚启发规则:经验之谈!1.改进软件结构提高模块独立性2.模块规模应该适中3.深度、宽度、扇出和扇入都应适当4.模块的作用域应该在控制域之内5.力争降低模块接口的复杂程度6.设计单入口单出口的模块7.模块功能应该可以预测描绘软件结构的图形工具1.层次图和HIPO图2.结构图面向数据流的设计方法在软件工程的需求分析阶段,信息流是一个关键考虑,通常用数据流图描绘信息在系统中加工和流动的情况。
面向数据流的设计方法定义了一些不同的“映射”,利用这些映射可以把数据流图变换成软件结构。
因为任何软件系统都可以使用数据流图表示,所以面向数据流的设计方法在理论上可以设计任何软件结构。
通常所说的结构化设计方法(SD方法)就是基于数据流的设计方法。
信息流—>软件结构,信息流的类型决定了映射的方法,信息流有两种:变换流和事务流。
变换分析:一系列设计步骤的总称,经过这些步骤把具有变换流特点的数据流图按预先确定的模式映射成软件结构。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
5 .3 启发规则
改进原则 :高内聚、低耦合 ① 改进软件结构,提高模块独立性 ② 模块规模适中 ③ 深度、宽度、扇出和扇入适中 ④ 将模块的影响限制在控制范围内 ⑤ 降低模块接口的复杂性 ⑥ 设计单入口单出口的模块 ⑦ 模块功能可预测
5 . 4 . 1 层次图和 HIPO 图 描述软件的层次结构。 层次图中,一个方框代表一个模块,方框间 的连线表示调用关系。 HIPO 图=层次图+ IPO 图
正文加工系统
主控模块
层次图
酒店管理信息系统功能结构图
5.4.2 结构图(SC Structure Chart)
主要成分说明: 一个方框表示一个模块; 一个模块指向另一个模块的箭头或直线,表示前 一模块对后一模块的调用; 调用直线边的小箭头,表示调用时从一个模块传 给另一个模块的数据,也指出了传送方向。
1 、什么是模块独立性( module independence) 模块只完成系统要求的相对独立的功能 符合信息隐蔽原则 模块间关联和依赖程度尽量小 2 、模块独立的优点 容易开发、测试和维护
3 、衡量模块独立性的两个准则
① 耦合性( coupling ) ② 内聚性( cohesion )
① 耦合性( coupling )
① 什么是抽象? 认识复杂事物和现象 时,抽出事物本质的 共同特 性而暂不考虑 宜宾学院 它们的细节。 宜宾学院计算机 ② 软件开发中的抽象 学院学生 过程的抽象 宜宾学院计算机 学院08级学生 数据的抽象
抽象
什么是抽象思想?
在认识事物、分析和解决问题的过程中,忽略 那些与当前研究目标不相关的部分, 以便将注 意力集中于与当前目标相关的方面
逐步求精的例子
外表
抽象
形体
衣着
性格
头发 脸形
领带
逐步求精
自顶向下,逐步求精的基本思想
将功能、信息的说明分为多个层次,最高 层也最抽象 ― 仅仅只是概念性地描述功能或 信息,不提供功能的内部工作情况或信息的 内部结构; 设计者从最高层开始,仔细推敲,进行功 能和信息的细化,给出下层实现的细节; 随着每个后续细化逐步的完成,提供越来 越多的细节,最终得出用程序设计语言表达 的程序。
重点和难点
重点: 软件设计过程中应遵循的基本原理; 面向数据流的设计方法 难点: 变换分析、事务分析法的过程和应用
软件设计的目标和任务
软件需求:解决“做什么” 软件设计:解决“怎么做”. 软件设计的任务:以软件需求规格说明书为 依据,着手实现软件的需求,并将设计的结 果反映在“设计规格说明书”文档中。 软件设计的重要性:是软件开发阶段的第一 步,最终影响软件实现的成败和软件维护的 难易程度。
控制耦合举例
去除模块间控制耦合的方法
控制藕合增加了理解和编程的复杂性,调用 模块必须知道被调模块的内部逻辑,增加了 相互依赖。解决方法: ( 1 )将被调用模块内的判定上移到调用模块 中进行 ( 2 )被调用模块分解成若干单一功能模块
改控制藕合为数据藕合举例来自特征耦合两个模块通过传递数据结构加以联系,或都 与一个数据结构有关系,则称这两个模块间 存在特征耦合。 可能出现的情况:当把整个数据结构作为参 数传递时,被调用的模块虽然只需要使用其 中的一部分数据元素,但实际可以使用的数 据多于它真正需要的数据,这将导致对数据 访问失去控制,
② 内聚性( cohesion )
又称块内联系。指一个模块内部各个元素彼 此结合的紧密程度的度量。 若一个模块内各元素(语句之间、程序段之 间)联系的越紧密,则它的内聚性就越. 设计目标:高内聚
巧合内聚(偶然内聚)
块内各组成成份在功能上是互不相关的。
模块 M 中的三个语句没有任何联系。 缺点:可理解性差,可修改性差
软件设计的两个阶段
第一阶段:概要设计(总体设计) 根据软件需求,设计软件系统结构和数据结 构,确定程序的组成模块及模块之间的相互 关系。 回答“概括地说,系统应该如何实现?”。 其重要性是:站在全局高度,从较抽象的层 次上分析对比多种可能的系统实现方案和软 件结构,从中选出最佳方案和最合理的软件 结构,从而用较低成本开发出较高质量的软 件系统。
SC 中的四种模块
从下属模块 取得数据, 经过处理, 再传入上级 模块
从上级模块 获得数据, 经过处理, 再传送给下 属模块
加工模块。 从上级模块 对所有下属 模块进行协 获得数据, 经过处理, 调和管理的 模块 转换成其他 形式,再送 回上级模块。
软件工程
第五章总体设计
第五章总体设计
5 . 1 设计过程 5 . 2 设计原理 5 . 3 启发规则 5 . 4 描绘软件结构的图形工具 5 . 5 面向数据流的设计方法 5 . 6 小结 习题
学习要求
掌握: 1 、软件设计过程中应遵循的基本原理和相 关概念; 2 、描绘软件结构的图形工具的运用; 3 、面向数据流设计方法概念;变换分析、 事务分析法过程和应用。 理解: 1 、典型的总体设计过程包括的步骤; 2 、设计中的启发式规则;
③ 深度、宽度、扇出和扇入适中
软件结构度量术语
例:避免平铺结构
增加中间层降低扇出
④ 将模块的影响限制在控制范围内
作用域是指受模块内一个判定影响的所有模块的集 合 控制域是指这个模块本身及其所有的下属模块的集 合
A A 受 E 中判 定影响 B C D C A A D
E
F
F
E
B
使任一模块的作用域在其控制域内
软件开发实际上就是一个从高层次抽象到低 层次抽象逐步过渡的过程。 一个复杂的系统先用一些高级的抽象概念构 造和理解,这些高级概念又用较低级的概念 构造和理解,如此进行下去,直到具体元素。
抽象例子
外表 抽象 形体 衣着 性格
5 . 2. 3 逐步求精
逐步求精:为了能集中精力解决主要问题而 尽量推迟对问题细节的考虑。 可把逐步求精看作是一项把一个时期内必须 解决的种种问题按优先级排序的技术。 逐步求精是一种自顶向下的设计策略,按这 种设计策略,程序的体系结构是通过逐步精 化处理过程的层次而设计出来的。
① 改进软件结构,提高模块独立性
通过模块分解或合并,降低耦合提高内聚
② 模块规模适中
模块过大:可理解程度下降 模块过小:开销大于有效操作系统接口复杂 在考虑模块的独立性同时,为了增加可 理解性,模块的大小最好在 50 一 150 条语 句左右,可以用 1 一 2 页打印纸打印,便于 人们阅读与研究。
软件设计的两个阶段
第二阶段:详细设计(过程设计) 确定模块内部的算法和数据结构;选定某种 过程的表达形式来描述各种算法;产生精确 描述各模块程序过程的详细文档,并进行评 审。
将需求分析摸型转换为软件设计
软件结构设计以需求分析中得到的数据流图 为基础而进行。
SA与SD的关系
第一个阶段总体设计的任务
也称块间的联系。是对软件系统结构中,各 模块间相互联系紧密程度的一种度量。 设计目标:低耦合
无直接藕合
两个模块没有直接关系,模块独立性最强。
数据耦合
属松散耦合。一模块访问另一模块时,通过 数据参数交换输入、输出信息。
控制藕合
模块之间传递的是控制信息(如开关、标志、 名字等),控制被调用模块的内部逻辑。
模块 C 的控制范围: C、D、E、F、 G、H。 如果模块 C 作出的 决策影响了模块 L , L超出了 C 的控制 范围
⑤ 降低模块接口的复杂性
接口传递信息应简单且和模块功能一致。 模块的接口要简单、清晰、含义明确,便于 理解,易于实现、测试与维护。
⑥ 设计单入口单出口的模块
不要使模块间出现内容耦合。
逻辑内聚
把几种相关功能(逻辑上相似的功能)组合 在一模块内,每次调用由传给模块的参数确 定执行哪种功能。
逻辑内聚模块
时间内聚(经典内聚)
模块完成的功能必须在同一时间内执行,这 些功能只因时间因素关联在一起。 例:初始化系统模块 系统结束模块、 紧急故障处理模块等
过程内聚(顺序性组合)
模块内各处理成分相关,且必须以特定次序 执行。
⑦ 模块功能可预测,但防止模块功 能过分局限
如果一个模块可以当作一个黑盒子,相同输 入产生相同输出,其功能为可预测的。 若模块带有内部“存储器”,其功能可能是 不可预测的,难理解、难测试、难维护。 单一的模块具有高内聚。但模块功能过分局 限,可使用范围将过分狭窄,缺乏灵活性和 扩充性。
5 .4 描绘软件结构的图形具
特征耦合举例
说明: “住户情况”是一个数据结构,图中模块都与此 数据结构有关。 “计算水费”和“计算电费”本无关,由于引用 了此数据结构产生依赖关系,它们之间也是标记偶 合。
将特征耦合修改为数据耦合举例
公共环境耦合
一组模块引用同一个公用数据区(也称全局 数据区、公共数据环境)。 公共数据区指: 全局数据结构。 共享通讯区。 内存公共覆盖区等
③ 模块化与软件成本的关系
接口
④ 模块的基本属性
接口:指模块的输入与输出。 功能:指模块实现什么功能。 模块化好处: 模块化使软件容易测试和调试,因而有助 提高软件的可靠性。 模块化能提高软件的可修改性。 模块化有助于软件开发工程的组织管理。
5.2.2 抽象( Abstraction )
结合了模块化和逐步细化思想建立的软件结构图
5 . 2.4信息隐蔽和局部化
信息隐蔽:在设计和确定模块时,使得一个 模块内包含的信息(过程或数据),不允许 其它不需要这些信息的模块访问,独立的模 块间仅仅交换为完成系统功能而必须交换的 信息。 局部化:将一些关系密切的软件元素物理地 放得彼此靠近。
5. 2 . 5 模块独立