知识卡片

AHP层次分析法处理质量属性冲突

普通读书笔记卡

内容

架构评估涉及多种质量属性以及非功能非质量因素的评估,这些属性之间经常存在冲突,层次分析法(AHP,20世纪70年代由Saaty提出)是多种架构评估度量方法的基础理论,专门用来辅助解决这类冲突。AHP把复杂问题中各种因素通过划分相联系的有序层次条理化,一般在同一层次内通过两两对比,把专家意见和客观判断结合起来,对元素重要性做定量描述,再用数学方法计算反映每层元素相对重要性次序的权值,最后通过所有层次的总排序计算所有元素的相对权重并排序——分析度量一般分五步:确定系统总目标(涉及范围、措施方案、准则、约束条件,广泛收集相关信息);建立多层次递阶结构(按目标不同、功能差异把系统分成几个等级层次);通过构造比较判断矩阵确定相邻层次元素间的相对权值;计算各层元素对系统目标的合成权重、进行总排序;根据计算结果考虑相应决策。AHP能帮助对提供的设计方案做整体排名,但书中也指出了它的局限:AHP不能权衡这些因素的相对大小,评估结果中敏感点在中等优先级属性的改变会影响最终设计方案;针对这个局限,有研究者提出了适用于用AHP确定关键权衡点和敏感点的深入分析技术。AHP方法与Dobrica和Niemela提出的架构敏感度分析形成对照:敏感度分析是定性方法,需要通过实验或其他实证研究才能完成,查找最小改变就能引起最后结果改变的关键决策;AHP则是定量的架构评价方法,用AHP做敏感度分析时先给出质量属性权重的优先级范围,如果未来优先级的改变落在这个范围内、当前排名仍然有效,超出范围则可能存在更好的选择——但书中坦承,质量需求和权重范围之间的具体关系目前还不够明确,这是AHP方法尚未彻底解决的一个开放问题。

参考来源

- 位置:《软件架构理论与实践》第13章《软件架构度量和评估》"13.2.6 AHP方法"节(源文件:_epub-src/OEBPS/text00105.html) - 结论依据:原文说明AHP方法分析度量的五个步骤,并指出"AHP是一种重要的辅助决策方法,通常被用来解决这种冲突……然而它不能权衡这些因素的相对大小",随后说明AHP与Dobrica敏感度分析的区别("敏感度分析是一种定性的评价方法……AHP方法是一种定量的架构评价方法"),直接支撑本卡片结论。 - 原始内容:软件架构评估包括对各种质量属性的评估以及其他一些非功能非质量因素的评估,这些属性之间有时存在某些冲突。AHP是一种重要的辅助决策方法,通常被用来解决这种冲突。AHP可以帮助对提供的设计方案进行整体排名。然而它不能权衡这些因素的相对大小。