知识卡片
内涵式与外延式元素的映射差异
内容
架构模型和源代码最根本的差异,在于内涵式(intensional)和外延式(extensional)元素的映射能力不同——外延式元素是枚举式的,能清晰对应到代码,如组件;内涵式元素使用通用量词(”所有过滤器都通过管道通信”),如设计决策、风格、不变量,标准编程语言无法直接表达。代码虽表达不出这些规则,却仍应遵守——没法在C++里写出”禁止依赖特定API”这条规则,但代码不该依赖它。
参考来源
- 位置:《恰如其分的软件架构》第10章《代码模型》10.1节《模型-代码差异》(源文件:_epub-src/OEBPS/text00096.html)
- 结论依据:原文引用Eden与Kazman(2003)对内涵式/外延式元素差异的识别,说明外延式元素(组件、组件装配)易于映射到源代码,内涵式元素(设计决策、风格、不变量)无法直接表达但代码仍应遵守。
- 原始内容:内涵(intensional)特性元素使用通用的量词……而外延(extensional)特性元素是枚举式的……源代码是外延式的,架构模型中的外延式元素……很容易与源代码映射。相反,内涵式元素,如设计决策、风格及不变量,很难与(外延式的)源代码关联。