软件概要设计(总体设计)ppt课件
合集下载
软件设计概述PPT课件

E(P1+P2) >E(P1)+E(P2)
P1,P2 问题 C 问题复杂度 E 工作量
最小本成区
模块化
软件系统的模块化是指整个软件 被划分成若干单独命名和可编址 的部分,称之为模块。这些模块 可以被组装起来以满足整个问题 的需求。 把问题/子问题的分解与软件开 发中的系统/子系统或系统/模 块对应起来,就能够把一个大而 复杂的软件系统划分成易于理解 的比较单纯的模块结构。
信息内聚 (Informational Cohesion)
这种模块完成多个功能,各个功 能都在同一数据结构上操作,每 一项功能有一个唯一的入口点。 这个模块将根据不同的要求,确 定该执行哪一个功能。由于这个 模块的所有功能都是基于同一个 数据结构(符号表),因此,它 是一个信息内聚的模块。
信息内聚模块可以看成是多 个功能内聚模块的组合,并 且达到信息的隐蔽。即把某 个数据结构、资源或设备隐 蔽在一个模块内,不为别的 模块所知晓。
软件设计过程
概要设计 详细设计
软件设计
概要设计:
软件的组成 各组成成分的关系
详细设计
算法 数据结构
概要设计
基于功能层次结构建立系统。
采用某种设计方法,将系统按功能划 分成模块的层次结构
确定每个模块的功能 建立与已确定的软件需求的对应关系 确定模块间的调用关系 确定模块间的接口 评估模块划分的质量
巧合内聚(Coincidental Cohesion)
巧合内聚又称为偶然内聚。当模块内各部 分之间没有联系,或者即使有联系,这种 联 系也很松散,
则称这种模 块为巧合内
聚模块,它
是内聚程度
最低的模块。
模块间的耦合
非直接耦合(Nondirect Coupling)
P1,P2 问题 C 问题复杂度 E 工作量
最小本成区
模块化
软件系统的模块化是指整个软件 被划分成若干单独命名和可编址 的部分,称之为模块。这些模块 可以被组装起来以满足整个问题 的需求。 把问题/子问题的分解与软件开 发中的系统/子系统或系统/模 块对应起来,就能够把一个大而 复杂的软件系统划分成易于理解 的比较单纯的模块结构。
信息内聚 (Informational Cohesion)
这种模块完成多个功能,各个功 能都在同一数据结构上操作,每 一项功能有一个唯一的入口点。 这个模块将根据不同的要求,确 定该执行哪一个功能。由于这个 模块的所有功能都是基于同一个 数据结构(符号表),因此,它 是一个信息内聚的模块。
信息内聚模块可以看成是多 个功能内聚模块的组合,并 且达到信息的隐蔽。即把某 个数据结构、资源或设备隐 蔽在一个模块内,不为别的 模块所知晓。
软件设计过程
概要设计 详细设计
软件设计
概要设计:
软件的组成 各组成成分的关系
详细设计
算法 数据结构
概要设计
基于功能层次结构建立系统。
采用某种设计方法,将系统按功能划 分成模块的层次结构
确定每个模块的功能 建立与已确定的软件需求的对应关系 确定模块间的调用关系 确定模块间的接口 评估模块划分的质量
巧合内聚(Coincidental Cohesion)
巧合内聚又称为偶然内聚。当模块内各部 分之间没有联系,或者即使有联系,这种 联 系也很松散,
则称这种模 块为巧合内
聚模块,它
是内聚程度
最低的模块。
模块间的耦合
非直接耦合(Nondirect Coupling)
软件设计概要讲义PPT(83张)

