最新第5章 软件设计 普通高等院校计算机类专业系列教材 软件工程教学课件教学讲义ppt

合集下载

软件工程导论课件之第5章总体设计

软件工程导论课件之第5章总体设计
需要另一个模块的存在,那么它们完全独立。 n 在一个软件系统中不可能所有模块之间都没有
} 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章

23
第五章 总体设计
<< 工程化实例 >>
开发一个软件,该软件为底层的计算机辅助设计应用,可 以实现二维绘图系统的所有功能。 第一层抽象: 包括计算机图形接口 l 与绘图人员和鼠标之间进行可视通信, l 鼠标器替代绘图板和丁字尺, l 全部直线,曲线,全部计算和辅助视图都可由 CAD软件 完成。 l 画法存贮在一个绘图文件中,其中含有所有集合,文本 和辅助设计信息,


确定对逻辑数据结构所必需的那些操作的程序模块 (软件包)
xdu
10

限制和确定各个数据设计决策的影响范围 若需要与操作系统或调度程序接口所必须的控制表等 数据时,确定其详细的数据结构和使用规则 数据的保护性设计


防卫性设计:在软件设计中就插入自动检错,报错和纠错 的功能。

一致性设计:保证软件运行过程中所使用的数据的类型和取 值范围不变。在并发处理过程中使用封锁和解除封锁机制保 持数据不被破坏。
开始就要确定软件可靠性和其它质量指标,考虑相应 措施,以使得软件易于修改和易于维护。
xdu
12
6.编写概要设计阶段的文档
概要设计阶段完成时应编写以下文档:

概要设计说明书

– –
数据库设计说明书
用户手册 制定初步的测试计划
xdu
13
7.设计评审

可追溯性:确认该设计是否复盖了所有已确定的软件 需求,软件每一成份是否可追溯到某一项需求 接口:确认该软件的内部接口与外部接口是否已经明 确定义。模块是否满足高内聚和低耦合的要求。模块 作用范围是否在其控制范围之内 风险:确认该设计在现有技术条件下和预算范围内是 否能按时实现

软件工程课件第5章-总体设计(第六版)(张海潘编著)

软件工程课件第5章-总体设计(第六版)(张海潘编著)

如果两个模块彼此间传递的信息中有控制信 息,这种耦合称为控制耦合。
A Flag B Flag
f1
f2

fn
评价:

控制耦合往往是多余的,把模块适当分解之后
通常可以用数据耦合代替它。(如何分解?)

被调用的模块需知道调用模块的内部结构和逻
辑,降低了重用的可能性 。
(4) 特征耦合(stamp coupling)
由两个主要阶段组成: 系统设计阶段,确定系统的具体实现方案


设想供选择的方案 选取合理的方案 推荐最佳方案


结构设计阶段,确定软件结构
功能分解 设计软件结构 设计数据库

制定测试计划 书写文档 审查和复审
典型的总体设计过程包括下述9个步骤:
1. 设想供选择的方案

根据需求分析阶段得出的数据流图考虑各种可能 的实现方案,力求从中选出最佳方案。 从前一步得到的一系列供选择的方案中选取若干 个合理的方案。对每个合理的方案分析员都应该 准备下列4份资料:
C(P1+P2)>C(P1)+C(P2)

综上所述,得到下面的不等式 E(P1+P2)>E(P1)+E(P2)

每个程序都相 应地有一个最 适当的模块数 目M,使得系 统的开发成本 最小。
模块化和软件成本
模块化的作用:

采用模块化原理可以使软件结构清晰,不仅容 易设计也容易阅读和理解。

模块化使软件容易测试和调试,因而有助于提 高软件的可靠性。
一个公司的销售管理系统判别输入定货输入进货修改库存统计分析处理定货记录定单开提货发票读入数据生成统计表开进货票据销售管理系统读入数据键盘输入开提货发票判别处理定货输入进货进货统计定货输入定货修改库存开进货票据记录定单统计分析生成统计表根据储蓄系统的数据流图利用面向数据流的设计方法设计其软件结构复查基本系统模型利息清单密码存单存款单取款单事务接收事务处理存款处理取款业务员储户储户存款信息确定输入流和输出流的边界从而孤立出变换中心5

《软件工程》第五讲总体设计精品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年春 • 软件工程

软件工程课件学习5

软件工程课件学习5

Uncoupled

