知识卡片

内部质量指标:可重用性、可移植性、可集成性、可测试性

普通读书笔记卡

内容

除可维护性外,架构还有四项典型内部质量指标,各自解决不同层面的复用与验证问题。可重用性指合理设计系统、使系统结构及某些组件能在未来应用开发中重复使用的能力——架构的组件、连接件、配置信息就是重用的基本单位,一个组件的可重用程度取决于它与其他组件的耦合程度,耦合越松散,越能减少不必要的”尾随”组件、提高重用成功率;可重用性主要关注三类问题:避免在不同地方用不同代码实现相同功能(应识别通用功能和横向关注点如确认/日志/授权,把它们抽成独立组件);避免用多个相似方法实现细微差别的任务(应用参数扩展单个方法的能力);避免多个系统各自重复实现同一特征(应通过服务接口暴露功能、并使用平台无关的数据类型保证跨平台可访问)。可移植性指系统能在不同计算环境下运行的能力,关键手段是把对特定计算环境的所有假设都封装进某个组件(或最坏情况下少数几个易于修改的组件)中——架构中专门用于封装平台相关问题的”可移植性层面”,本质是应用信息隐藏原理的直接结果,即使底层环境切换、只要这层抽象接口本身不变,应用软件就无须跟着改动。可集成性指让其他独立开发的系统组件能与待开发系统协同运行的能力,取决于组件的外部复杂性、交互机制协议、组件功能划分的清晰程度、以及接口定义是否完整合理,其中”互操作性”这个概念专门衡量一组组件与另一系统协作能力的大小和难易程度。可测试性指通过测试(通常是基于运行的测试)使软件暴露缺陷的容易程度,与可观察性、可控制性密切相关——要有效测试一个系统,必须能控制每个组件的内部状态及输入、并能观察其输出结果,这涉及架构层次的文档编制水平、问题隔离程度、信息隐藏原理的应用程度等结构性问题。

参考来源

- 位置:《软件架构理论与实践》第11章《软件架构质量》"11.3.1 内部质量指标"节之"2-5"(源文件:_epub-src/OEBPS/text00089.html) - 结论依据:原文分别说明可重用性("一个组件的可重用程度依赖于它与其他组件的耦合程度")、可移植性("如果对任何特定计算环境的所有假设都仅包含在某个组件……我们就说该系统是可移植的")、可集成性("这取决于组件的外部复杂性、它们的交互机制和协议以及组件功能划分的清晰程度等")、可测试性("要对某个软件系统进行有效的测试,必须能够控制每个组件的内部状态及其输入,并能够观察其输出结果")的定义和关键要素,直接支撑本卡片结论。 - 原始内容:可移植性层面是一组软件服务的集合,它使应用软件具有与其环境的抽象接口。即使在系统从一个环境转换到另一个环境而对此抽象接口的具体实现进行修改时,该抽象接口也保持不变……可移植性层面是应用信息隐藏设计原理的直接结果。