信息隐蔽是开发整体程序结构时使用的法则,通过信息隐蔽可以提高软件的 (问题1) 、可测试性和 (问题2) 。
信息隐蔽是软件结构化设计的核心原则之一,核心思想是将程序各模块的内部实现细节、易变逻辑或与平台强相关的逻辑限制在模块内部,仅通过定义清晰的外部接口完成模块间交互,本质是降低模块间的耦合度。这一原则可直接提升多项软件质量属性:一是可修改性,修改模块内部细节时不会影响其他依赖该模块的外部组件,能大幅缩小改动范围;二是可移植性,将与硬件、操作系统等平台相关的细节隐藏后,跨平台迁移时只需调整对应模块,可显著降低迁移成本;三是可测试性,模块内部逻辑与外部隔离,便于针对单个模块开展独立测试,提升测试的效率与准确性。此外,信息隐蔽思想与面向对象中的封装概念思路相似,但信息隐蔽是更通用的设计原则,封装是面向对象中实现信息隐蔽的具体手段,二者并不完全等同;同时信息隐蔽还能间接支撑软件的可扩充性,为后续功能扩展提供灵活的结构基础。
本题考察的是软件质量属性与信息隐蔽原则的相关概念。
信息隐蔽(Information Hiding)是软件设计中重要的结构化原则,其核心思想是将每个程序成分的内部细节限制在模块内部,不对外暴露实现细节,仅通过定义良好的接口进行交互。这一原则可以降低模块间的耦合度,减少外部变化对模块内部的影响。
问题1:
A选项 可修改性:信息隐蔽将可能变化的部分封装在模块内部,减少对其他模块的影响,从而显著提高软件的可修改性,正确。
B选项 可扩充性:可扩充性强调系统在不破坏原有结构的前提下扩展新功能,信息隐蔽有助于可扩充性,但题干重点是“可修改性”,因此不选。
C选项 可靠性:可靠性强调软件在规定条件下完成功能的能力,与信息隐蔽的直接关系较弱,错误。
D选项 耦合性:耦合性是模块间的依赖程度,信息隐蔽的目的是降低耦合性,但它本身不是提升耦合性,因此错误。
所以选择 A。
问题2:
A选项 封装性:封装是面向对象的概念,与信息隐蔽思想相似,但题干要求的是信息隐蔽直接提升的质量特性,而不是方法论,错误
B选项 安全性:安全性关注数据保护和防止非法访问,与信息隐蔽有间接关系,但不是主要提升对象,错误。
C选项 可移植性:信息隐蔽可以将与硬件、操作系统等相关的细节隐藏在模块内部,减少平台迁移时的改动,从而提高可移植性,正确。
D选项 可交互性:指系统与用户交互的能力,与信息隐蔽关系不大,错误。
所以选择 C。
