软件工程第五章总体设计 PPT

合集下载

软件工程--总体设计PPT课件

软件工程--总体设计PPT课件

结构设计阶段:确定软件结构(划分模块)。
7
2021
系统设计过程
设想供选 择的方案
选取合 理的方案
推荐最 佳方案
数据流图
• 系统流程图 • 组成系统的物理元素清单 • 成本/效益分析 • 实现系统的进度计划
审查和 复审
8
2021
功能 分解
制订测 试计划
书写 文档
设计软 件结构
数据库 设计
• 系统说明 • 用户手册 • 测试计划 • 详细的实现计划 • 数据库设计结果
内聚:一个模块内各个元素彼此结合的紧密程度。
低内聚
偶然内聚:一个模块完成一组任务,任务之间的关系很松散。公共语句。 逻辑内聚:若干个逻辑功能类似的任务组成一个模块。
时间内聚:若干个任务必须在同一段时间内执行。如初始化工作。
模块A 模块B 模块C
模块A
模块A 模块B 模块C
S1;
模块B
模块C
S2;
模块D
信息隐蔽
局部和的关系?
14
2021
5.2.5 模块独立
模块独立概念是模块化、抽象、逐步求精和信息 隐藏等概念的直接结果,也是完成有效的模块设计 的基本标准。
模块的独立程度可以由两个定性标准来度量,这 两个标准分别称为内聚和耦合。耦合衡量不同模块 彼此间互相依赖(连接)的紧密程度;内聚衡量一个 模块内部各个元素彼此结合的紧密程度。以下分别 详细阐述。
2、确定每个模块功能的算法、数据结构
数据流图的特征
启发式规则
分层的DFD图
初始的结构图
最终的结构图
转换
优化
(层次图表示)
(事务型、变换型(特征) )
6
确定每个模块功能的算 法、数据结构

软件工程 总体设计PPT课件

软件工程 总体设计PPT课件

于公共耦 的物理安
合,区 排。
别在于在
外部耦合
中不存在依





**
28
第28页/共80页
(6)公共耦合
• 若一组模块都访问同一个公共数据环境,则它们
5.2
之间的耦合就称为公共耦合。
软 件
• 公共的数据环境可以是全局数据结构、共享的通 信区、内存的公共覆盖区等。

• 这种耦合会引起下列问题:
计 原

过程设计确定每个模块的处理过程。

• 为确定软件结构,首先需要从实现角度把复杂的功
能进一步分解。一般说来,经过分解之后应该使每
个功能对大多数程序员而言都是明显易懂的。功能 9 第9页/共80页
5.1.5 设计软件结构
• 通常程序中的一个模块完成一个适当的子功
能。
5.1

• 应该把模块组织成良好的层次系统,顶层模
**
上的操作全部集中在一个模块中,就可以消除
这种耦合。
26
第26页/共80页
(4)控制耦合
5.2
• 如果一个模块通过传送开关、标志、名字等控

制信息,明显地控制选择另一模块的功能,就

是控制耦合。

• 这种耦合的实质是在单一接口上选择多功能模块

中的某项功能。


• 对所控制模块的任何修改,都会影响控制模块。
• 总体设计阶段的另一项重要任务是设计软件的结构,也 就是要确定系统中每个程序是由哪些模块组成的,以及 这些模块相互间的关系。
总体设计的意义
• 在详细设计之前进行总体设计可以站在全局高度上,花 较少成本,从较抽象的层次上分析对比多种可能的系统 实现方案和软件结构,从中选出最佳方案和最合理的软 件结构,从而用较低成本开发出较高质量的软件系统。

[软件工程]CH5-详细设计45页PPT文档

