本章练习一答案



一、单选:

1. 正确答案:B

2. 正确答案:C

3. 正确答案:A

4. 正确答案:D

5. 正确答案:A

6. 正确答案:D

7. 正确答案:A

8. 正确答案:B

9. 正确答案:B

10. 正确答案:C

11. 正确答案:A

12. 正确答案:D

13. 正确答案:C

14. 正确答案:A

15. 正确答案:C

16. 正确答案:B

17. 正确答案:B

18. 正确答案:C

19. 正确答案:B

20. 正确答案:D


二、填空题:

1. 软件概要设计说明书

2. 模块

3. 深度、宽度、扇入、扇出

4. 数据耦合

5. 公共耦合

6. 通信内聚

7. 受该模块内一个判定影响的所有模块

8. 模块本身以及其所有下属模块

9. 数据流图

10. 软件评审


三、简答:

1. 什么是软件概要设计,该阶段的基本任务是什么?

答案解析:

⑴在软件设计阶段,需要把软件的逻辑模型变换为物理模型,着手实现软件的需求,并将设计的结果反映在"设计规模说明书"文档中,是一个把软件需求转换为软件表示的过程.软件概要设计只描述软件总的体系结构,因此也称为软件结构设计.

⑵基本任务包括:①设计软件系统结构(简称软件结构);②数据结构及数据库设计;③编写概要设计文档;④评审

2. 软件设计的基本原理包括哪些内容?

答案解析:

⑴模块化,指解决一个复杂问题时自顶向下逐层把软件系统划分成若干模块的过程;

⑵抽象,指抽出事物本质的共同的特性而暂不考虑它的细节,不考虑其它因素;

⑶信息隐蔽,指在设计和确定模块时,使得一个模块内包含的信息(过程或数据),对于不需要这此信息的其它模块来说,是不能访问的;⑷模块独立性,指每个模块只完成系统要求的独立子功能,并且与其它模块的联系最少且接口简单.模块独立性包括两个度量标准:耦合性,内聚性.

3. 模块的耦合性,内聚性包括哪些种类?各表示什么含义?

答案解析:

⑴耦合性包括:①无直接耦合,指两个模块之间没有直接联系,它们分别从属于不同模块的控制与调用,它们之间不传递任何信息;②数据耦合,指两个模块之间有调用关系,传递的是简单的数据值,相当于高级语言中的值的传递;③标记耦合,指两个模块之间传递的是数据结构,如高级语言中的数组名,记录名,文件名等这此名字即为标记,其实传递的是这个数据结构的地址;④控制耦合,指一个模块调用另一个模块时,传递的是控制变量(如开关,标志等),被调用模块通过该控制变量的值有选择地执行块内某一功能;⑤公共耦合,指通过一个公共数据环境相互作用的那些模块间的耦合;⑥内容耦合,指一个模块直接使用另一个模块的内部数据,或通过非正常入口而转入另一个模块内部.

⑵内聚性包括:①偶然内聚,指一个模块内的各处理元素之间没有任何联系;②逻辑内聚,指模块内执行几个逻辑上相似的功能,通过参数确定该模块完成哪一个功能;③时间内聚,把需要同时执行的动作组合在一起形成的模块;④通信内聚,指模块内所有处理元素都在同一个数据结构上操作(有时称之为信息内聚),或者指各处理使用相同的输入数据或者产生相同的输出数据;⑤顺序内聚,指一个模块中各个处理元素都密切相关于同一功能且必须顺序执行,前一功能元素的输出就是下一功能元素的输入;⑥功能内聚,指模块内所有元素共同完成一个功能,缺一不可.

4.简述软件结构设计优化准则.

答案解析:

⑴划分模块时,尽量做到高内聚,低耦合,保持模块相对独立性.并以此原则优化初始的软件结构.

⑵一个模块的作用范围应在其控制范围之内,且判定所在的模块应与受其影响的模块在层次上尽量靠近.

⑶软件结构的深度,宽度,扇入,扇出应适当.

⑷模块的大小要适中.

⑸模块的接口要简单,清晰,含义明确,易于实现,测试与维护.

5.变换型数据流图与事务性数据流图有什么区别?

答案解析:

⑴变换型数据流图包含输入,变换(或称处理)和输出3个部分,即数据处理的工作过程为三步:取得数据,变换数据和给出数据.变换是系统的主加工,对输入数据进行变换得到输出数据,因此变换型的DFD是一个顺序结构.

⑵事务型数据流图的事务中心将输入流分离成许多发散的数据流,形成多个加工路径,根据输入的值选择其中一个路径来执行.

6.简述变换分析设计与事务分析设计的设计步骤.

答案解析:

⑴变换分析设计步骤:

①确定DFD中的变换中心,逻辑输入和逻辑输出;

②设计软件结构的顶层和第一层→变换结构;

③设计中,下层模块;

④根据设计准则对初始的软件结构进行优化.

⑵事务分析设计步骤:

①确定DFD中的事务中心和加工路径;

②设计软件结构的顶层和第一层→事务结构;

③事务结构中,下层模块的设计,优化等工作同变换结构.