单选题5.3 软件设计5 / 12
正在加载题目…
系统集成项目管理工程师 · 第三版 · 第5章 软件工程
共享全局数据与直接改另一个模块的私有数据,有什么区别?
12 道章节练习题
答案与解析
正确答案 C
甲依赖同一个公共数据环境,属于公共耦合;乙不是访问共同约定的公共区,而是直接碰另一个模块的内部数据,属于内容耦合,选C。
这题不要只抓住“都在访问内存”。真正的区别是数据属于共同环境,还是属于另一个模块不应被外部依赖的内部表示。全局区即使已经公开约定,多个模块仍可能因为读写同一状态相互影响,并不因此变成低耦合。乙的风险更直接:B调整内部缓冲区布局,A可能立刻出错,即便B的公开接口没有变化。题目判断的是两种关系的性质,不是在断言任何共享数据都绝对不可用;设计时仍要结合职责和接口权衡。
选项分析
- A
- 数据和标记耦合强调通过参数传递信息,本题分别是公共环境与另一模块内部数据,传递方式不同。
- B
- 把共同公共环境和对他方内部数据的侵入颠倒了,未抓住数据归属与正常接口边界。
- C
- 甲对应共享公共数据,乙对应直接访问他方内部数据,符合教材对两类耦合的区分。
- D
- 甲没有以参数控制内部逻辑,乙更不是无直接联系,而是直接越过接口修改另一模块内部数据。
容易混淆的地方
把访问同一块数据统称为公共耦合,忽略其中一块可能是别的模块原本应隐藏的内部数据。
再巩固一步
- 先问数据归谁、通过什么方式访问,再判断耦合类型;“公开约定”不自动等于“依赖很少”。
原创章节练习题 · 第三版 · 《系统集成项目管理工程师教程》第3版 · 5.3.1 · 纸书第214页查看完整题目与详解