[软件工程]CH5-详细设计45页PPT文档
图形工具 表格工具 语言工具
11.01.2020
6
5.2.1 程序流程图
程序流程图也称为程序框图,程序流程图使用 的基本控制结构是:
11.01.2020
7
(a)
(b)
(c)
(e) (d)
(f)
(g)
(h)
程序流程图的标准符号
(a)选择(分支);(b)注释;(c)
预先定义的处理;(d)多分支;
11.01.2020
24
典型界面
外汇交易系统 forex/cns/tour_windows.html forex/cns/tour.html 建站用户管理 游戏软件
11.01.2020
25
5.3.2人机界面应具备的风格
输入和输出信息是与用户的使用直接相关 的。输入和输出的方式和格式应当尽可能 方便用户的使用。一定要避免因设计不当 给用户带来的麻烦。
构,降低程序复杂度,提高程序的可读 性、可测试性和可维护性。
11.01.2020
4
3.详细设计的内容
程序描述 功能 性能 输入项 输出项 算法 流程逻辑 接口 存储分配
11.01.2020
5
5.2 详细设计工具
在过程设计阶段,要决定各个模块的实现算法, 并精确地表达这些算法。表达过程规格说明的工 具叫做详细设计工具。
(e)开始或停止;(f)准备;(g)
循环上界限;(h) 循环下界限
11.01.2020
8
循环的标准符号 注解的使用
11.01.2020
9
多出口判断
11.01.2020
10
程序流程图的特点和缺点
程序流程图中的箭头代表控制流 对控制流程的描绘很直观,便于初学者掌握 缺点: 程序流程图本质上不是逐步求精的好工具,它

软件工程课件 第5章_

软件工程课件 第5章_

盒图N 盒图N-S图
• N-S图也叫做盒图 。 五种基本控 图也叫做盒图。 图也叫做盒图 制结构由五种图形构件表示。 制结构由五种图形构件表示。
示例
N-S图的嵌套定义形式
5.2.3 问题分析图(PAD) 问题分析图(PAD)
• PAD图是日本日立公司于 图是日本日立公司于1979年提出的一种算法 图是日本日立公司于 年提出的一种算法 描述工具, 描述工具 , 它是一种由左往右展开的二维树型结 图的控制流程为自上而下, 构 。 PAD图的控制流程为自上而下 , 从左往右地 图的控制流程为自上而下 执行。优点: 执行。优点: • 清晰地反映了程序的层次结构。 清晰地反映了程序的层次结构。 • 支持逐步求精的设计方法 , 左边层次中的内容可 支持逐步求精的设计方法, 以抽象,然后由左到右逐步细化。 以抽象,然后由左到右逐步细化。 • 易读易写,使用方便。 易读易写,使用方便。 • 支持结构化的程序设计原理。 支持结构化的程序设计原理。 • 可自动生成程序。 可自动生成程序。
5.2.6过程设计语言(Process Design 过程设计语言( 过程设计语言 Language ,PDL) )
• 也称程序描述语言 ( Program Description 也称程序描述语言( Language ,PDL ) , 又 称 为 伪 码 ( pseudo code)。属于文字形式的表达工具。它并非 ) 属于文字形式的表达工具。 真正的代码,也不能在计算机上执行, 真正的代码,也不能在计算机上执行,但形 式上与代码相似。 式上与代码相似。它是一种用于描述模块算 法设计和处理细节的语言。 法设计和处理细节的语言。PDL具有严格的 具有严格的 关键字外层语法,用于定义控制结构、 关键字外层语法,用于定义控制结构、数据 结构和模块接口, 结构和模块接口,而它表示实际操作和条件 的内层语法又是灵活自由的, 的内层语法又是灵活自由的,使用自然语言 的词汇。 的词汇。

《软件工程》第五讲总体设计精品PPT课件

《软件工程》第五讲总体设计精品PPT课件
Learning Is To Achieve A Certain Goal And Work Hard, Is A Process To Overcome Various Difficulties For A Goal
48
5.4 描绘软件结构的图形工具
1 层次图和HIPO图
2 结构图
49
层次图和HIPO图(I)
层次图用来描绘软件的层次结构。
矩形框代表一个模块, 方框间的连线,表示调用关系,而表示组成关系。
50
HIPO图
层次图很适于在自顶向下设计软件的过程中使用。 HIPO图 = 层次图 + IPO图
为了能使HIPO图具有可追踪性,在H图(层次图)里除了最顶层 的方框之外,每个方框都加了编号。 和H图中每个方框相对应,应该有一张IPO图描绘这个方框代 表的模块的处理过程。 HIPO图中的每张IPO图内,都应该明显地标出它所描绘的模 块在H图中的编号,以便追踪了解这个模块在软件结构中的位 置。
变换流 事务流
55
1. 变换流
信息沿输入通路进入系统,同时由外部形式变换成内部形式, 进入系统的信息通过变换中心,经加工处理以后再沿输出通 路变换成外部形式离开软件系统。
56
2 事务流
这种数据流是“以事务为中心的”,即数据沿输入通路到达 一个处理T,这个处理T根据输入数据的类型,在若干个动作 序列中选出一个来执行。处理T称为事务中心,完成下述任务:
40
改进软件设计、提高软件质量
41
42
43
•扇出过大则模块过分复杂,可增加中间层次控制模块 •扇入大则该模块共享程度高,但不能违背模块独立性 •顶层扇出较高,中间层扇出较少,底层模块扇入较高
44