自顶向下,逐步细化 软件结构(搭出一个大框架) 程序结构 结构图 模块化(模块化思想,把软件分成多个模块) 抽象(通过抽象完成模块之间对外的一个黑盒装置) 信息屏蔽和局部化 模块独立
三、软件设计的概念和原理
自顶向下,逐步细化将软件的体系结构按自顶向下方式,对各个层次的过程细节和数据细节逐层细化,直到用程序设计语言的语句能够实现为止,从而最后确立整个的体系结构。 软件结构 ①软件结构包括两部分。程序的模块结构和数据的结构。 ②软件的体系结构通过一个划分过程来完成。该划分过程从需求分析确立的目标系统的模型出发,对整个问题进行分割,使其每个部分用一个或几个软件成份加以解决,整个问题就解决了。
项目经理
负责分配设计任务,追踪设计阶段进度,在项目组内协调设计过程中所需资源,参与设计文档的同行评审
系统分析员
完成相关的设计任务,编写设计文档,修改设计评审中发现的问题
项目组开发人员代表
参与设计文档的同行评审
其他项目经理
参与设计文档的同行评审
其他项目系统分析员
参与设计文档的同行评审
质量保证员
检查设计过程及设计阶段产生的文档,跟踪发现的问题的解决情况
一、软件设计的目标和任务
1、目标 系统结构设计定义软件系统各主要成份之间的关系。 过程设计。把结构成份转换成软件的过程性描述。
开发阶段的信息流
把需求翻译成文档
2、软件设计的任务 概要设计(系统设计),将软件需求转化为数据结构和软件的系统结构。概要设计由技术总监,部门经理和项目经理来做的,有可能会加一两个核心程序员。
二维画图又分为以下CASE,案例,任务的集合
(2)数据抽象 在不同层次上描述数据对象的细节,定义与该数据对象相关的操作。 例如,在CAD软件中,定义一个叫做drawing绘图的数据对象。可将drawing规定为一个抽象数据类型,定义它的内部细节为:
三、软件设计的概念和原理
自顶向下,逐步细化将软件的体系结构按自顶向下方式,对各个层次的过程细节和数据细节逐层细化,直到用程序设计语言的语句能够实现为止,从而最后确立整个的体系结构。 软件结构 ①软件结构包括两部分。程序的模块结构和数据的结构。 ②软件的体系结构通过一个划分过程来完成。该划分过程从需求分析确立的目标系统的模型出发,对整个问题进行分割,使其每个部分用一个或几个软件成份加以解决,整个问题就解决了。
项目经理
负责分配设计任务,追踪设计阶段进度,在项目组内协调设计过程中所需资源,参与设计文档的同行评审
系统分析员
完成相关的设计任务,编写设计文档,修改设计评审中发现的问题
项目组开发人员代表
参与设计文档的同行评审
其他项目经理
参与设计文档的同行评审
其他项目系统分析员
参与设计文档的同行评审
质量保证员
检查设计过程及设计阶段产生的文档,跟踪发现的问题的解决情况
一、软件设计的目标和任务
1、目标 系统结构设计定义软件系统各主要成份之间的关系。 过程设计。把结构成份转换成软件的过程性描述。
开发阶段的信息流
把需求翻译成文档
2、软件设计的任务 概要设计(系统设计),将软件需求转化为数据结构和软件的系统结构。概要设计由技术总监,部门经理和项目经理来做的,有可能会加一两个核心程序员。
二维画图又分为以下CASE,案例,任务的集合
(2)数据抽象 在不同层次上描述数据对象的细节,定义与该数据对象相关的操作。 例如,在CAD软件中,定义一个叫做drawing绘图的数据对象。可将drawing规定为一个抽象数据类型,定义它的内部细节为:
第4章 软件概要设计.ppt

