软件工程习题答案.doc
文本预览下载声明
4.8 用面向数据流的方法设计第3章习题3.4所描述的银行存款业务的软件结构,并使用改进方法对模块结构进行精化。
(1) 对第3章习题3.4给出的数据流图进行精化,确定其边界,如下图所示。
(2) 对上图按事务型数据流进行处理,完成第一级分解,得到顶层和一层模块结构图。
第一级分解后的结构图
(3) 完成第二级分解。对上图所示的“输入数据”、“输出数据”和“调度”模块进行分解,得到未经精化的输入结构、输出结构和事务结构。
未经精化的输入结构
未经精化的输出结构
未经精化的事务结构
将上面的三部分合在一起,得到初始的软件结构,如下图所示。
初始软件结构图
(4) 对软件结构进行精化。
1) 由于调度模块下只有两种事务,因此,可以将调度模块合并到上级模块中,如图所示。
将调度模块合并到上级模块后的软件结构
2) “记录密码”模块的作用范围不在其控制范围之内(即“输入密码”模块不在“记录密码”模块的控制范围之内),需对其进行调整,如图所示。
3) 提高模块独立性,对模块结构进行调整,如下图所示。
调整后的模块结构图
4.13 对于图4-49所示的流程图,试分别用N-S图和PAD表示之。
图4-49 流程图
对应的N-S图如下: 对应的PAD如下:
存款业务
输入数据
调度
输出数据
输入数据
输入事务
输入密码
输出数据
打印存款单
打印开户单
调度
处理存款
处理开户
记录存款信息
记录开户信息
记录密码
存款业务
输入数据
调度
输出数据
输入事务
输入密码
打印存款单
打印开户单
处理存款
处理开户
记录存款信息
记录开户信息
记录密码
存款业务
输入数据
输出数据
输入事务
输入密码
打印存款单
打印开户单
处理存款
处理开户
记录存款信息
记录开户信息
记录密码
存款业务
输入事务
输出数据
输入密码
打印存款单
打印开户单
处理存款
处理开户
记录存款信息
记录开户信息
记录密码
存款业务
输入事务
输入密码
打印存款单
打印开户单
处理存款
处理开户
记录存款信息
记录开户信息
记录密码
F
START
A
B
Q
END
T
F
T
P
while P
A
until !Q
B
while P
A
B
until !Q
显示全部