软件结构设计.ppt

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

(1) 模块功能的完善化
完整的模块应包括三部分: 1)执行规定功能部分
2)出错处理部分 3)需返回给调用者数据时, 返回是否正确结束标志。
(2)消除重复功能
X
Y
X
Q’
Y
X
Q1
Y
Q2
Q1 Q2 C C
重复部分
改进前 Q1、Q2功 能相似
改进方法1: C 将Q1、Q2 改进方法 2 : 合并为Q’ 将 Q1 、 Q2 的公共 不可取
细节模块2 …. (细节模块)
动作分支的典型结构
处理层
P
T2
主模块
事务加 T i 工模块
事务层 T 1
操作层 A 1 细节层 D 1
A2
D2
A3
Aj Dk
操作 模块 细节 模块
3.混合流设计 举例
接收 部分
事务 中心
传入
变换
传出
T
发 送 部 分
混合流设计举例
传入
b AB BC a
b
1
b
T
1 2
软件结构设计
• 概要设计确定:
•软件系统的组成结构; •各模块功能及模块间联系(接口)。
• 表示软件结构的图形工具
结构图 层次图和HIPO图
6.5.1 结构表示
1.层次图(H图)
表示软件的层次结构。
正文加工系统
输入 输出 编辑 加标题
存储 检索 编目录
添加 删除 插入 修改 合并
列表
带编号的层次图(H图)
(2)确定DFD类型
(3)把DFD映射到系统模块结构设计 出模块结构的上层 (4)基于DFD逐步分解高层模块设计 出下层模块 (5)根据模块独立性原理,精化模 块结构 (6)模块接口描述
精化数据流图
设计过程
“事务”
流类型
“变换”
区分输入和 输出分支
区分事务中心 和数据接收路径
映射成事务结构
事务分析
正文加工系统
输入 输出 编辑 加标题 1.0 2.0 3.0 4.0
存储 检索 编目录 5.0 6.0 7.0
添加 删除 插入 修改 合并 3.1 3.2 3.3 3.4 3.5
列表 3.6
“图书管理系统”软件层次图
图书管理系统
书籍管理
读者管理
借阅管理
书籍类别 管理
书籍信息 管理
出版社 管理
注销管理
(3)将模块的影响限制在模块的控制范 围内 如果模块 X C 作出的 决策影响 A C I 了模块L, L超出了C B D E K J 的控制范 围
F
G
H
L
模块C的控制范围: C、D、E、F、G、H
(4) 减少模块高扇出,争取模块高扇 入 高扇出的模块结构举例: 计算实发工资
取得 计时 薪金 编外 税收 编外 常规 编外 工资 制工 制工 人员 人员 人员 数据 资额 资额 工资 扣款 税款 扣款 扣款
(8)避免模块的病态连接
防止指向模块中间的分支或 引用(针对内容耦合)。
(9)根据设计约束和可移植性 需求对软件打包
打包指用来为特定环境组装软 件的技术。
E
第一层
传入模块
中心变 换模块
传出模块
传 入 分 支 的 分 解
(1)
c
C
b
c,e M
A
e
E
d
B
a
D
A
c,e
传 入 分 支 的 分 解
c
Get
C
M
A
e
Get d d
Read D D E
b
c b
e
to
E
Get B B to C b a a (2) A to B A
Read
传 出 分 支 的 分 解
3
c1
2
T
c2 CD
变换中心 传出 m EH LM h e d g k L
DE
HK KL
b3 c3
T 事务流子系统
f
FJ
j
混合流设计举例
d 输入D d c c 输入C CD
XX系统
d k 变换控制
k 输出K k
L
DE FJ EH HK
L
KL 输出L
事务子系统
L
m
m
LM 输出M
4.结构设计优化
将初始SC根据模块独立性原 则进行精化,对模块进行合并、分 解修改、调整,得到高内聚、低 耦合模块,以及易于实现、易于 测试和易于维护的软件结构,产 生设计文档的最终SC。
基本类型
变换型 输入 结构 变换 输出 中心
特征
由输入、变 换中心和输 出三部分组 成
动 作 路 径
接受 事务型 路径
结构
事务 中心
具有在多种 事务中选择 执行某类事 物的能力
大型系统DFD中,变换型和事务型 结构往往共存:
传入 变换 传出
T
事务中心
变换型 数据流 结构
传入 部分 传入
变换 中心 变换
事务控制模块
由事务分 析产生 接受模块 动作发送模块
动作1模块 动作2模块 动作3模块
接收 路径
总控 调度
A路径
B路径
C路径
A路径
C路径 B路径
事务流设计举例
B A
L
C
E
I
M
N
F G
D
事务中心
事务流设计举例(另一种画法)
总控
A
B
E源自文库
C
F
G D
取 A
L
M
N
动作1 …. 动作n
(操作模块)
细节模块1
A根据内 部判断决 定是否调 用B
A C
A按另一判 定结果选择 调用C或D
B
D
(2)循环调用
A
B C
A根据内在的循环重 复调用B、C等模块
结构图(SC)举例
处方 挂号
医院管理系统
计 总 费
门诊 管理
挂 号 单
挂 号 费 总 计
药库 管理
药房 管理
病房 管理
财务 管理
挂号 病历 处方 处理 管理 管理
读者类别 管理
读者信息 管理
续借管理
还书管理
借书管理
过期罚款 管理
图书丢失 管理
例子:酒店管理信息系统功能层次图
HMIS 客房管理子系统 客 人 登 记 预 定 登 记 客 房 处 理 历 史 记 录 客 房 查 询
收银管理子系统
预 定 查 询 客 帐 处 理 退 房 处 理 夜 审 处 理 客 帐 查 询 餐 桌 安 排 报 表 打 印
传出分 支模块
2.事务分析设计方法
任何情况下都可使用变换 分析方法设计软件结构,但如 数据流具有明显的事务特点时 (有一个明显的事务中心),以采 用事务分析方法为宜。
步骤:
(1)在DFD上确定事务中心、接收部 分和发送部分; (2)画出SC框架,把DFD上的三部分 分别映射为事务控制模块、接收 模块和动作发送模块; (3)分解细化接收分支和发送分支, 完成初始SC。
更新处理 1.4
传统的IPO图举例
输入 处理 输出
读口令请求 口令文件 权限文件
1取得输入 2口令确认 3请求确认 4更新处理
请求记录
权限记录 状态报告
响应
命令监控器(1.0)的IPO图
改进的IPO图格式
系统: 模块: 编号:
IPO图
作者: 日期:
被调用: 输入:
调用: 输出:
输入: 局部数据元素:
•改进软件结构设计的指导原则
(软件结构设计的启发式规则) (1)模块功能的完善化 (2)消除重复功能 (3)将模块的影响限制在模块的控制范围内 (4)深度、宽度、扇出和扇入适中 (5)模块大小适中 (6)降低模块接口的复杂性 (7)模块功能可预测 (8)避免模块的病态连接 (9)根据设计约束和可移植性要对软件打包
步骤(续)
(3)第二级分解(分解SC各分支)
自顶向下分解,设计出每个分 支的中、下层模块。
例子图下部
A
a
B
b
变换中心 C
传入 部分
c
P
d e D E
R p Q u
r
w
W 传出 部分
v U V
第一级分解的方法
MC MA MT ME
第一级分解后的SC
M
C
顶层
c,e
M
A
u,w c,e u,w
M
T
M
2.HIPO图
IBM公司发明的HIPO图:
层次图 (H图)
+ 输入 / 处理 /输出图
(IPO图)
(Hierachy Input Output)
Process
H图中每一方框(模块) 均有一张IPO图对应。
航线调度系统HIPO图举例 H图: 命令监控器
1.0
取得输入 1.1
输入确认 1.2
请求确认 1.3
避免平铺结构
增加中间层降低扇出
计算实发工资
取得工 计时工人 计薪工人 资数据 实发工资 实发工资 编外人员 实发工资
计时 税收 薪金 常规 制工 制工 资额 扣款 资额 扣款
编外 编外 编外 人员 人员 人员 工资 税款 扣款
(5) 模块大小适中
模块过大:可理解程度下降。 模块过小:开销大于有效操作 系统接口复杂。
w,u
ME
w,u ME
w
W
u
U
w
Write
u
Put U v
Write
v
V
(1)
W u
v
U to V V (2)
中心加工分支的分解
M
T
e p
Q
c,p
P
r
u,w r
R
第一级分解后的SC(另一种画法)
M
p
C
c
e
e
c,p
Q P
r
w
u,w
w,u
R
r
MA1 MA2
ME1
ME2
传入分 支模块
中心加工 分支模块
传出 部分
传出 动作 1
动作 2 动作 3
事务型 数据流 结构
接受 部分 接受
事务 中心 事务 分析
变换型数据流举例
传入部分
输入 信息
物理 输入
变换中心 结果
处理
传出部分
数据
显示
正确 信息 格式 检查
逻辑 输入
逻辑 输出
物理 输出
特点:具有明确的传入、变换(或称主加 工) 和传出界面的DFD
变换流示意图
(6)降低模块接口的复杂性
接口传递信息应简单且和模 块功能一致。
(7) 模块功能可预测
模块看成黑盒子,相同输入 产生相同输出,其功能为可预 测的。模块带有内部状态其功 能可能是不可预测的。难理解、 难测试、难维护。
•防止模块功能过分局限
功能单一的模块具有高内聚。 但如任意限制局部数据结构的 大小,过分限制控制流中可做的选 择或外部接口的模式,模块功能就 过分局限,使用范围过分狭窄,缺 乏灵活性和可扩充性。
餐饮管理子系统
菜 单 作 业 营 业 结 帐 汇 总 打 印 各 类 查 询 初 始 设 置
大型零售商场管理信息系统功能层次图
TM M I S
系 统 维 护 P O S 系 统 零 售 实 时 系 统 商 品 进 货 管 理 商 品 批 发 管 理 商 品 库 存 管 理 商 品 及 商 品 帐 管 理 顾 客 管 理 连 锁 店 管 理 财 务 管 理 人 事 工 资 管 理 计 划 统 计 管 理 经 理 查 询
信息
外部 表示
信息流
输入流
输出流
交换流
内部 表示
时间
事务型数据流图举例
L
C D
E
B A
I
M N
F G
O
H
有效图书 管理要求
入库单
新书入库
2.2
借书单
要求类 当前 型处理 日期
2.1
2.3
借书
注销单
2.5 借 注销图书 书 单 2.4
借书
目 录 文 件
事务型数据流图举例
罚款单
•设计步骤
(1)精化DFD
注释:
3.结构图(SC
Structure Chart)
是SD方法在概要设计中的主要表达 工具。约定:
不加区分的数据 数据信息
控制信息
编辑学生记录 学生数据
学号
无此学生
读学生记录
•SC中的四种模块
A
传入模块
B
传出模块
C B
D
协调模块
变换模块
A
E E
F
F
(a)
(b)
(c)
(d)
•SC中的调用 (1)选择调用
映射成变换结构
用启发式设计规则精化软件结构 变换分析
导出接口描述和全程数据结构 复查
详细设计
•两种映射过渡方法
变换型DFD
变换分析
初始SC
事务型DFD
事务分析
初始SC
变换型 数据流 结构
传入 部分 传入
变换 中心 变换
传出 部分
传出
初始的SC
主模块
由变换分 析产生
输入模块 主加工模块 输出模块
事务型 数据流 结构
出库 处理
常规 处理
进药 管理
6.5.2 面向数据流的设计方法 (结构化设计方法SD)
• 面向数据流设计方法的基本概念
SD以数据流图为基础,它定义了把 DFD变换成软件结构的不同映射方法。 映射
DFD
(问题结构)
软件系统的结构
(程序结构)
•系统结构特征的两种典型形式:
• 变换型结构 • 事务型结构 对应于 数据流图可分为两种类型: • 变换型数据流 • 事务型数据流
接受 部分
接受
事务 中心 事务 分析
动作 1
动作 2
动作 3
事务控制模块 由事务分 析产生 接受模块 动作发送模块
动作1模块 动作2模块 动作3模块
1.变换分析设计方法
步骤:
(1)区分传入、变换中心、 传出部分,在 DFD 上 标明分界线;
步骤(续)
(2)第一级分解(建立初始SC框架)
设计顶层和第一层模块; 例子图上部
相关文档
最新文档