内聚和耦合是密切相关的,模块内的高内聚往往 意味着模块间的低耦合
内聚度和耦合度要说明的是同一内容,即模块的 独立性,它们是衡量这种独立性的两个不同的方 面
4.1.6 高内聚和低耦合
在软件设计中,应该追求高内聚、低耦合 (即块 内要紧,块间要松) 的系统
可以研究、测试或维护任何一个模块,而不需要对系 统的其他模块有很多了解
M
ቤተ መጻሕፍቲ ባይዱ
A
G
B
C
D
E
F
4.1.3 模块划分的基本原则
通常,一个系统由若干个子系统组成;每个子系统又可 分解成更小的子系统
在实际中,要求改变整个系统的结构的情况是极为少见 的。所谓系统的修改往往只是对某些子系统的某些细节 作一些变动,也就是说,这些修改通常都是局部的
由于各子系统之间是相互关联的,对其中某个子系统的 修改,可能会通过这些相互关系而影响到其他子系统, 乃至波及整个系统
由于模块间联系简单,发生在某处的错误传播到整个 系统的可能性很小
模块间的耦合程度强烈地影响着系统的可理解性、 可测试性、可靠性和可维护性等性能
4.1.7 模块划分的方法
根据模块间的结合方式,可以把模块划分 的方法分成
系统效率 (批处理系统在单位时间内处理的业务量,或 者,实时处理系统的响应时间等)
系统工作质量 (数据精度、输出报表的易读性等) 系统可靠性 (抵御各种外界干扰的能力) 系统的可维护性 (纠正系统错误和缺陷,以及为满足新
的要求进行扩充或压缩的容易程度)
4.1.2 软件结构
软件结构以层次表示程序的系统结构,即一种 控制的层次体系,并不表示软件的具体过程
4.1 模块的划分
模块是数据说明、可执行语句等程序对象的集 合,,它单独命名而且可通过名字来访问,例如, 过程、函数、子程序、宏等都可作为模块
内聚度和耦合度要说明的是同一内容,即模块的 独立性,它们是衡量这种独立性的两个不同的方 面
4.1.6 高内聚和低耦合
在软件设计中,应该追求高内聚、低耦合 (即块 内要紧,块间要松) 的系统
可以研究、测试或维护任何一个模块,而不需要对系 统的其他模块有很多了解
M
ቤተ መጻሕፍቲ ባይዱ
A
G
B
C
D
E
F
4.1.3 模块划分的基本原则
通常,一个系统由若干个子系统组成;每个子系统又可 分解成更小的子系统
在实际中,要求改变整个系统的结构的情况是极为少见 的。所谓系统的修改往往只是对某些子系统的某些细节 作一些变动,也就是说,这些修改通常都是局部的
由于各子系统之间是相互关联的,对其中某个子系统的 修改,可能会通过这些相互关系而影响到其他子系统, 乃至波及整个系统
由于模块间联系简单,发生在某处的错误传播到整个 系统的可能性很小
模块间的耦合程度强烈地影响着系统的可理解性、 可测试性、可靠性和可维护性等性能
4.1.7 模块划分的方法
根据模块间的结合方式,可以把模块划分 的方法分成
系统效率 (批处理系统在单位时间内处理的业务量,或 者,实时处理系统的响应时间等)
系统工作质量 (数据精度、输出报表的易读性等) 系统可靠性 (抵御各种外界干扰的能力) 系统的可维护性 (纠正系统错误和缺陷,以及为满足新
的要求进行扩充或压缩的容易程度)
4.1.2 软件结构
软件结构以层次表示程序的系统结构,即一种 控制的层次体系,并不表示软件的具体过程
4.1 模块的划分
模块是数据说明、可执行语句等程序对象的集 合,,它单独命名而且可通过名字来访问,例如, 过程、函数、子程序、宏等都可作为模块
软件工程概要设计PPT课件