《软件工程》课件 第5章总体设计

《软件工程》课件 第5章总体设计

模块划分的工具,因此,这样得到的模块往往具有过程内聚的
特性
2014年春 • 软件工程
过程内聚模块
读入 成绩单
审查 成绩单
统计 成绩
打印 成绩
读入并 审查成绩单
统计并 打印成绩单
2014年春 • 软件工程
(5) 通信内聚:
一个模块中的各个部分使用同一个输入数据或产生同一个输出数 据,则称该模块的内聚为通信内聚。 由于通信内聚模块中的各个部分都与某个共同的数据密切相关,
2014年春 • 软件工程
时间内聚模块中的各个部分在时间上的联系,其内聚
程度比逻辑内聚高一些。
往往会和其他相关模块有着紧密的联系,因而会造成
耦合性的增加。
2014年春 • 软件工程
(4) 过程内聚:
一个模块中的各个部分相关,并且必须按特定的
次序执行,则称该模块的内聚为过程内聚。
• 在结构化程序中,通常采用程序流程图作为设计软件和确定
内容耦合是所有耦合关系中程度最高的,会使因 模块间的联系过于紧密而对后期的开发和维护工作带 来很大的麻烦。
许多高级程序设计语言在设计时就充分考虑到了内容耦合的危 害,因而在规定语法时就已经杜绝了任何形式的内容耦合。
2014年春 • 软件工程
内容耦合
A
B
A
一模块直接访问 另一模块的内部 信息 (程序代码 或数据)
2014年春 • 软件工程
1. 耦合
设计目标:低耦合
2014年春 • 软件工程
(1) 数据耦合: 两个模块之间仅通过模块参数交换信息,且交
换的信息全部为简单数据。
数据耦合的耦合性最低。通常软件中都包含有 数据耦合。
2014年春 • 软件工程

计算机软件工程ppt第五章 总体设计

计算机软件工程ppt第五章  总体设计
SOFTWARE ENGINEERING
§5.2 软件设计的概念和原理
• 公共环境耦合:当两个或多个模块通过一个公共数据环 境相互作用时。
--公共数据环境:全局变量,文件等。 ---耦合的复杂程度随模块数量而变化,例如:2个模块: 一个读,一个写---较松散的耦合; 或 都读写---较紧密的耦合,处于数据耦合和控制耦合之间
§5.2 设计原理
①耦合—衡量不同模块彼此间互相依赖的紧密程度。
-- 耦合强弱取决于模块间接口的复杂程度,进入或访问一个 模块的点,以及通过接口的数据。 -- 模块间的耦合程度强烈影响到系统的可理解性、可测试性、 可靠性、可维护性。 最低程度的耦合—模块间完全独立,很少存在 根据耦合程序的强弱,对耦合的分类: • 数据耦合:如果两个模块彼此间通过参数交换信息,而且交 换的信息仅仅是数据。--低耦合 • 控制耦合:如果传递的信息中有控制信息(尽管有时以数据 的形式出现)。--中耦合 • 特征耦合:如果把真个数据作为参数传递但是调用的模块只 是用一部分数据时。 --导致访问失去控制,导致计算机犯罪
公共耦合
公共耦合会引起下列问题: 1、 所有公共耦合模块都于某一个公共数据 环境内部各项的物理安排有关,若修改某 个数据的大小,将会影响到所有的模块。 2、无法控制各个模块对公共数据的存取,严 重影响软件模块的可靠性和适应性。 3、公共数据名的使用,明显降低了程序的可 读性。
几种耦合的优劣评分
• • • • • • 内容耦合 0分 公共耦合 1分 控制耦合 5分 特征耦合 7分 数据耦合 9分 非直接耦合 10分
}
七种内聚的优劣评分
• • • • • • • 功能内聚 10分 顺序内聚 9分 通信内聚 7分 过程内聚 5分 时间内聚 3分 逻辑内聚 1分 偶然内聚 0分