Goal: as loose as possible = as independent as possible
23
独立性由弱到强(耦合程度由强到弱)排列为:
内容耦合(Content Coupling): 一个模块直接影响另一个
……
例1:A访问C的内部 数据或不通过正 常入口而转入C 的内部。
内容耦合 公共耦合 控制耦合 复合耦合 数据耦合 低
33
耦合性

5.3
启 发 规 则
改进软件结构提高模块独立性 过小的模块开销大于有效操作,而
且模块数目过多将使系统接口复杂。 设计出软件的初步结构以后,应该审 因此过小的模块有时不值得单独存 查分析这个结构,通过模块分解或合并, 在,特别是只有一个模块调用它时, 通常可以把它合并到上级模块中去 力求降低耦合提高内聚。 而不必单独存在。
设计则是
设计过程
6.数据库设计 数据库的应用越来越广泛,目前大多数的
系统都要用到数据库技术。 数据库设计是一项专门的技术,包括模式
设计、子模式设计、完整性和安全性设计和优 化处理等。
11
5.1
设计过程
7.制定测试计划
在软件开发的早期阶段提前考虑软件的测试计划 是很有必要的。这样能促使软件设计人员在设计时注 意到软件的测试问题,从而有利于提高软件的可测试 性。
20
信息隐藏
问题:“为了得到最好的一组模块,应 该怎样分解软件”。
信息隐藏原理指出:应该这样设计和确 定模块,使得一个模块内包含的信息(过程 和数据)对于不需要这些信息的模块来说, 是不能访问的。 实际上,应该隐藏的不是有关模块的一 切信息,而是模块的实现细节。 21

软件工程-第5章


变更控制
变更控制(Change Control)的目的并 不是控制变更的发生,而是对变更进行管理, 确保变更有序进行。对于软件开发项目来说, 发生变更的环节比较多,因此变更控制显得 格外重要。它回答:受控产品怎样变更?谁 控制变更?何时接受,恢复,验证变更?
变更控制的流程
5.2.5正式技术复审
基线与SCI的概念
5.2.3 版本控制
版本控制(Revision Control)是全面 实行软件配置管理的基础,是对系统不同版 本进行标识和跟踪的过程,所有置于配置库 中的元素都应自动予以版本的标识,并保证 版本命名的唯一性和状态的一致性。其目的 是便于对版本加以区分、检索、跟踪或回溯, 以区别各个版本之间的关系。
软件质量模型
Boehm质量模型 (1)软件的可使用性 (2)软件的可维护性 (3)软件的可移植性
2.McCall质量模型
ISO/IEC 9126标准
软件质量保证是一种活动
SQA 活动的主要内容
1.与SQA计划直接相关的工作 2.参与项目的阶段性评审和审计 3.对项目日常活动与规程的符合性进行检查 4.对配置管理工作的检查和审计 5.跟踪问题的解决情况 6.度量和报告机制
软件配置项的组成
软件配置项标识
•唯一性:目的在于避免出现重名,造成混 乱。 •可追溯性:使命名能够反映命名对象间的 关系。每个可用一组信息来唯一地标识它。
配置项的状态
基线的理解
IEEE定义基线如下:“已经通过正 式复审和批准的某规约或产品,它因此 可以作为进一步的基础,并且只能通过 正式的变化控制过程的改变。”
IEEE Std 1028-1988定义:评审是对 软件元素或者项目状态的一种评估手段,以 确定其是否与计划的结果保持一致,并使其 得到改进。

《软件工程》第5章 软件构造


5.5 软件代码审查
为保证代码开发的质量,在编码完成后,进行 代码审查或称Review。
审查内容: 1. 程序的版式 2. 文件结构 3. 命名规则 4. 表达式与基本语句
5.6 软件复用
软件复用就是将已有的软件成分用于构造新的 软件系统,以达到提高软件系统的开发质量与效率, 降低开发成本的目的。
在面向对象语言中,类功能支持这种层次机制。 除了根结点外,每个类都有它的基类(base class)。 除 了 叶结 点 外 , 每 个类 都 有它 的 派生 类 (derived class)。一个派生类可以从它的基类那里继承所有 的数据和操作,并扩充自己的特殊数据和操作。
3. 多态性
所谓多态,是指一个名字(或符号)具有 多种含义。即相同的操作的消息发送给不同的 对象时,每个对象将根据自己所属类中定义的 操作去执行,产生不同的结果。
5
第五章
软件构造
软件的详细设计,完成了软件的过程性的描述, 接下来进入程序编码阶段。
软件构造(Software Construction)指通过 编码、验证、单元测试、集成测试和排错的组合, 创建一个可以工作的、有意义的软件。在本章中, 我们将聚焦在该领域当中的程序设计语言、设计、 编码和复用这几个话题,其余的将在后续章节中讨 论。
类型的能力选取 。 6. 软件开发人员的知识水平以及心理因素。要特别注
意选择语言时,尽量避免受外界的影响,盲目追求 高、新的语言。
5.2 程序设计方法
5.2.1 结构化程序设计 结构程序设计的概念最早是由E.W.Dijkstra提出来的。
结构化程序设计方法 (Structured Program), 即SP法是结构化开发方法的重要组成部分。
5.3.1 源程序文件 符号的命名。尽量用与实际意义相同或接近的标识 符命名。 源程序中的注释 注释可分为序言性注释和解释性注释。错误的注释 宁可不要。 源程序的书写格式