阅卷者
助教
教师
批阅考卷 (按学生)
在线考试系统
批阅考卷 (按考题成信 规息 则
维护成绩
生成学生 成绩清单
配置考试
查询学生 卷面
批量计算 学生成绩
生成 统计报表
维护题库
查看 统计报表
维护课程 基本信息 维护教师 基本信息
维护学生 基本信息 维护系统
参数
用户管理
耦合:是对软件结构内不同模块之间互连程度的度量 ,是影响软件复杂程度的一个重要因素。模块间的耦 合程度将影响系统的可理解性、可测试性、可靠性和 可维护性。设计时应该力求做到低耦合。
练习一:确定内聚类型
计算每个班学生 的平均成绩
初始化变量sum 并打开文件
创建新的成绩 记录
读取科目和成 绩
存储成绩记录
第七讲 概要设计
了解软件设计工程及其研究内容 理解概要设计的主要内容 理解概要设计的过程 掌握概要设计主要原则 理解体系结构设计 掌握模块划分特征 掌握层次图
软件生命周期
计划 时期
问题定义 可性行研究
需求分析
开发 时期
概要设计 详细设计 编码
运行 时期
测试 运行与维护
设计人员把分析的结果设计图纸 程序员拿着设计图纸编写代码
提示没有借书记录
无 发现记录?
有 在原记录上填写还书日期
图书信息中的在库册数+1
结束
软件设计工程
设计工程就是把需求分析过程中确定下来的用 户需求定义书(What=做什么)变为能够进行实 际操作的设计说明书(How=怎样做)的工程。
设计工程是一个将系统的需求规格转换成软件 系统的说明过程。
从多个可能的思路中找到最佳的解决方案。其 任务包括构建系统框架,设计系统功能,描述 系统流程,建立系统的数据模型、接口模型及 界面模型,形成系统的逻辑结构,告诉程序员 软件系统应该“怎样做”。
软件系统设计概述PPT课件

软件的开发阶段
第6页/共60页
软件设计的重要性
为什么软件设计很重要?
软件设计是开发阶段中最重要的步骤,它是软件开发过 程中质量得以保证的关键步骤。设计提供了软件的表示, 使得软件的质量评价成为可能。
同时,软件设计又是将用户要求准确地转化成为最终的 软件产品的唯一途径。另一方面,软件设计是后续开发步 骤及软件维护工作的基础。如果没有设计,只能建立一个 不稳定的系统。
第7页/共60页
软件设计的重要性
只要出现一些小小的变动,就会使得软件垮掉,而且难于测试。
第8页/共60页
软件设计方法 F 结构化设计方法(SD) F 面向数据结构的设计方法(JSD方法) F 面向对象的设计方法(OOD)
第9页/共60页
软件设计的阶段
第10页/共60页
软件设计的阶段
(1)概要设计(总体设计) 确定软件的结构以及各组成成分(子
• 模块的内部特性
完成其功能的程序代码和仅供该模块内
第33页/共60页
模块设计ห้องสมุดไป่ตู้础
二.模块独立性
模块独立性, 是指软件系统中每个模块 只涉及软件要求的具体的子功能, 而与 软件系统中其它的模块的接口是简单的. 例如, 若一个模块只具有单一的功能且 与其它模块没有太多的联系, 则称此模 块具有模块独立性 一般采用两个准则度量模块独立性。即 模块间耦合和模块内聚
第28页/共60页
软件设计基础 七. 信息隐蔽
由 parnas 方法提倡的信息隐蔽是指,每个 模块的实现细节对于其它模块来说是隐蔽的。 也就是说,模块中所包含的信息(包括数据 和过程)不允许其它不需要这些信息的模块 使用。独立的模块间仅仅交换为完成系统功 能而必须交换的信息。
概要设计ppt课件

软件工程
22
3.3 面向数据流的设计方法
• 目标:提供软件结构设计的一个系统化的 途径。
• 面向数据流的设计方法定义了一些不同的 “映射”,利用这些映射可以把数据流图
变换成软件结构,任何软件系统都可以用 数据流图表示。
• 我们通常所说的结构化设计方法(简称SD 方法),也就是基于数据流的设计方法。
• 1.确定系统具体的实施方案
• 2.设计软件结构和数据结构
• 3.编写概要设计说明书
软件工程
4
3.1.2 概要设计的过程
• 1.提供选择的方案
• 2.选取一组合理的方案
• 3.推荐最佳实施方案
• 4.功能分解
• 5.软件结构设计
• 6.数据库设计
• (1)模式设计。
(2)子模式设计。
• (3)完整性和安全性设计。(4)优化。
• 7.制定测试计划
• 8.编写概要设计文档
• 9.审查与复审概要设计文档。
软件工程
5
3.2 软件设计的概念与原则
模块化 抽象与逐步求精 信息隐蔽和局部化 模块独立性
• 耦合:表示软件结构内模块之间相互连接的紧密 程度
• 内聚:标志一个模块内各个元素彼此结合的紧 密程度
软件工程
6
耦合(1) (2) (3)
软件工程
7
耦合-----(4)控制耦合
• 两个模块间传递的信息中包含用于控制模块内部逻辑 的控制信息。
A
status
B
C
D
A的逻辑判断是执行C还是D, 取决于B传来的信息标志status
软件工程
8
耦合-----(5)外部耦合
• 一组模块都访问全局简单变量而不是同一全局 数据结构,而且不是通过参数表传递该全局变 量的信息。 例如:在C语言程序中各个模块都访问被说明 为external 类型的外部变量,外部耦合不存在 依赖于一个数据结构内部各项的物理安排。
概要设计-PPT精品.ppt

➢收敛(convergence):设计者从设计材料中选 择和组合合适元素,以满足设计目标。这是 一个不断删除的过程。
数据 字典
状态转换图
控制规格说明
过程 设计 接口设计
体系结构设计
数据设计
分析模型转变成软件设计示意图
4.1.2系统构成
体系结构的三个标准模型 : 1.容器模型:适合于数据是由一个子系统产生而
客户软件
客户软件
客户软件
数据存储
客户软件
客户软件
客户软件
Hale Waihona Puke 数据为中心的体系结构过滤器
过滤器
过滤器
过滤器
数据流体系结构
用户界面层 应用层 实用层 核心层
表示构件
层次式体系结构
体系结构设计的定量分析
• 目前在体系结构设计质量定量分析方面的研究 尚处于起步阶段。
• Asada提出了伪定量技术的简单模型帮助设计 者确定体系结构满足预定义的“好”标准的程 度.这些标准称为设计量纲(Design Dimension),包括软件的质量属性:可靠性、 安全性、可维护性、可测试性、可移植性、可 复用性等。
• 体系结构的设计过程 1)系统结构化:分解成子系统,划分子系统之间的通信. 2)控制建模:建立各部分之间的控制关系的一般模型. 3)模块分解:子系统进一步分解成模块.
常见软件体系结构风格
• 以数据为中心的体系结构; • 数据流体系结构; • 调用和返回体系结构; • 面向对象体系结构; • 层次式体系结构。
Asada提出的简单模型可分为: • 频谱分析(Spectrum analysis)模型 • 设计选择分析(Design selection analysis)模
型 • 贡献分析(Contribution analysis)模型
数据 字典
状态转换图
控制规格说明
过程 设计 接口设计
体系结构设计
数据设计
分析模型转变成软件设计示意图
4.1.2系统构成
体系结构的三个标准模型 : 1.容器模型:适合于数据是由一个子系统产生而
客户软件
客户软件
客户软件
数据存储
客户软件
客户软件
客户软件
Hale Waihona Puke 数据为中心的体系结构过滤器
过滤器
过滤器
过滤器
数据流体系结构
用户界面层 应用层 实用层 核心层
表示构件
层次式体系结构
体系结构设计的定量分析
• 目前在体系结构设计质量定量分析方面的研究 尚处于起步阶段。
• Asada提出了伪定量技术的简单模型帮助设计 者确定体系结构满足预定义的“好”标准的程 度.这些标准称为设计量纲(Design Dimension),包括软件的质量属性:可靠性、 安全性、可维护性、可测试性、可移植性、可 复用性等。
• 体系结构的设计过程 1)系统结构化:分解成子系统,划分子系统之间的通信. 2)控制建模:建立各部分之间的控制关系的一般模型. 3)模块分解:子系统进一步分解成模块.
常见软件体系结构风格
• 以数据为中心的体系结构; • 数据流体系结构; • 调用和返回体系结构; • 面向对象体系结构; • 层次式体系结构。
Asada提出的简单模型可分为: • 频谱分析(Spectrum analysis)模型 • 设计选择分析(Design selection analysis)模
型 • 贡献分析(Contribution analysis)模型
总体设计(概要设计)

