软件工程课本习题答案(3)

2019-04-09 10:19

第1章 作业参考答案

将上面的三部分合在一起,得到初始的软件结构,如下图所示。 输入数据 输入事务 调度 输出数据 存款业务 输入密码 处理存款 处理开户 打印存款单 打印开户单 记录存款信息 记录开户信息 记录密码 初始软件结构图

(4) 对软件结构进行精化。

1) 由于调度模块下只有两种事务,因此,可以将调度模块合并到上级模块中,如图所示。 输入事务 输入数据 处理存款 处理开户 输出数据 存款业务 输入密码 记录存款信息 记录开户信息 记录密码 打印存款单 打印开户单 将调度模块合并到上级模块后的软件结构

2) “记录密码”模块的作用范围不在其控制范围之内(即“输入密码”模块不在“记录密码”模块的控制范围之内),需对其进行调整,如图所示。 输入事务 处理存款 处理开户 输出数据 存款业务 记录存款信息 记录开户信息 记录密码 打印存款单 打印开户单 11 输入密码 第1章 作业参考答案

3) 提高模块独立性,对模块结构进行调整,如下图所示。 输入事务 调整后的模块结构图

4.9 将大的软件划分成模块有什么好处?是不是模块划分得越小越好?划分模块的依据是什么?

将大的软件划分成独立命名且可独立访问的模块,不同的模块通常具有不同的功能或职责。这种方法有利于将复杂的问题简单化,是分而治之策略的具体表现。

尽管模块分解可以简化要解决的问题,但模块分解并不是越小越好。当模块数目增加时,每个模块的规模将减小,开发单个模块的成本确实减少了;但是,随着模块数目增加,模块之间关系的复杂程度也会增加,设计模块间接口所需要的工作量也将增加。

划分模块的依据是,模块只具有单一的功能且与其他模块没有太多的联系。

4.11 结构化程序设计禁止使用goto语句吗?如果程序中使用了goto语句,是否就可以断定它是非结构化的?

结构化程序设计并不禁止使用goto语句。如果程序中使用了goto语句,并不能断定它是非结构化的。

4.12 对于给定的算法,如何判断它是否是结构化的?

对于给定的算法,如果符合以下三条原则,就可以判断它是结构化的。

(1) 使用语言中的顺序、选择、重复等有限的基本控制结构表示程序逻辑。 (2) 选用的控制结构只准许有一个入口和一个出口。

(3) 程序语句组成容易识别的块(Block),每块只有一个入口和一个出口。 4.13 对于图4-49所示的流程图,试分别用N-S图和PAD表示之。

输入密码 记录存款信息 打印存款单 记录开户信息 记录密码 打印开户单 处理存款 处理开户 存款业务 12

第1章 作业参考答案

START

P A T F END

B

T Q F

图4-49 流程图

对应的N-S图如下: 对应的PAD如下:

while P A B until !Q while P A until !Q B 4.14 图4-50所示的流程图完成的功能是使用二分查找方法在table数组中找出值为item的数是否存在。

(1) 判断此算法是否是结构化的,说明理由。

(2) 若算法是非结构化的,设计一个等价的结构化算法,并用N-S图表示。

13

第1章 作业参考答案

开始 i=(start+finish)/2 table(i)=item

T F T table(I)

table(i)>item T

finish=i-1

图4-50 二分查找算法的流程图

14

T (finish-start)>1 F table(start)=item F T F table(finish)=item T flag=0 flag=1 结束 第1章 作业参考答案

(1) 不是结构化的,最上面的循环有两个出口,最下面的分支有三个入口。 (2) 等价的结构化算法如下: I=(START+FINISH)/2 (FINISH-START)>1 && TABLE(I)!=ITEM I=(START+FINISH)/2 T START=I+1 T TABLE(I)

FLAG=0 (FINISH-START)>1 && FLAG==0 I=(START+FINISH)/2 T TABLE(I)==ITEM F FLAG=1 TABLE(I)


软件工程课本习题答案(3).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:Matlabsimulink在电力系统故障分析中的应用

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: