软件工程8(2)

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

A B C D
E
F
G
关于模块的控制范围示意图
一个模块的作用范围,是指受这个模块中的 判定所影响的模块 。
Top
A
控制 耦合
B
C E D G G
关于模块的作用范围/控制范围的关系示意图
理想的情况,应该使判定的作用范围和判定所在模块的控制范围 尽可能地吻合(即应使模块的作用范围尽可能地在控制范围之内)。
2、事务分析 ----是将具有事务型的DFD图导出SC图
事务源
L B E C M N F H
A
I
D
O
G
事务中心
L B A E C D N M F G H
I
O
主模块 A
取得A
B E L
C D F M G N
H
给出H
请将下列给出的采购子系统 DFD 图转换成SC图
加工名称: 2.1 按书号汇总缺书 2.2 按出版社汇总缺书 2.3 修改教材库存和待 购量
电话拨号
电话拨号音频
传感器监测子系统的第二级DFD
传感数据 读取传 感数据
传感器信息
配置信息 配置数据 产生 显示
置传感器标识 获取响 应信息
格式化 显示
格式化标志的类型和位置
传感器标志的类型和位置
警报条件码 传感器标志 定时信息
建立报 警条件 号码表 选择电 话号码 电话号码 连通电 话网 传感器监测子系统的第三级
步骤五 执行“一级分解”
• “一级分解”总的原则是,在完成控制 功能并保持低耦合度,高内聚度的前提 下尽可能减少模块数。
主控模块
传感器输入 控制模块
警报条件 控制模块
警报输出 控制模块
传感器监测子系统一级分解结果
步骤六 执行“二级分解”
• 二级分解的任务是把数据流图中每个处 理框映射成程序结构中一个适当的模块, 二级分解过程是从变换中心的边界开始 沿输入、输出通道向外移动,把遇到的 每个处理框映射成程序结构中的一个模 块。
家庭保安系统的顶级数据流图
家庭保安系统的第一级DFD 控制面板 系统 用户命令 配置 用户命 配置命令 令处理 启动/停止命令 口令 口令 核对 原口令 有效口令
用户交互子系统 配置数据
配置信息
配置数据
启动/停 止系统
启动/停止消息
显示信息 和状态 传感器信息
显示器
显示信息
传感器
传感数据 传感器 监测
10
11 12 13
最近一次业务日期
最近一次付息日期 余额 业务总量
6
6 8 8
数字
数字 数字 数字

否 否 否
14
限额
6
数字

表 1
分析: 1. 贷款文件的记录格式(如表1 ) 1. 修改记录(卡片)格式 要求对贷款文件进行修改,修改信息由卡片输入,卡片上的修改信息格 式如下: 1-5位 账号 6-9位 空 10位起
按书号 汇总
按出版社 汇总
打印 缺书单
修改 教材存量表
修改 教材待购量
------ 采购子系统的 SC 图 -------
例 家庭保安系统用户交互子系统
• • • • 基本步骤: 1、复审基本系统模型 2、复审并精化软件数据流图 3、确定数据流图的特性
家庭保安系统的第一级DFD 用户交互子系统 控制面板 系统 用户命令 配置 用户命 配置命令 令处理 启动/停止命令 口令 口令 核对 原口令 有效口令 显示信息 和状态 传感器信息 配置数据
M
M
P
P
P1 P2
Q1
Q2
Q3
Q
Q
模块的大小,可以用模块 中所含语句的数量的多少来衡 量。 50-100
五、 模块的大小要 适中。
A
六、应设计出功能可预测 的模块,但要避免过分受限制 的模块。
主模块
A
B
C
A1
A2
A3
A11
A12
A13

耦合性

外部 耦合 公共 耦合 内容 耦合
非直接 耦合

数据 耦合
标记 耦合
控制 耦合
模块独立性

高 功能 内聚 信息 内聚 通信 内聚
内聚性 过程 内聚 时间 内聚 逻辑 内聚

巧合性 内聚

模块独立性

具有高内聚低耦合的模块 才是模块独立性比较强的模块。
卡片 错误 检 查 顺 序
顺序卡片 编 辑 卡 片 修改信息 顺序记录 账 号 相 等 不修改 的记录 写 记 录 要修改 的记录 修 改 记 录 已修改 的记录
顺序 卡片
2
3 抽 出 修 改 报告 抽 出 编 辑 修改 信息
4
旧记录
检 查 次 序
主加工
5
6 7 9
答案
新记录
主加工是??
修改贷款文件的DFD图
编辑卡片加工分解
图3.29模块结构图
将DFD图转换为模块结构图
转换后的模块图如图所示。
贷款文件
管理系统
顺序记录
卡片
检 查 顺 序 检 查 次 序
顺序卡片
错误 旧记录 顺序记录
编 辑 卡 片 修改信息 账 号 相 等 不修改 的记录
要修改 的记录
已修改
写 记 录
修 报告 改 记 录 已修改 的记录 新记录
每个贷款用户在贷款文件中占有一个记录,记录结构如表1。
序号 1 2 3 4 5 6 7 8 9 内 容 长度(字节) 5 30 30 10 15 6 8 1 5 数据类型 数字 数字字母 数字字母 字母 字母 数字 数字 字母 数字 可否修改 否 可 可 可 可 可 可 否 可
账号 户名 地址 省 市 邮政编码 电话 类型 信贷员号
口令
启动/停止消息
显示信息 和状态
显示信息
产生无效 的信息
“再试” 信息
• 步骤四 指出事务中心,确定由事务中心 发出的每一动作路径的数据流特性。数 条动作路径的公共源头即为事务中心。
用户交互子系统的第二级DFD
用户命令数据
系统参数和数据
原始配置数 读配置 读系统 格式化的配置数据 读用户 据 文件 数据 命令类型 命令 启动命 配置命令 配置信息 令处理 启动/停止命令 确认口令 读口令 四位数 比较口 令与文件 配置数据 有效口令 无效口令 启动/停 止系统 配置数据
X R1
Y R2
X R1
Y R2
R
物理 相似 部分 输入
X+R1
Y+R2
R
控制范围:包括模块本身及其 所有的从属模块(即供它调用 的模块)。 作用范围:是一个与条件判定 相关联的所有模块。
三、 模块的作用范围应 在控制范围之内。
模块的控制范围:包括模块本身及其所有的从 属模块(即供它调用的模块)。
系统配置 控制模块
启动/停止 系统
口令处理 控制模块
用户交互子系统的一级分解
用户交互 执行
读用户命令 启动命令 处理
系统配置 控制模块
启动/停止 系统 读口令 显示信息 和状态
口令处理 控制模块
读系统数据
建立配置 文件
核对 口令
口令输出 控制模块 输出无效信息
用户交互子系统的程序结构雏形
实例:银行贷款文件管理 (MFUP)