1).模块的表示符号
第四章 总体设计(概要设计)
2).简单调用
第四章 总体设计(概要设计)
3).选择调用
第四章 总体设计(概要设计)
4).循环调用
第四章 总体设计(概要设计)
三.设计复审(Design Review) 概要设计复审应该把重点放在系统的总体结构, 模块划分,内外接口等方面。例如软件的结构 能否满足需求?结构的形态是否合理,层次是 否清晰?模块的划分是不是符合模块化和信息 隐藏的思想等优化原则?系统的人机界面、各 模块的接口以及出错处理是否恰当?模块的设 计能否满足功能与性能要求?选择的算法与数 据结构是否合理,能否适应编程语言等? 复审包括软件总体结构、数据结构、界面以及模 块过程细节四个方面。
第四章 总体设计(概要设计)
• 例:求五边形的面积,边长由L1~L7由键盘读入 解:一级抽象(求精) 1.输入长度L1~L7; 2. 由L1、L5、L6求三角形面积S1; 3. 由L2、L6、L7求三角形面积S2; 4. 由L3、L4、L6求三角形面积S3; 5. S=S1+S2+S3; 6.输出S;
二级求精:已知三边a、b、c, 求三角形面积Ts P=(a+b+c)/2; Ts=SQRT(P(P-a)(P-b)(P-c))
三级求精:写出程序。第四章 总体设计(概要设计)
§4.3 启发式规则
在软件开发的长期时间中人们积累了 丰富的经验,总结这些经验得出了一些 有用的启发式规则。它能给软件工程师 以有用的启示,帮助他们找到改进软件 设计提高软件质量的途径。
抽象与逐步求精抽象?是一个心理学概念即将注意力集中在某一层次上考虑问题而忽略那些低层次的细节软件工程过程的每一步都是对较高一级抽象的解作一次较具体的描述
软件工程--总体设计概述(ppt 113页)

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

