第二章练习题
一、判断题
1. 软件的模块数越少,其软件成本越低。X
2. 软件模块之间的耦合性越弱越好。√
3. 模块化,信息隐藏,抽象和逐步求精的软件设计原则有助于得到高内聚,低耦合度的软件产品。 √
4. 耦合是指一个模块内各个元素彼此结合的紧密程度。X
5. 过大的模块可能是由于分解不充分造成的,即使降低模块独立性也必须继续分解。X
6. 在设计模块时,其宽度和深度要适当。√
7. 模块耦合的强弱取决于模块间接口的复杂程度。√
二、名字解释:
1. 抽象:现实世界中一定事物,状态或过程之间总存在着某些相似的方面。把这些相似的方面集中和概括起来,暂时忽略它们之间的差异,这就是抽象(抽出事物本质的共同的特征而暂不考虑它的细节,不考虑其它因素。)。
2. 模块化:就是把程序划分独立命名且可独立访问的模块,每个模块完成一个子功能,把这些模块集成起来构成一个整体,可以完成指定的功能满足用户的需求。
3. 逐步求精: 为了能集中精力解决主要问题而尽量推迟对问题细节的考虑。逐步求精是人类解决复杂问题时采用的基本方法,也是许多软件工程技术的基础。
4. 耦合:是对一个软件结构内不同模块之间互联程度的度量。
5. 内聚:标志一个模块内各个元素彼此结合的紧密程度,它是信息隐藏和局部化概念的自然扩展。
6. 模块独立:是模块化、抽象、信息隐藏和局部化概念的直接结果。
7. 信息隐蔽:指在设计和确定模块时,使得一个模块内包含的信息,对于不需要这些信息的其它模块来说,是不能访问的。
三、选择题
10. 在面向对象的设计中,我们应遵循的设计准则除了模块化、抽象、低耦合、高内聚以外,还有( B )。
A. 隐藏复杂性 B. 信息隐蔽
C. 经常类的复用 D. 类的开发
20、为了提高模块的独立性,模块内部最好是( C )
A、逻辑内聚 B、时间内聚
C、功能内聚 D、通信内聚
33、从心理学角度看,一次大模块分解为多少个子模块为宜。( B )
A、3±1 B、7±2
C、15±1 D、18±2
38、软件设计启发规则不包括( C )
A、在耦合方式上降低模块间接口的复杂性
B、模块功能应该可以预测
C、将模块的控制域保持在其作用域内
D、设计单入口单出口的模块
40、为了提高模块的独立性,模块之间的联系最好的是(A、公共耦合 B、控制耦合
C、内容耦合 D、数据耦合
)。
D
48、下列几种类型中,耦合性最弱的是( D )。
A、内容型 B、控制型
C、公共型 D、数据型
51. 内聚程度最高的是( A )
A、功能内聚 B巧合内聚 C、 过程内聚 D、信息内聚
89. 通信内聚、逻辑内聚、顺序内聚和时间内聚的内聚性从高到低顺序是(C)
A、 通信、逻辑、顺序、时间
B、 通信、时间、顺序、逻辑
C、 顺序、通信、时间、逻辑
D、 顺序、通信、逻辑、时间
90. 在下列四种模块的耦合性中,信息隐蔽性能最好的是(D)
A、控制耦合 B、内容耦合
C、标记耦合 D、数据耦合
103 .当一个模块直接使用另一个模块的内部数据,这种模块之间的耦合为(D)
A、数据耦合 B、公共耦合
C、标记耦合 D、内容耦合
134. 信息隐蔽概念与(A )这一概念直接的相关。
A、模块的独立性 B、模块类型的划分
C、软件结构定义 D、软件生命周期
141. 数据耦合和控制耦合相比,则(B )成立。
A、数据耦合的耦合性强 B、控制耦合的耦合性强
C、两者的耦合性相当 D、两者的耦合性需要根据具体情况分析
因篇幅问题不能全部显示,请点此查看更多更全内容