题库系统集成项目管理工程师

系统集成项目管理工程师 · 第三版 · 第5章 软件工程

共享全局数据与直接改另一个模块的私有数据,有什么区别?

12 道章节练习题
单选题5.3 软件设计5 / 12

方案甲中两个模块都读写约定的全局配置区;方案乙中模块A绕过B的公开接口,直接修改本应仅供B内部使用的缓冲区。甲、乙主要体现()。

选择答案
未作答
答案与解析

正确答案 C

甲依赖同一个公共数据环境,属于公共耦合;乙不是访问共同约定的公共区,而是直接碰另一个模块的内部数据,属于内容耦合,选C。

这题不要只抓住“都在访问内存”。真正的区别是数据属于共同环境,还是属于另一个模块不应被外部依赖的内部表示。全局区即使已经公开约定,多个模块仍可能因为读写同一状态相互影响,并不因此变成低耦合。乙的风险更直接:B调整内部缓冲区布局,A可能立刻出错,即便B的公开接口没有变化。题目判断的是两种关系的性质,不是在断言任何共享数据都绝对不可用;设计时仍要结合职责和接口权衡。

选项分析

A
数据和标记耦合强调通过参数传递信息,本题分别是公共环境与另一模块内部数据,传递方式不同。
B
把共同公共环境和对他方内部数据的侵入颠倒了,未抓住数据归属与正常接口边界。
C
甲对应共享公共数据,乙对应直接访问他方内部数据,符合教材对两类耦合的区分。
D
甲没有以参数控制内部逻辑,乙更不是无直接联系,而是直接越过接口修改另一模块内部数据。

容易混淆的地方

把访问同一块数据统称为公共耦合,忽略其中一块可能是别的模块原本应隐藏的内部数据。

再巩固一步

  • 先问数据归谁、通过什么方式访问,再判断耦合类型;“公开约定”不自动等于“依赖很少”。
原创章节练习题 · 第三版 · 《系统集成项目管理工程师教程》第3版 · 5.3.1 · 纸书第214页

练习小结

题目纠错

未发送。正式接收渠道尚未接通。

查看纠错信息