总体设计的重要性
确保项目实施顺利
通过总体设计,可以明确项目的 整体结构、功能和技术要求,为 后续的详细设计、制造和测试等 环节提供指导和依据,从而确保
项目的顺利实施。
提高产品质量
总体设计过程中需要对产品的整 体性能、功能和结构进行全面考 虑,有助于发现和解决潜在的问 题,从而提高产品的质量和可靠
性。
案例三
总结词
跨领域合作、整合资源
详细描述
该案例强调了在建筑工程中,概要设 计与总体设计的结合应用,需要跨领 域合作,整合资源,综合考虑建筑、 结构、机电等多个专业的要求,确保 项目的顺利进行。
06
总结与展望
本课程总结
课程内容回顾 介绍了软件工程中概要设计的基本概念、原则和方法。
讲解了如何进行系统分析、系统设计、数据库设计等核心内容。
学习新技术和方法,保持与时俱进。
03
感谢您的观看
THANKS
课程目标
掌握概要设计和总体设计的基本概念 、原理和方法。
培养学生的团队协作和沟通能力,以 适应实际软件开发团队的工作环境。
学会在实际项目中应用概要设计和总 体设计,提高软件开发的效率和软件 质量。
02
概要设计概述
定义与概念
定义
概要设计是对软件系统的高级描 述,包括系统的整体结构、功能 模块、数据流程、接口设计等。
优化性原则
总体设计应对项目的整体结构和功 能进行优化设计,以提高产品的性 能和降低成本。
04
概要设计与总体设计的比 较
设计目的比较
概要设计
旨在为软件系统提供一个高层次、粗粒度的设计框架,明确 系统的整体结构、主要功能和接口,以便后续详细设计、编 码和测试。
软件项目概要设计课件PPT

授 课 视 频
教 学 视 频
练 习 题
知 识 点 索 引
考 试 大 纲
模 拟 试 卷
案 例 分 析
实 践 指 导 书
学 生 实 践 过
学 生 实 践 文
师 生 交 互
学 生 答 辩
程档
展展
示示
教校学 师企术 队合水 伍作平
chapter__0
SPM-模块设计
68
管理端子系统功能模块
用 户 管 理
行 业 信 息
BPM
12
chapter__0
云架构
13
chapter__0
应用程序框架结构
应用程序框架结构是一个可以重复使用的, 大致完成的应用程序。可以通过对其进行 定制开发成一个客户需要的真正的应用程 序。
14 chapter__3
MVC
15 chapter__3
应用程序框架结构-例如SSH
16
chapter__0
物理数据模型
31 chapter__3
物理数据库表—关系图示
本章要点
33
一
体系结构设计
二
模块设计
三
数据设计
四
界面设计
五
面向对象和面向过程设计
六
案例分析
类比:界面设计
界面设计-“黄金原则”
用户界面设计是为人和计算机之间创建 一个有效的沟通媒介
控制用户的想法 尽可能减少用户记忆量 界面最好有连续性
21 chapter__3
构件(模块)设计--例子
22 chapter__3
模块设计的基本原则
23
模块独立性 高内聚 松耦合
内聚度
《软件工程》 第五章软件概要设计PPT课件