《软件工程与项目管理》课件_第5章

《软件工程与项目管理》课件_第5章

图5.6 信息内聚模块
(7) 功能内聚。若一个模块中各个部分都是为完成一项 具体功能而协同工作、紧密联系、不可分割的,则称该模块 为功能内聚模块。功能内聚模块是内聚性最强的模块。
2.耦合性 耦合性是对模块之间的相对独立性(互相连接的紧密程 度)的度量。它取决于各个模块之间接口的复杂程度、调用 模块的方式以及哪些信息通过接口。 一般模块之间可能的连接方式有七种,构成耦合性的七 种类型。不同类型耦合的强弱关系如图5.7所示。
析,确定系统具体的实施方案,然后进行结构设计,确定软件结构。 总体设计的一般步骤如下:
(1) 设计系统方案。 (2) 选取一组合理的方案。 (3) 推荐最佳实施方案。 (4) 功能分解。 (5) 设计软件结构。 (6) 设计数据库和文件结构。 (7) 制定测试计划。 (8) 编写概要设计文档。 (9) 审查与复审概要设计文档。
(5) 标记耦合。如果一组模块通过参数表传递记录信息, 则它们之间的耦合称为标记耦合。事实上,这组模块共享了 某一数据结构的子结构,而不是简单变量。这就要求这些模 块都必须清楚该记录的结构,并按结构要求对记录进行操作。
图5.9 控制耦合
(6) 数据耦合。如果一个模块访问另一个模块时,彼此 之间通过数据参数(不是控制参数、公共数据结构或外部变 量)来交换输入、输出信息,而且交换的信息仅限于数据, 则称这种耦合为数据耦合。数据耦合是松散的耦合,模块之 间的独立性比较强。
(2) 逻辑内聚。这种模块把几种相关的功能组合在一起, 每次被调用时,由传送给模块的控制型参数来确定该模块应 执行哪一种功能。逻辑内聚模块比巧合内聚模块的内聚程度 要高,因为它表明了各部分之间在功能上的相关关系。
(3) 时间内聚(经典内聚)。这种模块大多为多功能模块, 但要求模块的各个功能必须在同一时间段内执行,例如初始 化模块和终止模块。时间内聚模块比逻辑内聚模块的内聚程 度又稍高一些。在一般情况下,时间内聚模块各部分可以以 任意的顺序执行,所以它的内部逻辑更简单。

[软件工程]CH05详细设计.pptx

[软件工程]CH05详细设计.pptx
用PAD图表现程序逻辑,易读、易懂、易记
2020/8/20
17
示例
2020/8/20
18
示例
2020/8/20
19
PAD描述的示例
2020/8/20
20
VISIO 其他实例
自动化工具
2020/8/20
21
5.3人机界面设计
软件的任务是由用户在提供给用户的虚拟工作 环境中来完成,用户所面对的虚拟工作环境就是 人机界面
软件工程
软件工程
软件刘工迎春 程
2020/8/20
1
第5章 详细设计
计划 时期

问题定义 可行性研究
可行否?
5.1 详细设计的任务 与内容
5.2 详设计工具
5.3 人机界面设计
否 需求分析
概要设计
终止项目
详细设计
2020/8/20
2
5.1详细设计的任务与内容
详细设计的任务,是对总体设计阶段划分出的每 个模块进行明确的算法描述。模块的内部过程描 述就是模块内部的算法设计。
9
程序流程图的特点和缺点
程序流程图中的箭头代表控制流 对控制流程的描绘很直观,便于初学者掌握 缺点: 程序流程图本质上不是逐步求精的好工具,它
诱使程序员过早地考虑程序的控制流程,而不 去考虑程序的全局结构。 程序流程图中用箭头代表控制流,因此程序员 不受任何约束,可以完全不顾结构程序设计的 精神,随意转移控制。
交互设计是关于创建新的用户体验的问题,目的在 于增强和扩充人们的工作、通信及交互方式,使他 们能够更加有效地进行日常工作和学习。
UI设计
(3)User Interface Design
用户界面设计,在很大程度上就是在探讨如何让产 品的界面更加具有可用性,如何让用户有更良好的 体验。这是一种优化后的界面,通过这种界面,用 户能更方面地完成任务,获得良好的感觉。