“家庭保安系统”的传感器检测子系统
• 1,复审基本系统模型(指顶级DFD和所 有外部提供的信息) 这一设计步骤是对系统规格说明书和软 件需求规格说明书进行评估。这两个文 档描述软件界面上信息的流程和结构。
显示器
控制面板
用户命令 显示信息 警报类别
家庭保安 系统软件
传感器 传感数据
警报器
电话拨号音频 电话线
Top
A
C C
B
D E B2 G G
对于一个理想 SC图 中的模块设计, 所有受到 一个判定影响的模块应该 都从属该判定所在的模块 ,最好位于作出判定的那 个模块本身及它的直接下 属模块。
符合作用范围/控制范围的理想判定位置
作用范围是一个与条件判定相联系
计算 实发工资
取得 工资数据
计时工人 实发工资
取顺序 记录
旧记录
旧பைடு நூலகம்记 录
取修改 信息
顺序 记录 顺序 卡片 顺序 卡片
比较 账号
写 记录
已编辑 卡片
修改 记录
打印 报告
打印 记录
读旧 记录
检查 顺序
卡片
取 卡片
卡片 顺序 卡片
编辑 卡片
“编辑卡片”应继 续向下分解,是典 型的“事务处理” 型的DFD图。
读卡片
检查顺序
三、软件模块结构的改进
执行指定的功能部分 出错处理的部分。
警报数据
产生警 报信号
警报类别
对应号码相应的音频
产生脉 冲信号
步骤三 确定DFD的特性
• 设计人员首先判定DFD中占主导地位的 信息流,并确定其特性,然后孤立具有 变化特性或者事务特性的支流,这些支 流将用于精化由主导数据流推出的程序 结构。
步骤四 划定输入流和输出流边界
传感数据 读取传 感数据
传感器监测子系统的程序结构“雏形”
传感器监测执行
传感器数据输入 控制模块
警报条件 控制模块
警报输出 控制模块
获取响应 信息 读传感数据
建立警报 条件
选择电话 号码 格式化显示 产生警报 信息 连通 电话网
生成显示
产生拨号 脉冲
运用变换分析方法建立系统的SC时需注意以下几点:
模块设计的次序时,应遵循对一个模块 的全部直接下属模块都设计完成后,再转向 另一个模块的下层模块的设计。 在设计下层模块时,应考虑模块的耦合 和内聚问题,以提高设计初始SC图的质量。 注意“黑盒”技术的使用。
配置信息
配置数据
启动/停 止系统
启动/停止消息 显示信息
显示器
传感器
传感数据 传感器 监测
警报类别
警报器
电话拨号音频 电话线
用户交互子系统的第二级DFD
用户命令数据
系统参数和数据
原始配置数 读配置 读系统 格式化的配置数据 读用户 据 文件 数据 命令类型 命令 启动命 配置命令 配置信息 令处理 启动/停止命令 确认口令 读口令 四位数 比较口 令与文件 配置数据 有效口令 无效口令 启动/停 止系统 配置数据
警报类别
警报器
电话拨号音频 电话线
步骤二 复审和精化软件数据流图
• 这一步主要是对软件需求规格说明书中 的分析模型进行精化,直至获得足够详 细的DFD
显示格式 配置信息 配置数据 传感器标志 的类型和位置 警报数据 电话号码
传感器信息
异常数 据判别 传感器标志类型 读取传 感数据 传感数据
产生警 警报类别 报信号
F2
2.1
F1 F5
2.2
F6
文件名称: F1 教材存量表 F2 缺书登记表 F5 待购教材表 F6 教材一览表 F7 进书登记表
2.3
F7
书库 保管员
缺书登记表={班号+姓名+书号+数量}
采 购
统计 命令 登记 命令
统计缺书
缺书 登记表
待购 教材表
登记进书
暂缺 书单 进书 通知 进书 通知
暂缺 书单
传感器信息
配置信息 配置数据 产生 显示
置传感器标识 获取响 应信息
格式化 显示
格式化标志的类型和位置
传感器标志的类型和位置
警报条件码 传感器标志 定时信息
建立报 警条件 号码表 选择电 话号码 电话号码 连通电 话网 传感器监测子系统的第三级
警报数据
产生警 报信号
警报类别
对应号码相应的音频
产生脉 冲信号
D
c
E
d
F
G
J
K
l m
Put l
m
Get b
a a b
B to c
b1 c1 b2 c2
c3 b3
L C3 Ac N 操作层
Write m
Read a
A
C1
C2
Ac 1 Ac 2
……
Dt 1
Dt 2
Dt 3
……
细节层
完全相似 局部相似
二、 消除重复功 能,改善软 件结构。
相似模块的各种合并方案的示意图
口令
启动/停止消息
显示信息 和状态
显示信息
产生无效 的信息
“再试” 信息
步骤五 把数据流图映射为事务处 理型的程序结构
• 事务处理型的程序结构由“输入”和 “散列”两部分组成,输入部分的构成 方法如变换分析法。每条动作都根据它 的信息流特性映射为一个程序子结构。
用户交互 执行
读用户命令 启动命令 处理
×× 修改值1* ×× 修改值2* …..** (序号) 其中 * 为分界符, * * 为结束符 3. 需求分析结果 贷款文件的DFD 图,是一种混合的 DFD 图。 输入为:卡片和旧记录。 输出为:新记录和报告。 4、将DFD图转换为模块结构图。
图3.28修改贷款文件DFD
需求分析结果 — DFD 图
计薪工人 实发工资
编外人员 实发工资
计时制 工资额
税收 扣款
薪金制 工资额
常规 扣款
编外人员 工资
编外人员 税款
编外人员 扣款
扇出:指模块调用其下属模块 数目。 调用的下属模块数应控制在 小于3-4个模块。 扇入:指模块的上级模块数。 (即共有多少个模块需要 调用这个模块)
四、 尽可能地减少高扇 出结构,随着深度 增大扇入。
传感器监测子系统的程序结构“雏形”
传感器监测执行
传感器数据输入 控制模块
警报条件 控制模块
警报输出 控制模块
获取响应 信息 读传感数据
建立警报 条件
选择电话 号码 格式化显示 产生警报 信息 连通 电话网
生成显示
产生拨号 脉冲
步骤七 精化结构雏形,改良软件质量
• 以“模块独立性”为指导思想,对模块 或和或拆,旨在追求高内聚,低耦合,易 实现,易测试,易维护的软件结构。
一、 模块 功能 的完 善化
练习:将DFD用变换分析和事务型 分析导出初始MSC c1
C1
b1
b
a
B
*
e h d C2 c3 E g J b2
* C3 b3
f
c2
D
G
k
K
F
j
l
L
m
A
初始MSC
d
系统
d k
k
Get d
c c
主加工
d
e,f
Put k
h k h,j
g,j
e,g
f
k
l
l
Get c
b b
相关文档
最新文档