软件工程概论 第5讲:软件设计


图 9 机 房
第5讲 软件设计
2. 物理设备设计
●物理设备设计是根据软件的设计要求,确定系 统物理设备方案。 ●设计的物理设备方案应能满足软件系统功能需 要。
●满足系统的效率、可靠性、安全性和适应性等
性能要求。 ● 具有较高的性价比。
第5讲 软件设计
5.2.3 软件平台设计
1. 操作系统 大型操作系统:UNIX、Windows NT、OS/2、 Macintosh等; 微机操作系统:Windows 95、Windows 98、
对象基本操作设计、关系设计、优化类和建立业务对象 模型等工作。
第5讲 软件设计
3 提取业务对象
业务对象来源于业务领域中的业务实体; 用类的简化形式把提取的业务对象描述出来。
书店业务中提取的部分业务对象
第5讲 软件设计
4 对象属性设计
属性用来表示对象的静态特性,对提取的对象应该设 计其属性。
第5讲 软件设计
第5讲 软件设计
2.文件服务器模式
文件服务器模式是由PC机或工作站通过网络与文 件服务器相连接所形成的一种计算模式。
图13 文件服务器模式
第5讲 软件设计
优点:
◆ 利用PC机和网络技术; ◆ 实现了非集中处理。 不足: ◆ 处理的效率完全由客户机决定;
◆ 文件服务器成为整个系统的瓶颈;
◆ 网络的传输开销过大; ◆ 数据的完整性和安全性难以保证。
第5讲 软件设计
图19 书店书务系统软件结构
第5讲 软件设计
案例分析
书务系统支撑结构
书务系统 应用层
Java.awt
Java.swing
Java.rmi
中间件层
Java虚拟机

软件工程 第5章

① ② ③ ④ ⑤ ⑥ ⑦
弱耦合 ①非直接耦合 No Direct Coupling ②数据耦合 Data Coupling ③特征耦合 Stamp Coupling ④控制耦合 Control Coupling
中耦合
较强耦合
强耦合
⑤外部耦合 ⑥公共耦合 ⑦内容耦合
External Coupling Common Coupling Content Coupling
• ④控制耦合 • 控制耦合是中等强度的耦合。此时在模块间传递 的信息不是一般的数据,而是用作控制信号的开 关值或标志量(Flag)。
• ⑤外部耦合 • 若允许一组模块访问同一个全局变量,可称它们 为外部耦合。
有名公共区
A
B
……
• ⑥公共耦合 • 若允许一级模块访问同一个全局性数据结构,则 称之为公共耦合。 • ⑦内容耦合 • 最强的一类耦合称为内容耦合。如果一个模块可 以直接调用另一模块中的数据,或者允许一个模 块直接转移到另一模块中去。
3. 推荐最佳方案 分析员应该综合分析对比各种合理方案的利弊,推 荐一个最佳的方案,并且为推荐的方案制定详细的 实现计划。 用户和有关的技术专家应该认真审查分析员所推荐 的最佳系统,如果该系统确实符合用户的需要,并 且是在现有条件下完全能够实现的,则应该提请使 用部门负责人进一步审批。在使用部门的负责人也 接受了分析员所推荐的方案之后,将进入总体设计 过程的下一个重要阶段——结构设计。
• ①非直接耦合 • 若两个模块没有直接关系,它们之间的联系完全 是通过主程序的控制和调用来实现的,便称这两 个模块为非直接耦合,这样独立性最强。A 无块间联系来自BCD
• ②数据耦合 • 若一个模块访问另一个模块,且被访问模块的输 入和输出都是数据项参数,则称这两个模块之间 的联系为数据耦合。
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
相关文档
最新文档