概要设计ppt课件
合集下载
《软件工程教学课件》04-概要设计
面向对象设计方法
识别对象
根据需求分析结果,识别出系统中的对象及其 属性、行为。
定义类与类之间的关系
通过类图描述对象的类及其之间的关系,如继 承、聚合、关联等。
设计接口与实现
定义对象的接口及其实现方式,确保系统的可扩展性和可维护性。
设计评审与优化
评审设计方案
对概要设计进行评审,确保其满足需求且具 有可行性。
案例三:移动应用的设计
总结词
详细描述
总结词
简洁易用、符合移动设备特 性
移动应用的设计需遵循简洁 易用的原则,提供直观的操 作界面和流畅的用户体验。 同时,要充分考虑移动设备 的特性,如触摸屏操作、电 池续航等,以确保应用的可 用性和性能。
响应式设计
详细描述
为了满足不同设备的屏幕尺 寸和分辨率,移动应用应采 用响应式设计。这样能够确 保应用在不同设备上均能呈 现良好的视觉效果和操作体 验。
功能全面、用户体验优先
总结词
安全性考虑
详细描述
电子商务网站的设计需要全面考虑用户需求,提 供商品展示、购物车、支付、物流跟踪等功能。 同时,要注重用户体验,确保网站易用、美观、 响应速度快。
详细描述
电子商务网站涉及用户的个人信息和交易信息, 因此安全性是首要考虑因素。概要设计阶段应考 虑数据加密、用户身份验证、防止SQL注入等安 全措施。
国际化内容
增加国际前沿的软件工程理论和实践内容, 拓宽学生的国际视野。
THANKS
感谢观看
案例四:数据库管理系统的设计
01 总结词
数据安全、高效存储与查询
02
详细描述
数据库管理系统的设计要确保 数据的安全性,包括数据的加 密存储、访问控制和备份恢复 等。同时,要优化数据的存储 结构和查询算法,以提高数据 的存储效率和查询性能。
第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
机制描述; • 模块的核心接口:说明模块传递的信息、信息的结构; • 处理方式设计:满足功能和性能的算法;
重点!!!
概要设计的任务
• 数据结构设计 • 逻辑结构 • 物理结构 • 存储在数据表中 • 存储在缓存中 • 存储在配置文件中 • 算法相关逻辑数据结构及其操作
重点!!!
概要设计的任务
• 公共数据结构设计 • 公共数据:指被许多模块共同使用的数据,如
之间的调用与返回关系 • 数据结构设计 • 数据结构、设计只是软件系统的抽象表达式(外 壳)
• 功能模块:每个功能分解的模块 • 定义界面、确定功能边界、接口定义 • 不对内部逻辑进行描述 • 概要设计提供的是具体实施方案与策略 • 决定了软件的方向,对软件项目的成功和
部接口 • 分析系统的应用特点、技术特点以及项目
资金情况,确定系统的硬件环境、软件环 境、网络环境和数据环境 • 根据系统整体逻辑构造与应用需要,对系 统进行整体物理部署与优化
与用户的硬件环境相关! 重点!!!
概要设计的任务
• 软件结构设计---模块设计 • 模块描述:说明哪些模块实现了哪些功能; • 模块层次结构:可以用软件框架图来表达; • 模块间的关系:模块间依赖关系、调用关系描述,通信
概要设计
课程目的
• 概要设计与需求分析的关系 • 概要设计目标 • 概要设计内容 • 概要设计的过程 • 概要设计的任务
概要设计与需求分析
教师登录 学生 个人信息中心 课程管理
成绩查看 教务通知查看
HUST学分制教务管理系统
学生登录
注册状态查询 学生信息查询
课程信息查询 个人选课 课表下载
学期成绩 学年成绩 综合成绩
维护的难易程度有很大的影响
重点!!!
概要设计的任务
• 数据结构设计 • 逻辑结构 • 物理结构 • 存储在数据表中 • 存储在缓存中 • 存储在配置文件中 • 算法相关逻辑数据结构及其操作
重点!!!
概要设计的任务
• 公共数据结构设计 • 公共数据:指被许多模块共同使用的数据,如
之间的调用与返回关系 • 数据结构设计 • 数据结构、设计只是软件系统的抽象表达式(外 壳)
• 功能模块:每个功能分解的模块 • 定义界面、确定功能边界、接口定义 • 不对内部逻辑进行描述 • 概要设计提供的是具体实施方案与策略 • 决定了软件的方向,对软件项目的成功和
部接口 • 分析系统的应用特点、技术特点以及项目
资金情况,确定系统的硬件环境、软件环 境、网络环境和数据环境 • 根据系统整体逻辑构造与应用需要,对系 统进行整体物理部署与优化
与用户的硬件环境相关! 重点!!!
概要设计的任务
• 软件结构设计---模块设计 • 模块描述:说明哪些模块实现了哪些功能; • 模块层次结构:可以用软件框架图来表达; • 模块间的关系:模块间依赖关系、调用关系描述,通信
概要设计
课程目的
• 概要设计与需求分析的关系 • 概要设计目标 • 概要设计内容 • 概要设计的过程 • 概要设计的任务
概要设计与需求分析
教师登录 学生 个人信息中心 课程管理
成绩查看 教务通知查看
HUST学分制教务管理系统
学生登录
注册状态查询 学生信息查询
课程信息查询 个人选课 课表下载
学期成绩 学年成绩 综合成绩
维护的难易程度有很大的影响
软件概要设计(总体设计)课件
H图:
命令监控器 1.0
取得输入 1.1
输入确认 请求确认 更新处理
1.2
1.3
1.4
传统的IPO图举例
输入
处理
读口令请求 口令文件 权限文件
拨号 电话号码拨音
4.4.3 体系结构设计优化
将初始SC根据模块独立性原 则进行精化,对模块进行合并、分 解修改、调整,得到高内聚、低 耦合模块,得到易于实现、易于 测试和易于维护的软件结构,产 生设计文档的最终SC。
改进软件结构设计的指导原则
(软件结构设计的启发式规则)
(1)模块功能的完善化 (2)消除重复功能 (3)将模块的影响限制在模块的控制范围内 (4)深度、宽度、扇出和扇入适中 (5)模块大小适中 (6)降低模块接口的复杂性 (7)模块功能可预测 (8)避免模块的病态连接 (9)根据设计约束和可移植性要对软件打包
事务分析设计方法步骤:
(1)在DFD上确定事务中心、接收部 分和发送部分。
(2)画出SC框架,把DFD上的三部分 分别映射为事务控制模块、接收 模块和动作发送模块。
(3)分解细化接收分支和发送分支, 完成初始SC。
用 命户 令读用命用令户户命令配系数置交命统数互令参据读数子系据统系原数配据统置 D建置格立文F式配 件化D配格配数置格式置据信式化息化
命令 命令 开/关
配置数据 配置数据
类型 分析处理命令
A/D
密码命令
激活/非活动 信息
系统
显示信息 和状态
显示
密码
读 密码
检验 信息
信息
四位 与文件中
数字
密码比较
检验
重试 检验信 信息
息过程
初始的SC
主模块
概要设计-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)模型
《部分概要设计》PPT课件
12
作业项目 系统结构设计 功能模块和子系 统划分 用户界面和接口 设计 数据库设计 安全性设计
作业内容
系统体系结构的设计和硬件、网络 环境设备的配置软件开发平台的选 定
主要的结果资料
系统体系结构的设计说明,系 统环境(硬件、网络)设备配 置和使用软件开发平台的说明
功能模块的划分和大规模的系统 开发时,可以分解为几个子系统 窗体操作和窗体设计、报表设计、 与他系统的接口设计 逻辑数据库设计
运用 / 故障处理设 计 调整开发计划
2019/5/10 验收确认
系统概要说明书 业务处理流程图
向新系统移植的软硬件内容的讨论, 系统移植方案设计书 移植方案设计 (移植数据对象,移植方针) 系统运用和故障处理的基本方案设 计 全系统开发计划的调整,作出内部 设计之后的各工程的工作计划
运用基本方案设计书 故障处理基本方案设计书 开发计划表
系统的结构和功能定义 新物理DFD(数据流程图)
窗体关联图、窗体设计式样,报表 设计式样、接口设计说明书、外部 编码设计
ER图,数据库一览表 数据库表定义书
从安全性、保密性、可操作性考虑, 系统安全设计说明书 设计出必要的安全措施 作出新系统的功能说明书 把新物理DFD展开为业务处理流程
作成新系统的功 能说明书 系统移植设计
2019/5/10 17
2、界定影响系统设计的约束边界
⑴ ⑵ ⑶ ⑷ ⑸ ⑹
本系统需要遵循的相关标准或规范; 系统实现所依赖的软硬件环境的约束; 本系统与其他系统间的接口要求; 系统采用通讯协议方面的约束; 用户界面的约束; 软件质量的约束
2019/5/10
18
3、 系统策划与组织
设计模式,根据本产品的功能性需求 和非功能性需求,确定体系结构设计模 式。设计模式的确定是结构设计中最重 要的环节,一个好的模式能为系统的扩 充、复用等策略提供良好的支持。 ⑵ 系统设计模板的确定,就像写书时首 先应确定大纲内容一样,编写系统设计 文档之前也应首先确定系统的内容及其 组织编排方式,这主要从结构、功能、 性能、接口、信息模块以及进度、经费 等方面着重考虑。
总体设计(概要设计幻灯片
7. 制定测试方案
在软件开发的早期阶段考虑测试问题,能促使软件设 计人员在设计时注意提高软件的可测试性。本书第7 章将仔细讨论软件测试的目的和设计测试方案的各种 技术方法。
8. 书写文档
应该用正式的文档记录总体设计的结果,在这个阶段 应该完成的文档通常有下述几种:
(1) 系统说明主要内容包括用系统流程图描绘的系统 构成方案,组成系统的物理元素清单,本钱/效益分 析;对最正确方案的概括描述,精化的数据流图,用 层次图或构造图描绘的软件构造,用IPO图或其他工 具(例如,PDL语言)简要描述的各个模块的算法,模 块间的接口关系,以及需求、功能和模块三者之间的 穿插参照关系等等。
为确定软件构造,首先需要从实现角度把复杂的功能 进一步分解。分析员结合算法描述仔细分析数据流图 中的每个处理,如果一个处理的功能过分复杂,必须 把它的功能适当地分解成一系列比较简单的功能。一 般说来,经过分解之后应该使每个功能对大多数程序 员而言都是明显易懂的。功能分解导致数据流图的进 一步细化,同时还应该用IPO图或其他适当的工具简 要描述细化后每个处理的算法。
总体设计过程首先寻找实现目标系统的各种不同的方 案,需求分析阶段得到的数据流图是设想各种可能方 案的根底。然后分析员从这些供选择的方案中选取假 设干个合理的方案,为每个合理的方案都准备一份系 统流程图,列出组成系统的所有物理元素,进展本钱 /效益分析,并且制定实现这个方案的进度方案。分 析员应该综合分析比较这些合理的方案,从中选出一 个最正确方案向用户和使用部门负责人推荐。如果用 户和使用部门的负责人承受了推荐的方案,分析员应 该进一步为这个最正确方案设计软件构造,通常,设 计出初步的软件构造后还要多方改进,从而得到更合 理的构造,进展必要的数据库设计,确定测试要求并 且制定测试方案。
在软件开发的早期阶段考虑测试问题,能促使软件设 计人员在设计时注意提高软件的可测试性。本书第7 章将仔细讨论软件测试的目的和设计测试方案的各种 技术方法。
8. 书写文档
应该用正式的文档记录总体设计的结果,在这个阶段 应该完成的文档通常有下述几种:
(1) 系统说明主要内容包括用系统流程图描绘的系统 构成方案,组成系统的物理元素清单,本钱/效益分 析;对最正确方案的概括描述,精化的数据流图,用 层次图或构造图描绘的软件构造,用IPO图或其他工 具(例如,PDL语言)简要描述的各个模块的算法,模 块间的接口关系,以及需求、功能和模块三者之间的 穿插参照关系等等。
为确定软件构造,首先需要从实现角度把复杂的功能 进一步分解。分析员结合算法描述仔细分析数据流图 中的每个处理,如果一个处理的功能过分复杂,必须 把它的功能适当地分解成一系列比较简单的功能。一 般说来,经过分解之后应该使每个功能对大多数程序 员而言都是明显易懂的。功能分解导致数据流图的进 一步细化,同时还应该用IPO图或其他适当的工具简 要描述细化后每个处理的算法。
总体设计过程首先寻找实现目标系统的各种不同的方 案,需求分析阶段得到的数据流图是设想各种可能方 案的根底。然后分析员从这些供选择的方案中选取假 设干个合理的方案,为每个合理的方案都准备一份系 统流程图,列出组成系统的所有物理元素,进展本钱 /效益分析,并且制定实现这个方案的进度方案。分 析员应该综合分析比较这些合理的方案,从中选出一 个最正确方案向用户和使用部门负责人推荐。如果用 户和使用部门的负责人承受了推荐的方案,分析员应 该进一步为这个最正确方案设计软件构造,通常,设 计出初步的软件构造后还要多方改进,从而得到更合 理的构造,进展必要的数据库设计,确定测试要求并 且制定测试方案。
《概要设计总体设计》课件
总体设计的重要性
确保项目实施顺利
通过总体设计,可以明确项目的 整体结构、功能和技术要求,为 后续的详细设计、制造和测试等 环节提供指导和依据,从而确保
项目的顺利实施。
提高产品质量
总体设计过程中需要对产品的整 体性能、功能和结构进行全面考 虑,有助于发现和解决潜在的问 题,从而提高产品的质量和可靠
性。
案例三
总结词
跨领域合作、整合资源
详细描述
该案例强调了在建筑工程中,概要设 计与总体设计的结合应用,需要跨领 域合作,整合资源,综合考虑建筑、 结构、机电等多个专业的要求,确保 项目的顺利进行。
06
总结与展望
本课程总结
课程内容回顾 介绍了软件工程中概要设计的基本概念、原则和方法。
讲解了如何进行系统分析、系统设计、数据库设计等核心内容。
学习新技术和方法,保持与时俱进。
03
感谢您的观看
THANKS
课程目标
掌握概要设计和总体设计的基本概念 、原理和方法。
培养学生的团队协作和沟通能力,以 适应实际软件开发团队的工作环境。
学会在实际项目中应用概要设计和总 体设计,提高软件开发的效率和软件 质量。
02
概要设计概述
定义与概念
定义
概要设计是对软件系统的高级描 述,包括系统的整体结构、功能 模块、数据流程、接口设计等。
优化性原则
总体设计应对项目的整体结构和功 能进行优化设计,以提高产品的性 能和降低成本。
04
概要设计与总体设计的比 较
设计目的比较
概要设计
旨在为软件系统提供一个高层次、粗粒度的设计框架,明确 系统的整体结构、主要功能和接口,以便后续详细设计、编 码和测试。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
软件工程
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 类型的外部变量,外部耦合不存在 依赖于一个数据结构内部各项的物理安排。
(1)非直接耦合:两个模块没有直接的联系,它们 中任何一个都能不依赖于对方而独立地工作。
(2)数据耦合: 两个模块借助于参数表传递简单数据 • 两模块只通过参数交换信息,且此信息仅为数据 • 被调用模块的输入输出都是简单数据 (3)标记耦合:一个数据结构的一部分(如记录的
一部分)借助于模块接口被传递。
阶段可以使用任何一种设计方法
软件工程
2
第三章 概要设计
软件设计分两步:概要设计和详细设计两个 阶段。
概要设计:把需求转换为数据结构和软件体 系结构设计和接口设计
详细设计:又称过程设计,主要集中在体系结 构表达式的细化,产生详细的数据结构和 软件算法表达式
软件工程
3
3.1.1 概要设计的任务
• 概要设计是将软件需求转换成软件结构 和数据结构的阶段,概要设计的基本目 的是概要地说明系统应该怎样实现,又 称为初步设计或总体设计,其具体任务 是:
3 保留现场
软件工程
16
(4)过程内聚
• 使用流程图作为工具设计程序的时候,常常
通过流程图来确定模块划分。把流程图中的某 一部分划分出来组成模块,就得到过程内聚模 块。 • 这类模块的内聚程度比时间内聚模块的内聚程 度更强一些
软件工程
17
(5)通信内聚
该模块内各功能都使用了相同的输入数据,或产
生了相同的输出数据,则称之为通信内聚模块
软件工程
23
基本概念
• 数据流:变换流,事务流 • 1.变换流特性
• 数据沿输入通路进入系统,由外部形式变换成内部形式, 然后通过变换中心,经过加工处理以后再沿输出通路变 换成外部形式离开软件系统
• 变换型数据流图一般可分为输入、加工、输出三部分:
软件工程
24
变换流图转换成软件结构的映射方法
(1)将数据流图的输入、加工和输出部分别转 换为输入、加工和输出模块。
软件工程
20
内聚性与模块独立性的关系图
软件工程
21
设计准则
目标 产生一个模块化的程序结构,并明确模块间
的控制关系,定义用户界面、说明程序所用的数 据结构。
1. 改进软件结构,提高模块独立性 2. 模块规模应适中 3.适当选择深度、宽度、扇出和扇入 4.模块的作用域应该在控制域之内 5.降低模块接口的复杂度 6.设计单入口单出口的模块 7.模块功能应该可以预测
文件 读文件
计算A 计算B
打印 (顺序内聚)
这种模块完成多个功能,各个功能都在同一数 据结构上操作,每项功能有唯一的入口点
软件工程
19
(7)功能内聚
• 一个模块中各个部分都是为完成一项具体功能 而协同工作、紧密联系,不可分割的,则该模 块为功能内聚模块。功能内聚模块是内聚性最 强的模块
C
W模块
X=Y+Z GET CARD IF I=5 THEN E=0
……
软件工程
14
(2)逻辑内聚
• 该模块完成的任务在逻辑上属于相同或相似
X
Y
Z
X
Y
Z
A
B
C
软件工程
ABC
15
(3)时间内聚(经典内聚):
大多为多功能模块,但要求模块的各个功能必 须在同一时间段内执行
1 关闭文件
紧急故障处理模块 2 报警
软件工程
9
耦合----(6)公共耦合
• 多个模块都访问同一个公共的数据环境。公共数据环 境可以是全局数据结构,共享的通信区,内存的公共 覆盖区等。复杂程度随耦合模块个数增加而显著增加。
A
B
C
D
全程 数据区
E
软件工程
10
耦合---- (7)内容耦合
一个模块访问另一个模块的内部数据;一个模块不通过
正常入口转到另一模块的内部;两个模块有一部分程 序代码重叠;一个模块有多个入口
第三章 概要设计
软件设计的任务 • 软件设计是一个把软件需求转换成软
件表示的过程。 软件设计的影响 • 最终影响软件实现的成功与否 • 影响软件维护的难易程度 • 影响软件的质量
软件工程
9.05 1
第三章 概要设计
包含的三个内容 • 数据设计:把分析阶段的信息域模型变换为数据
结构 • 体系结构设计:程序结构构件之间的相互关系 • 过程设计:变换结构构件为软件的过程描述 与需求分析阶段相对独立 • 在软件需求提供的信息,功能和行为模型上,设计
模块A …
LAB:MOVE A1
…
内容耦合
模块B ……
GOTO LAB
……
软件工程
11
耦合性与模块独立性的关系图
软件工程
12
内聚
• 内聚是标志一个模块内各个元素彼此结 合的紧密程度
• 它是信息隐蔽和局部化概念的自然扩展。
•
软件工程
13
(1)巧合内聚(偶然内聚)
• 模块完成的一组任务关系松散
A
B
(2)增加总控模块、用于调度输入、加工和输 出模块,协调完成任务。