软件工程详细设计PPT课件

软件工程详细设计PPT课件
(8) totalsum=totalsum+sum; (9) 读入字符串 (10) sum:=0; (11) totalsum=0;(12) pointer=1;
(13) pointer=pointer+1。 条件:I(1) 文件结束;I(2) 字符串结束;
S(3) 字符是空格。
41
图5.11 把操作和条件分配 a
i=0
N
i<9
Y
j=i+1
N
j < 10
Y
N
a[i] > a[j]
Y
a[i] a[j]
j ++
i ++
输出:a 结束
4
Y
b = b -a
开始
输入m,n a=m;b=n
a<>b?
Y
a<b?
N N
a=a-b
输出:a
结束
5
“辗转相截(减)法” 原理:
GCD( X , Y ) =
25
5.4.1 Jackson图
(1) 顺序结构 顺序结构的数据由一个或多个数据元素组成,每个元素按确定次序出现一次。
图5.5是表示顺序结构的Jackson图的一个例子。
26
图5.5 A由B、C、D 3个元素顺序组成
27
(2) 选择结构 选择结构的数据包含两个或多个数据元素,每次使用这个数据时按一定条件
42
统计空格seq 打开文件 读入字符串
totalsum∶=0 程序体iter until文件结束
处理字符串seq 印字符串seq 印出字符串 印字符串end sum∶=0 pointer∶=1
分析字符串iter until字符串结束 分析字符select字符是空格

软件工程--总体设计概述(ppt 113页)

软件工程--总体设计概述(ppt 113页)
模块化:就是把程序划分成独立命名且可独立 访问的模块,每个模块完成一个子功能,把这 些模块集成起来构成一个整体,可以完成指定 的功能满足用户的需求。
为什么要模块化? 模块化是为了使一个复杂的大型程序能被人的
智力所管理,软件应该具备的惟一属性。 如果一个大型程序仅由一个模块组成,它将很
难被人所理解。
} 继续对3.1和4.1细化,直到每个语句都能用程序设计语
言来表示
逐步求精的作用:
它能帮助软件工程师把精力集中在与当前开发 阶段最相关的那些方面上,而忽略那些对整体 解决方案来说虽然是必要的,然而目前还不需 要考虑的细节。
逐步求精方法确保每个问题都将被解决,而且 每个问题都将在适当的时候被解决,但是,在 任何时候一个人都不需要同时处理7个以上知 识块。
耦合程度的度量:
(1) 非直接耦合/完全独立(no direct coupling)
如果两个模块中的每一个都能独立地工作而不 需要另一个模块的存在,那么它们完全独立。
在一个软件系统中不可能所有模块之间都没有 任何连接。
无关系
A
B
(2) 数据耦合(data coupling)
如果两个模块彼此间通过参数交换信息,而 且交换的信息仅仅是数据,那么这种耦合称 为数据耦合。
在需求分析期间,软件解法是使用在问题环境 内熟悉的方式描述的;
当由总体设计向详细设计过渡时,抽象的程度 也就随之减少了;
最后,当源程序写出来以后,也就达到了抽象 的最低层。
5.2.3 逐步求精
逐步求精:为了能集中精力解决主要问题而尽 量推迟对问题细节的考虑。逐步求精是人类解 决复杂问题时采用的基本方法,也是许多软件 工程技术的基础。
1. 耦合

软件工程-总体设计(概要设计)

软件工程-总体设计(概要设计)

第五章总体设计软件设计的目标和任务›软件需求:解决“做什么”›软件设计:解决“怎么做”›软件设计的任务:以软件需求规格说明书为依据,着手实现软件的需求›软件设计的重要性:是软件开发阶段的第一步,最终影响软件实现的成败和软件维护的难易程度。

第五章总体设计总体设计的基本目的⚫回答“概括地说,系统应该如何实现?”这个问题。

⚫总体设计又称为概要设计或初步设计。

总体设计阶段的任务⚫这个阶段将划分出组成系统的物理元素——程序、文件、数据库、和文档等等,但是每个物理元素仍然处于黑盒子级,这些黑盒子里的具体内容将在以后仔细设计。

⚫总体设计阶段的另一项重要任务是设计软件的结构,也就是要确定系统中每个程序是由哪些模块组成的,以及这些模块相互间的关系。

把对象当作一个黑盒子,不需要知道里面是怎么处理的。

5.1设计过程5.2设计原理5.3启发规则5.4描绘软件结构的图形工具5.5面向数据流的设计方法5.6小结5.1 设计过程总体设计过程通常由两个主要阶段组成:系统设计:确定系统的实现方案。

结构设计:确定软件结构。

5.1 设计过程1.设想供选择的方案各种可能的实现方案,并且力求从中选出最佳方案;数据流图是总体设计的出发点;2.选择合理的方案至少选取低成本、中等成本和高成本三种方案。

对每个合理的方案要提供:A.系统流程图B.组成系统的物理元素清单C.成本/效益分析5.1 设计过程3.推荐最佳方案⚫分析员应该综合分析对比各种合理方案的利弊,推荐一个最佳的方案,并且为推荐的方案制定详细的实现计划。

⚫负责人接受了分析员所推荐的方案之后,将进入总体设计过程的下一个重要阶段,如功能分解、结构设计。

5.1 设计过程4. 功能分解通过程序实现功能,程序的设计(特别是复杂的大型程序)通常分为两个阶段完成:结构设计:结构设计是总体设计阶段的任务。

为确定软件结构,需要从实现角度把复杂的功能进一步分解,结构设计确定程序由哪些模块组成,以及这些模块之间的关系。

《软件工程》 第五章软件概要设计PPT课件

《软件工程》  第五章软件概要设计PPT课件
明确要求。
☻评审:
对是否完整地实现了需求中规定的功能、性能 等要求,设计方案的可行性、关键的处理及内外 部接口定义正确性、有效性以及各部分之间的一 致性等,进行评审。
6
▪ 数据设计将实体关系图中描述的对象和关系, 以及数据字典中描述的详细数据内容转化为数 据结构的定义。
▪ 体系结构设计定义软件系统各主要成份之间的 关系。
② 设计应当模块化。
12
③ 设计应当包含数据、体系结构、接口和构件(模块) 的清晰的视图。
④ 设计应当根据将要实现的对象和数据模式导出合适的 数据结构。
⑤ 设计应当建立具有独立功能特征的构件。 ⑥ 设计应当建立能够降低模块与外部环境之间复杂连接
的接口。 ⑦ 设计模型应当通过使用软件需求信息所驱动的可重复
17
c) 模块可理解性 一个模块可不参考其他模块而被 理解;
d) 模块连续性 对软件需求的一些微小变更只导致 对某个模块的修改而整个系统不用大动;
e) 模块保护 将模块内出现异常情况的影响范围限 制在模块内部;
5) 设计应遵循信息隐蔽的原则。 ✓ Patnas主张在开发时,将每个程序的成分隐藏在模 块内,定义每一个模块时尽可能少地显露其内部的 处理。
▪ 从技术观点来看,软件设计包括数据设计、体 系结构设计、接口设计、过程设计。
4
总体设计的基本任务
☻软件系统设计
把DFD中的处理分组,从各种可能的分组情况中选择一个 作为最佳方案,该过程即为系统设计。
☻软件结构设计
1. 从系统设计方案所对应的DFD导出系统模块结构,并将 功能需求分配给各模块。
2.确定每个模块的功能及模块间的调用关系。
维护 测试 编码 设计
有软件设计
维护 测试 编码

软件工程-第5章--总体设计2课件

软件工程-第5章--总体设计2课件

(1)在 DFD 图上标出逻辑输入、逻辑输出和变换中心的分界
c,e 逻 辑输入
a
b
ABC
d
D
E
c 变换中心
Pr
w
pR
e
Q
u
w,u 逻 辑输出
w
v
uv
-------- 具有变换型数据流图 软件工程-第5章--总体设计2
DFD的分析和划分
对于较复杂的DFD,不同的设计人员可能得出不同的划 分结果。以下是几种可能遇到的情况及其处理方法:
软件工程-第5章--总体设计2
(3) 完成第二级分解
变换中心
AaBbC c P r
wW
p
R
v
DdEe Q
uU
V
Ca
c
e
C
E
b
d
B
D
a
A
对逻辑输入的分解
Ca CBA
c
b
a
ED e
d
逻辑输入模块的调用与执行过程 软件工程-第5章--总体设计2
输入分支的第二种分解图:
CA
c
e
C
E
b
d
B
D
a
A
c,e
CA
软件工程-第5章--总体设计2
对 模一块个完大成A 型上a 系述B统一b中个的模C 复块c杂的数控P p据制r流功可能R w以;用W两v个或多个 在能够完成控制D 功d 能E并e且保Q 持好的耦u 合U和内聚V 特性
的前提下,尽量使第一级控制中模块数目取最小值
Cm
C e
CA1
CA2
U
e c,p r
传入部分
i 取得 数据

