一.单选题(共18题,72.0分)
【单选题】下面关于面向数据流的设计方法的描述中,不正确的是( )。
A、任何一个信息处理系统的信息流都可以看作是一个变换流,只有当其具有明显的“事务”特征(即有一个明显的事务中心)时,才按照事务分析的映射规则进行转换。
B、面向数据流的设计方法可以利用前面需求阶段得到的数据流图,按照一定的映射规则生成相应的软件结构图。
C、数据流图有可能全局特征是变换流,而局部区域属于事务流,反之易可,所以在进行向软件结构图的转换过程中要区分全局特征和局部特征。
D、按照变换分析或事务分析从数据流图出发转换得到的软件结构图就是最终的软件总体设计结果,不需要再进行任何的调整和优化。
答案:D
解析:变换分析第七步:使用设计度量和启发式规则对第一次分割得到的软件结构进一步精化。
【单选题】模块内聚性用于衡量模块内部各成份之间彼此结合的紧密程度。一组语句在程序中多处出现,为了节省内存空间把这些语句放在一个模块中,该模块的内聚性是( )的。
A、逻辑内聚
B、偶然内聚
C、功能内聚
D、信息内聚
答案:B
解析:模块内各部分之间没有联系,或者即使有联系,这种联系也很松散。——偶然内聚
【单选题】为了提高模块的独立性,模块之间应该选择下列( )耦合度?
A、标记耦合
B、数据耦合
C、功能耦合
D、控制耦合
答案:B
注:不存在功能耦合
【单选题】关于软件设计规约,以下说法错误的是( )。
A、概要设计规约对应于系统的确认测试
B、详细设计规约主要作为软件设计人员与编程人员之间交流的媒体
C、概要设计规约主要作为软件项目管理人员、系统分析人员与设计人员之间交流的媒体
D、详细设计规约对应于系统的单元测试
答案:A
解析:
概要设计 - 系统测试
需求分析 - 确认测试
【单选题】( )着重反映的是模块间的隶属关系,即模块间的调用关系和层次关系。
A、实体关系图
B、系统结构图
C、程序流程图
D、数据流图
答案:B
【单选题】如果一个模块调用下层模块时传递一个数据结构,而被调用的模块只使用其中一部分数据,这种耦合属于( )。
A、数据耦合
B、控制耦合
C、内容耦合
D、标记耦合
答案:D
【单选题】软件体系结构风格代表了软件体系结构设计中的惯用模式,在下面几种体系结构风格中,( )支持基于抽象程度递增的系统设计。
A、隐式调用风格
B、黑板风格
C、管道-过滤器风格
D、层次系统风格
答案:D
层次系统风格优点:支持基于抽象程度递增的系统设计,使设计者可以把一个复杂系统按递增的步骤进行分解。
【单选题】( )是数据说明、可执行语句等程序对象的集合,它是单独命名的并可通过名字访问。
A、模块
B、数据块
C、程序块
D、复合语句
答案:A
解析:模块的定义。
【单选题】( )把已确定的软件需求转换成特定形式的软件表示,使其得以实现。
A、详细设计
B、系统设计
C、逻辑设计
D、软件设计
答案:D
解析:软件设计是将需求准确转换为完整的软件产品或系统的唯一办法;
需求 ==> 软件实现,这整个过程是软件设计。
【单选题】内聚性和耦合性是度量软件模块独立性的重要准则,软件设计时应力求( )。
A、高内聚,高耦合
B、高内聚,低耦合
C、低内聚,高耦合
D、低内聚,低耦合
答案:B
【单选题】模块内聚性用于衡量模块内部各成份之间彼此结合的紧密程度。模块中所有成分引用共同的数据,该模块的内聚性是( )的。
A、过程内聚
B、通信内聚
C、功能内聚
D、顺序内聚
答案:B
【单选题】以下( )不是总体设计环节的工作。
A、结构设计,即确定系统由哪些模块组成,以及这些模块之间的关系
B、过程设计,即确定每个模块的具体实现算法和使用的局部数据结构
C、确定系统的最佳实现方案
D、制定测试计划,在软件开发的早期阶段考虑测试问题,可以促使软件设计人员在设计时注意提高软件的可测试性
答案:B
【单选题】软件体系结构风格代表了软件体系结构设计中的惯用模式,在下面几种体系结构风格中,( )适合构造批处理的系统。
A、管道/过滤器风格
B、数据抽象与面向对象风格
C、黑板风格
D、客户机-服务器风格
答案:A
【单选题】管道过滤器风格的特点不包括( )。
A、适合处理与用户有交互的应用
B、该风格使得软构件具有良好的隐蔽性和高内聚、低耦合的特点
C、支持软件重用和构件的并行执行
D、允许对吞吐量和死锁等系统性质的分析
答案:A
【单选题】下面关于控制耦合的描述中,不正确的是( )
A、控制耦合意味着不良的模块结构,必须将其转换为数据耦合。
B、如果两个模块间传递的信息是控制信息,即模块A通过向模块B发送一个控制变量,模块B根据该控制变量的值决定在多个功能中执行哪一个,这种情况下模块A和B之间存在控制耦合。
C、在控制耦合下,被调用模块B其实是一个单入口多功能模块,对模块B的任何改动都会影响其调用模块A。
D、在控制耦合下,被调用模块B本身是一个逻辑内聚模块。
答案:A
解析:控制耦合其实特别常见,不是什么很坏的结构。
【单选题】关于程序模块化的启发规则有若干条,以下规则中不符合模块化原则的是( )。
A、将模块的作用范围限制在模块的控制范围之内
B、降低上层模块的扇出, 提高中层模块的扇出
C、通过模块的合并和分解,降低模块的耦合度,提高模块的内聚性
D、降低模块之间接口的复杂性,避免“病态连接”
答案:B
解析:模块化原则更看重模块的独立,而且一般是增加上层的扇出。
【单选题】下列对软件体系结构的描述错误的是( )。
A、软件体系结构是对子系统、系统构件以及它们之间相互关系的描述。
B、子系统和构件一般定义在不同的视图内,以显示软件系统的相关功能属性和非功能属性。
C、软件体系结构是软件系统的一组关键设计决策。
D、软件体系结构是软件需求活动的一种工作产品。
答案:D
【单选题】下面的( )不是模块化设计的目的。
A、提高模块的可靠性和复用性
B、清楚地描述系统的功能和性能
C、易于维护和功能扩展
D、降低程序设计的复杂性
答案:B
解析:模块设计的目的:降低模块之间的依赖关系,使各模块更加独立和可维护。
二.判断题(共7题,28.0分)
【判断题】模块的控制域必须在模块的作用域内。否则,必须将判定上移或将受影响的模块下移。
答案:×
解析:模块的作用域应该在控制域之内。
【判断题】内聚标志一个模块内各个元素彼此结合的紧密程度,模块独立性由弱到强的同时模块内聚性由低到高的顺序是:功能内聚、顺序内聚、通信内聚、过程内聚、时间内聚、逻辑内聚、偶然内聚。
答案:×
解析:刚好反了。
【判断题】基于事件/隐式调用风格增加了构件之间进行数据交换的难度。
答案:√
【判断题】概要设计通过对系统的结构表示进行细化,得到软件的数据结构和算法。
答案:×
解析:概要设计不涉及具体算法。
【判断题】信息隐藏是指把一些关系密切的元素物理地放得彼此靠近。
答案:×
解析:
信息隐藏:模块应该设计成其中包含的信息(过程和数据)对不需要这些信息的其他模块来说是不可访问的。
局部化:指把一些关系密切的软件元素物理地放得彼此靠近 。
【判断题】错误处理类模块是典型的逻辑内聚模块。
答案:√
【判断题】变换分析得到的结构图是一个三分支结构,即包括输入部分、变换中心部分和输出部分;而事务分析得到的结构图是一个二分支结构,即一个接收分支和一个发送分支。
答案:√