第五章总体设计

合集下载
相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

思路决定出路! 思路决定出路!
30
无直接藕合
两个模块没有直接关系,模块独立性最强。 两个模块没有直接关系,模块独立性最强。
思路决定出路! 思路决定出路!
31
数据耦合
属松散耦合。一模块访问另一模块时, 属松散耦合。一模块访问另一模块时,通过 数据参数交换输入、输出信息。 数据参数交换输入、输出信息。
思路决定出路! 思路决定出路!
16
② 模块化的优点
模块化是软件解决复杂问题所具备的手段, 模块化是软件解决复杂问题所具备的手段, 可降低软件复杂性,减少开发工作量,从而 可降低软件复杂性,减少开发工作量, 降低开发成本,提高软件生产率, 降低开发成本,提高软件生产率,是模块化 的依据。 的依据。
思路决定出路! 思路决定出路!
思路决定出路! 思路决定出路!
6
软件设计的两个阶段
第二阶段:详细设计(过程设计) 第二阶段:详细设计(过程设计) 确定模块内部的算法和数据结构; 确定模块内部的算法和数据结构;选定某种 过程的表达形式来描述各种算法; 过程的表达形式来描述各种算法;产生精确 描述各模块程序过程的详细文档, 描述各模块程序过程的详细文档,并进行评 审。
思路决定出路! 思路决定出路!
19
5.2.2 抽象( Abstraction )
什么是抽象? ① 什么是抽象? 认识复杂事物和现象 时,抽出事物本质的 共同特 性而暂不考虑 宜宾学院 它们的细节。 它们的细节。 宜宾学院计算机 ② 软件开发中的抽象 学院学生 过程的抽象 宜宾学院计算机 学院08级学生 学院 级学生 数据的抽象
34
去除模块间控制耦合的方法
控制藕合增加了理解和编程的复杂性, 控制藕合增加了理解和编程的复杂性,调用 模块必须知道被调模块的内部逻辑,增加了 模块必须知道被调模块的内部逻辑, 相互依赖。解决方法: 相互依赖。解决方法: ( 1 )将被调用模块内的判定上移到调用模块 中进行 ( 2 )被调用模块分解成若干单一功能模块
思路决定出路! 思路决定出路!
10
① 制定规范
为软件开发小组制定在进行软件设计, 为软件开发小组制定在进行软件设计,应该 共同遵守的标准,以便协调组内各员的工作。 共同遵守的标准,以便协调组内各员的工作。
思路决定出路! 思路决定出路!
11
② 软件结构设计
包括: 包括: 将系统按功能划分成模块 确定每个模块的功能 确定模块之间的调用关系 确定模块之间的接口, 确定模块之间的接口,即模块之间传递的 信息 评价模块结构的质量
思路决定出路! 思路决定出路!
12
③ 处理方式设计
包括: 包括: 功能设计:确定实现功能法, 功能设计:确定实现功能法,评估算法的性 能. 性能设计: 性能设计:确定实现性能需求必须的算法和 模块间的控制方式
思路决定出路! 思路决定出路!
13
5.1 设计的过程
思路决定出路! 思路决定出路!
14
5. 2 设计原理
思路决定出路! 思路决定出路!
27
5. 2 . 5 模块独立
1 、什么是模块独立性( module 什么是模块独立性( independence) 模块只完成系统要求的相对独立的功能 符合信息隐蔽原则 模块间关联和依赖程度尽量小 2 、模块独立的优点 容易开发、 容易开发、测试和维护
思路决定出路! 思路决定出路!
思路决定出路! 思路决定出路!
23
逐步求精的例子
外表
抽象
形体
衣着
性格 逐步求精
头发 脸形
领带
思路决定出路! 思路决定出路!
24
自顶向下,逐步求精的基本思想
将功能、信息的说明分为多个层次, 将功能、信息的说明分为多个层次,最高 仅仅只是概念性 概念性地描述功能或 层也最抽象 ― 仅仅只是概念性地描述功能或 信息, 信息,不提供功能的内部工作情况或信息的 内部结构; 内部结构; 设计者从最高层开始,仔细推敲, 设计者从最高层开始,仔细推敲,进行功 能和信息的细化,给出下层实现的细节 层实现的细节; 能和信息的细化,给出下层实现的细节; 随着每个后续细化逐步的完成, 随着每个后续细化逐步的完成,提供越来 越多的细节, 越多的细节,最终得出用程序设计语言表达 的程序。 的程序。
思路决定出路! 思路决定出路!
35
改控制藕合为数据藕合举例
思路决定出路! 思路决定出路!
36
特征耦合
两个模块通过传递数据结构加以联系, 两个模块通过传递数据结构加以联系,或都 数据结构加以联系 与一个数据结构有关系,则称这两个模块间 与一个数据结构有关系, 数据结构有关系 存在特征耦合。 存在特征耦合。 可能出现的情况:当把整个数据结构作为参 可能出现的情况:当把整个数据结构作为参 传递时, 数传递时,被调用的模块虽然只需要使用其 中的一部分数据元素, 中的一部分数据元素,但实际可以使用的数 据多于它真正需要的数据, 据多于它真正需要的数据,这将导致对数据 访问失去控制, 访问失去控制,
28
3 、衡量模块独立性的两个准则
耦合性( ① 耦合性( coupling ) 内聚性( ② 内聚性( cohesion )
思路决定出路! 思路决定出路!
29
① 耦合性( coupling )
也称块间的联系。是对软件系统结构中, 也称块间的联系。是对软件系统结构中,各 模块间相互联系紧密程度的一种度量。 模块间相互联系紧密程度的一种度量。 设计目标: 设计目标:低耦合
17
③ 模块化与软件成本的关系
接口
思路决定出路! 思路决定出路!
18
④ 模块的基本属性
接口:指模块的输入与输出。 接口:指模块的输入与输出。 功能:指模块实现什么功能。 功能:指模块实现什么功能。 模块化好处: 模块化好处 模块化使软件容易测试和调试,因而有助 模块化使软件容易测试和调试, 提高软件的可靠性。 提高软件的可靠性。 模块化能提高软件的可修改性。 模块化能提高软件的可修改性。 模块化有助于软件开发工程的组织管理。 模块化有助于软件开发工程的组织管理。
思路决定出路! 思路决定出路!
5
软件设计的两个阶段
第一阶段:概要设计(总体设计) 第一阶段:概要设计(总体设计) 根据软件需求,设计软件系统结构和数据结 根据软件需求, 构,确定程序的组成模块及模块之间的相互 关系。 关系。 回答“概括地说,系统应该如何实现? 回答“概括地说,系统应该如何实现?”。 其重要性是:站在全局高度, 其重要性是:站在全局高度,从较抽象的层 次上分析对比多种可能的系统实现方案和软 件结构, 件结构,从中选出最佳方案和最合理的软件 结构, 结构,从而用较低成本开发出较高质量的软 件系统。 件系统。
思路决定出路! 思路决定出路!
37
特征耦合举例
Leabharlann Baidu
说明: 说明: “住户情况”是一个数据结构,图中模块都与此 数据结构有关。 数据结构有关。 计算水费” 计算电费”本无关, “计算水费”和“计算电费”本无关,由于引用 了此数据结构产生依赖关系,它们之间也是标记偶 了此数据结构产生依赖关系,它们之间也是标记偶 合。
5.2.1模块化 模块化 5.2.2抽象 抽象 5.2.3逐步求精 逐步求精 5.2.4信息隐蔽和局部化 信息隐蔽和局部化 5.2.4模块独立 模块独立
思路决定出路! 思路决定出路!
15
5 . 2 . 1 模块化(Modularity )
什么是模块和模块化思想? ① 什么是模块和模块化思想? 采取自顶向下的方式, 采取自顶向下的方式,逐层把软件系统划分 成若干可单独命名和可编址的部分- 成若干可单独命名和可编址的部分- “ 模 每个模块完成一个特定的子功能; 块” ,每个模块完成一个特定的子功能;所 有模块按某种方法组成一个整体, 有模块按某种方法组成一个整体,完成整个 系统所要求的功能。 系统所要求的功能。 软件系统就是通过这些模块的组合来实现。 软件系统就是通过这些模块的组合来实现。
软件工程
总体设计
思路决定出路! 思路决定出路!
第五章总体设计
5 . 1 设计过程 5 . 2 设计原理 5 . 3 启发规则 5 . 4 描绘软件结构的图形工具 5 . 5 面向数据流的设计方法 5 . 6 小结 习题
思路决定出路! 思路决定出路!
2
学习要求
掌握: 掌握: 1 、软件设计过程中应遵循的基本原理和相 关概念; 关概念; 2 、描绘软件结构的图形工具的运用; 描绘软件结构的图形工具的运用; 3 、面向数据流设计方法概念;变换分析、 面向数据流设计方法概念;变换分析、 事务分析法过程和应用。 事务分析法过程和应用。 理解: 理解: 1 、典型的总体设计过程包括的步骤; 典型的总体设计过程包括的步骤; 2 、设计中的启发式规则; 设计中的启发式规则;
软件开发实际上就是一个从高层次抽象到 软件开发实际上就是一个从高层次抽象到低 高层次抽象 层次抽象逐步过渡的过程 逐步过渡的过程。 层次抽象逐步过渡的过程。 一个复杂的系统先用一些高级的抽象概念构 造和理解, 造和理解,这些高级概念又用较低级的概念 构造和理解,如此进行下去,直到具体元素。 构造和理解,如此进行下去,直到具体元素。
思路决定出路! 思路决定出路!
25
结合了模块化和逐步细化思想建立的软件结构图
思路决定出路! 思路决定出路!
26
5 . 2.4信息隐蔽和局部化
信息隐蔽:在设计和确定模块时, 信息隐蔽:在设计和确定模块时,使得一个 模块内包含的信息(过程或数据),不允许 模块内包含的信息(过程或数据),不允许 ), 其它不需要这些信息的模块访问 不需要这些信息的模块访问, 其它不需要这些信息的模块访问,独立的模 块间仅仅交换为完成系统功能而必须交换的 信息。 信息。 局部化: 局部化:将一些关系密切的软件元素物理地 放得彼此靠近。 放得彼此靠近。
思路决定出路! 思路决定出路!
20
抽象
什么是抽象思想? 什么是抽象思想
在认识事物、分析和解决问题的过程中, 在认识事物、分析和解决问题的过程中,忽略 那些与当前研究目标不相关的部分, 不相关的部分 那些与当前研究目标不相关的部分 以便将注 意力集中于与当前目标相关 集中于与当前目标相关的方面 意力集中于与当前目标相关的方面
思路决定出路! 思路决定出路!
21
抽象例子
外表 抽象 形体 衣着 性格
思路决定出路! 思路决定出路!
22
5 . 2. 3 逐步求精
逐步求精: 逐步求精:为了能集中精力解决主要问题而 尽量推迟对问题细节的考虑。 尽量推迟对问题细节的考虑。 可把逐步求精看作是一项把一个时期内必须 解决的种种问题按优先级排序的技术。 按优先级排序的技术 解决的种种问题按优先级排序的技术。 逐步求精是一种自顶向下的设计策略, 自顶向下的设计策略 逐步求精是一种自顶向下的设计策略,按这 种设计策略, 种设计策略,程序的体系结构是通过逐步精 化处理过程的层次而设计出来的。 化处理过程的层次而设计出来的。
思路决定出路! 思路决定出路!
3
重点和难点
重点: 重点 软件设计过程中应遵循的基本原理; 软件设计过程中应遵循的基本原理; 面向数据流的设计方法 难点: 难点 变换分析、 变换分析、事务分析法的过程和应用
思路决定出路! 思路决定出路!
4
软件设计的目标和任务
软件需求:解决“做什么” 软件需求:解决“做什么” 软件设计:解决“怎么做” 软件设计:解决“怎么做”. 软件设计的任务: 软件设计的任务:以软件需求规格说明书为 依据,着手实现软件的需求, 依据,着手实现软件的需求,并将设计的结 果反映在“设计规格说明书”文档中。 果反映在“设计规格说明书”文档中。 软件设计的重要性: 软件设计的重要性:是软件开发阶段的第一 步,最终影响软件实现的成败和软件维护的 难易程度。 难易程度。
思路决定出路! 思路决定出路!
7
将需求分析摸型转换为软件设计
软件结构设计以需求分析中得到的数据流图 为基础而进行。 为基础而进行。
思路决定出路! 思路决定出路!
8
SA与SD的关系
思路决定出路! 思路决定出路!
9
第一个阶段总体设计的任务
① 制定规范 设计软件系统结构(简称软件结构) ② 设计软件系统结构(简称软件结构) ③ 处理方式设计 ④数据结构及数据库设计 ⑤ 可靠性设计 ⑥ 编写概要设计文档 ⑦ 概要设计评审
思路决定出路! 思路决定出路!
32
控制藕合
模块之间传递的是控制信息(如开关、标志、 模块之间传递的是控制信息(如开关、标志、 名字等),控制被调用模块的内部逻辑。 ),控制被调用模块的内部逻辑 名字等),控制被调用模块的内部逻辑。
思路决定出路! 思路决定出路!
33
控制耦合举例
思路决定出路! 思路决定出路!
相关文档
最新文档