第5章GIS软件工程的总体设计 ppt课件

第5章GIS软件工程的总体设计  ppt课件

9/107
数据流风格的体系结构
• 这种结构适用于输入数据被一系列的计算 或者处理部件变换成输出数据。
10/107

调用和返回风格的体系结构
• 这种风格使一个软件设计者设计出非常容 易修改和扩充的体系结构。 • 包含:主程序/子程序风格体系结构和远 程过程调用风格的体系结构
11/107
• 在这里要了解几个概念:
– 程序结构的深度:程序结构的层次数称为结 构的深度。结构的深度在一定意义上反映了 程序结构的规模和复杂程度。 – 程序结构的宽度:层次结构中同一层模块的 最大模块个数称为结构的宽度。
– 模块的扇入和扇出:扇出表示一个模块直接 调用(或控制)的其它模块数目。扇入则定 义为调用(或控制)一个给定模块的模块个 数。多扇出意味着需要控制和协调许多下属 模块。而多扇入的模块通常是公用模块。
电费 计算电费
“住户情况”是一个数据结构,图中模块都与此数据 结构有关. “计算水费”和“计算电费”本无关,由于引用了此 数据结构产生依赖关系,它们之间也是标记偶合.
26/107
将标记耦合修改为数据耦 合举例
计算水电费
本月 用水量 水费 电费 计算水费 计算电费
27/107
本月 用电量
(4) 控制耦合
12/107
面向对象风格的体系结构
• 系统部件封装数据和操作数据的 方法。 • 部件之间的交互和协调通过消息 来传递。
13/107
层次式风格的体系结构
• 在这种结构中,定义不同的层次,每层都 完成了相对外层更靠近机器指令的操作
14/107
评估可选的体系结构
• 对于同一个软件需求,由于各种设计方法 的原理不同,会导出不同的软件结构。 • 同一问题的不同软件结构:
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
程,结构。 (3)接口设计:用户接口,外部接口,内部接口。 (4)运行设计:运行模块组合,运行控制,运行时间。 (5)系统数据结构设计:逻辑结构设计,物理结构设计,数据
结构与程序的关系。 (6)系统出错处理设计:出错信息,补救措施,系统恢复设计。 5.评审
5.4 设计基本原理
软件设计要回答下列问题: (1)使用什么样的准则才能把软件划分成为
同时还要进行必要的数据库设计。在分布式系统中还 要进行网络设计。
另外,还要制定测试计划和确定测试要求。 在详细设计前一定要进行软件总体设计。
5.3.1 总体设计基本任务
1.软件系统结构设计 (1)采用某种设计方法,将一个复杂的系统
按功能划分成模块。 (2)确定每个模块的功能。 (3)确定模块之间的调用关系。 (4)确定模块之间的接口,即模块之间传递
(1)过程构件(模块)的层次结构。 (2)数据结构。
软件的需求分析到设计的转换图
图5--5 结构化演化
不同结构的表示
从下图可以看出,一个问题可以有多种可供选 择的结构。选择某种结构又由软件设计方法来 决定。
5.4.5 程序结构
程序结构(program structure)给出了程序构 件(模块)的组织(通常叫分层),这种组织 包含了控制的层次。
总体设计主要是把需求转换为数据结构和软件 体系结构,而详细设计主要集中在体系结构表 达式的细化,从而产生详细的数据结构和软件 的算法表达式。
5.2.1 软件设计的发展
早期的设计工作中,着重在开发模块化程序模块所需 要的准则,以及按照自顶向下(top-down)的方式逐 步细化软件体系结构上。
接着,设计定义的过程方面逐渐发展成为一种叫做结 构化编程(structured programming)的原则。
总体设计
系统的总体设计是在前面系统分析的基础上, 为后期将要构造的系统实体建立一个模型 (model)或表达式(representation)。构造 这样的模型需要有开发人员的直觉和以前开发 这类实体经验的判断、开发方法的采用、产品 质量的准则,是一个综合的过程。而且经过多 次的重复,直到最终拿出最后的设计模型。
5.3 软件总体设计
需求分析阶段所形成的数据流图是软件总体设计的基 础。我们要从可供选择的方案中选取合理的方案,为 每一个方案准备一份系统流程图,列出系统组成的物 理元素,进行效益分析,制定实现方案的进度。我们 要从合理的方案中选择一个最佳的方案向用户推荐。
当用户接受方案后,就要为这个最佳的方案设计软件 结构,一般情况下,这个软件结构要通过反复修改使 之合理。
的信息。 (5)评价模块结构的质量。
总体设计基本任务(续)
2.数据结构及数据库设计 1)数据结构的设计 2)数据库的设计 (1)概念设计 (2)逻辑设计 (3)物理设计 3. 网络系统设计
总体设计基本任务(续)
4. 软件总体设计文档 总体设计说明书的主要内容如下: (1)引言:编写目的,背景,定义,参考资料。 (2)总体设计:需求规定,运行环境,基本设计概念和处理流
(2)设计应形成具有独立功能特征的模块(如子程 序或过程)。
软件设计原则(续)
(3)设计应使模块之间和与外剖环境之间接 口的复杂性尽量地减少。
(4)设计应该有一个分层的组织结构,这样 人们可对软件各个构件进行理性的控制。
(5)设计应有性质不同的可区分的数据和过 程表达式。
(6)设计应利用软件需求分析中得到的信息 和可重复的方法。
各个单独的构件? (2)怎样把功能或数据结构的细节从软件概
念表达式中分离出来? (3)定义软件设计的技术质量有统一的准则
吗?
设计基本原理
5.4.1 抽象 5.4.2 细化 5.4.3 模块化
5.4.4 软件体系结构
软件总体设计的主要任务就是软件结构的设计。 软件体系结构(software architecture)包含 了计算机程序的两个重要特性:
5.1 软件设计的重要性
软件设计处于软件工程过程的技术核心地位
图5-1 软件设计与软件工程
5.1 软件设计的重要性
软件设计的重要性还反映在质量上。
图5-2 设计的重要性
5.2 设计过程
软件设计是一个把需求转换为软件表达式的过 程。这个表达式过程一般情况下是分为两步走。
从软件工程的角度讲是分为总体设计和详细设 计。
程序结构可以用许多不同的符图
5.4.6 数据结构
数据结构(data structure)定义是一种数据各 元素之间逻辑关系的表达式。
一个数据结构的组织和复杂性只受设计者创造 性的限制。但是典型的数据结构可以组成更复 杂的结构造块。
之后,提出了把数据流和数据结构翻译成设计定义的 方法。
近年来,则建立采用OO的设计方法。 总结过去软件设计的发展,可以归纳为是一个持续发
展的过程。
5.2.2设计活动间的关系
总体设计和详细设计除了必须有先进的设计技 术外,还要有同步的管理技术支持。如图5-3 所示
图5-3 设计技术和管理方面之间的关系
5.2.3 设计与软件质量
在整个设计过程中,设计每一步的质量都要进行正式 的技术评审(formal technical reviews)。要按照设 计准则对于设计表达式的质量的评价。我们这里给出 下列软件设计原则:
(1)设计应当模块化(modular),也就是说,软件 应被逻辑地划分为能完成特定功能和子功能的构件。
数据结构可以给出不同层次的抽象。
软件工程
第五章 总体设计
软件设计的重要性 设计过程 软件总体设计 设计基本原理 体系结构设计 结构化设计 IDEF0图设计方法 软件结构优化
总体设计
总体设计的基本目标就是概要地回答系统应该 如何实现。所以设计在任何工程产品或系统中, 是开发阶段的第一步。设计(design)可以定 义为应用各种技术和原理,对一个设备、一个 过程或一个系统,作出足够详细的决策,使之 有可能在物理上得以实现的过程。
相关文档
最新文档