明确要求。
☻评审:
对是否完整地实现了需求中规定的功能、性能 等要求,设计方案的可行性、关键的处理及内外 部接口定义正确性、有效性以及各部分之间的一 致性等,进行评审。
6
▪ 数据设计将实体关系图中描述的对象和关系, 以及数据字典中描述的详细数据内容转化为数 据结构的定义。
▪ 体系结构设计定义软件系统各主要成份之间的 关系。
② 设计应当模块化。
12
③ 设计应当包含数据、体系结构、接口和构件(模块) 的清晰的视图。
④ 设计应当根据将要实现的对象和数据模式导出合适的 数据结构。
⑤ 设计应当建立具有独立功能特征的构件。 ⑥ 设计应当建立能够降低模块与外部环境之间复杂连接
的接口。 ⑦ 设计模型应当通过使用软件需求信息所驱动的可重复
17
c) 模块可理解性 一个模块可不参考其他模块而被 理解;
d) 模块连续性 对软件需求的一些微小变更只导致 对某个模块的修改而整个系统不用大动;
e) 模块保护 将模块内出现异常情况的影响范围限 制在模块内部;
5) 设计应遵循信息隐蔽的原则。 ✓ Patnas主张在开发时,将每个程序的成分隐藏在模 块内,定义每一个模块时尽可能少地显露其内部的 处理。
▪ 从技术观点来看,软件设计包括数据设计、体 系结构设计、接口设计、过程设计。
4
总体设计的基本任务
☻软件系统设计
把DFD中的处理分组,从各种可能的分组情况中选择一个 作为最佳方案,该过程即为系统设计。
☻软件结构设计
1. 从系统设计方案所对应的DFD导出系统模块结构,并将 功能需求分配给各模块。
2.确定每个模块的功能及模块间的调用关系。
维护 测试 编码 设计
有软件设计
维护 测试 编码
☻评审:
对是否完整地实现了需求中规定的功能、性能 等要求,设计方案的可行性、关键的处理及内外 部接口定义正确性、有效性以及各部分之间的一 致性等,进行评审。
6
▪ 数据设计将实体关系图中描述的对象和关系, 以及数据字典中描述的详细数据内容转化为数 据结构的定义。
▪ 体系结构设计定义软件系统各主要成份之间的 关系。
② 设计应当模块化。
12
③ 设计应当包含数据、体系结构、接口和构件(模块) 的清晰的视图。
④ 设计应当根据将要实现的对象和数据模式导出合适的 数据结构。
⑤ 设计应当建立具有独立功能特征的构件。 ⑥ 设计应当建立能够降低模块与外部环境之间复杂连接
的接口。 ⑦ 设计模型应当通过使用软件需求信息所驱动的可重复
17
c) 模块可理解性 一个模块可不参考其他模块而被 理解;
d) 模块连续性 对软件需求的一些微小变更只导致 对某个模块的修改而整个系统不用大动;
e) 模块保护 将模块内出现异常情况的影响范围限 制在模块内部;
5) 设计应遵循信息隐蔽的原则。 ✓ Patnas主张在开发时,将每个程序的成分隐藏在模 块内,定义每一个模块时尽可能少地显露其内部的 处理。
▪ 从技术观点来看,软件设计包括数据设计、体 系结构设计、接口设计、过程设计。
4
总体设计的基本任务
☻软件系统设计
把DFD中的处理分组,从各种可能的分组情况中选择一个 作为最佳方案,该过程即为系统设计。
☻软件结构设计
1. 从系统设计方案所对应的DFD导出系统模块结构,并将 功能需求分配给各模块。
2.确定每个模块的功能及模块间的调用关系。
维护 测试 编码 设计
有软件设计
维护 测试 编码
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
事务 中心 事务 分析
变换型数据流举例
传入部分
输入 信息
物理 输入
变换中心 结果
传出部分
数据
正确 信息 格式 检查
逻辑 输入
处理
显示
逻辑 输出 物理 输出
特点:具有明确的传入、变换(或称主加 工) 和传出界面的DFD
变换流示意图
信息
外部 表示
信息流
输入流 输出流
交换流
内部 表示
时间
事务型数据流图举例
事务分析设计方法步骤:
(1)在DFD上确定事务中心、接收部 分和发送部分。 (2)画出SC框架,把DFD上的三部分 分别映射为事务控制模块、接收 模块和动作发送模块。 (3)分解细化接收分支和发送分支, 完成初始SC。
用户命令交互子系统DFD
用户 命令
读用户 命令 原配置 系统参 数据 建立配 数数据 置文件 读系统 配置命令 数据 格式化 配置数据
r r
P
w,u
u,w
w
ME1
MA1 MA2
Q
R
ME2
传入分 支模块
中心加工 分支模块
传出分 支模块
变换分析设计方法步骤
(3)第二级分解(分解SC各分支)
自顶向下分解,设计出每个分 支的中、下层模块
传 入 分 支 的 分 解
(1)
c
C
b
c,e MA
e
E
d
B
a
D
A
Get C Get E c e b d b d Get B B to C Read D D to E b a a (2) Read D A to B
面向数据 流方法的 设计过程
精化数据流图 “事务”
流类型
“变换”
区分输入和 输出分支
区分事务中心 和数据接收路径
映射成事务结构
事务分析
映射成变换结构
变换分析
用启发式设计规则精化软件结构
导出接口描述和全程数据结构 复查
详细设计
SD方法的两种映射过渡方法 变换型DFD
变换分析
初始SC
事务型DFD
事务分析
基本模型
变换型 输入 结构 变换 输出 中心
特征
由输入、变 换中心和输 出三部分组 成
动 作 路 径
接受 事务型 路径
结构
事务 中心
具有在多种 事务中选择 执行某类事 物的能力
变换型 数据流 结构
传入 部分 传入
变换 中心 变换
传出 部分
传出 动作 1
动作 2 动作 3
事务型 数据流 结构
接受 部分 接受
约定:
不加区分的数据 数据信息
控制信息 编辑学生记录 学生数据
学号
无此学生
读学生记录
SC中的四种模块
A
传入模块
B
传出模块
C B
D
协调模块
变换模块
A
E E
FF(a)来自(b)(c)(d)
SC中的选择调用
A根据内 部判断决 定是否调 用B
A C
A按另一判 定结果选择 调用C或D
B
D
SC中的循环调用
A
B C
A根据内在的循环重 复调用B、C等模块
结构图(SC)举例
处方 挂号
医院管理系统
计 总 费
门诊 管理
挂 号 单
挂 号 费 总 计
药库 管理
药房 管理
病房 管理
财务 管理
挂号 病历 处方 处理 管理 管理
出库 处理
常规 处理
进药 管理
酒店管理信息系统功能结构图
HMIS 收银管理子系统 客 人 登 记 预 定 登 记 客 房 处 理 历 史 记 录 客 房 查 询
软件概要设计 (总体设计)
概要设计的任务与步骤
概要设计的过程 : (1)设想可能的方案 (2)选取合理的方案 (3)推荐最佳方案 (4)功能分解 (5)设计软件结构 (6)数据库设计 (7)制定测试计划 (8)编写文档 (9)审查与复审
4.4.1结构图(SC Structure Chart)
SD方法在概要设计中的主要表达工具
收银管理子系统
预 定 查 询 客 帐 处 理 退 房 处 理 夜 审 处 理 客 帐 查 询 餐 桌 安 排 报 表 打 印
收银管理子系统
菜 单 作 业 营 业 结 帐 汇 总 打 印 各 类 查 询 初 始 设 置
大型零售商场管理信息系统功能结构图 TM M I S
系 统 维 护 P O S 系 统 零 售 实 时 系 统 商 品 进 货 管 理 商 品 批 发 管 理 商 品 库 存 管 理 商 品 及 商 品 帐 管 理 顾 客 管 理 连 锁 店 管 理 财 务 管 理 人 事 工 资 管 理 计 划 统 计 管 理 经 理 查 询
r
w
W 传出 部分
v U V
变换分析设计方法步骤 (2)第一级分解(建立初始SC框架)
设计顶层和第一层模块
第一级分解的方法
MC MA MT ME
第一级分解后的SC
MC
顶层
c,e
MA
传入模块
u,w c,e u,w
MT
中心变 换模块
ME
第一层
传出模块
第一级分解后的SC(另一种画法)
MC
p
c
e
e
c,p
初始SC
初始的SC
主模块
由变换分 析产生
输入模块 主加工模块 输入模块
事务控制模块
由事务分 析产生
接受模块
动作发送模块
动作1模块 动作2模块 动作3模块
(1)
变换分析设计方法
步骤:
(1)区分传入、变换中心、 传出部分,在 DFD 上 标明分界线
A
a
B
b
变换中心 C
传入 部分
c
P
d e D E
R p Q u
传 入 分 支 的 分 解
c,e
c
MA
e
传 w,u w,u 出 ME ME 分 u w w u 支 的 W U Write W Put U 分 u v v v 解 U to V Write V V (1) (2)
中心加工分支的分解
MT
e p
Q
c,p
P
r
u,w r
R
(2)
事务分析设计方法
任何情况下都可使用变换分析 方法设计软件结构,但如数据 流具有明显的事务特点时 (有 一个明显的事务中心),以采用 事务分析方法为宜。
格式化 配置 数据
配置信息
格式化 配置数据 显示信息 和状态
B A
L
C
E
I
M N
F G
O
H
D
大型系统DFD中,变换型和事务型 结构往往共存:
传入 变换 传出
T
事务中心
2. 面向数据流设计方法的设计步骤 (1)精化DFD (2)确定DFD类型 (3)把DFD映射到系统模块结构设计 出模块结构的上层 (4)基于DFD逐步分解高层模块设计 出下层模块 (5)根据模块独立性原理,精化模 块结构 (6)模块接口描述
4.4.2 面向数据流的设计方法 (结构化设计方法SD)
1. 面向数据流设计方法的基本概念
SD以数据流图为基础,它定义了把 DFD变换成软件结构的不同映射方法 映射
DFD
(问题结构)
软件系统的结构
(程序结构)
系统结构特征可归纳为两种典型形式:
变换型结构 事务型结构
数据流图可分为两种类型: 变换型数据流 事务型数据流