知识卡片
从SAAM/ATAM衍生的方法谱系各自解决的独特问题
内容
除了通用方法和面向特定质量属性的方法,书中还有一批方法各自针对SAAM/ATAM框架内某个具体的”痛点”做了扩展,每种方法的价值在于精确定位了自己要解决的那一个具体问题。SAAMCS针对”如何发现实现起来复杂的场景”这个问题,定义了二维框架(5类复杂场景×4种修改来源),并设计了量化场景复杂度的度量装置。ESAAMI针对”评估经验无法在同领域项目间复用”的问题,把SAAM集成进面向对象、以重用为基础的开发过程,引入”分析模板”(原型场景、评估协议、原型评估、架构提示权重等可复用产品)沉淀成领域知识库。SAAMER针对”评估到底该在什么时候停止生成场景”,用质量功能部署(QFD)计算每个质量属性的”失调因子”(覆盖范围除以优先级),因子小于1就说明该质量属性的场景还不够、需要继续生成。QAW解决的是”架构还没完全确定、或采购场景下多个厂商互相竞标时该怎么评估”的问题,从ATAM派生而来,把场景转化成结构化的”测试案例”(包含上下文、要点与问题、效用树三部分),让评估在架构完全确定前也能进行,尤其适合政府/军方大规模系统采购。ASAAM解决的是”横切关注点(如日志、事务)在传统场景评估中难以被识别”的问题,借用面向方面编程的”方面”概念,定义”方面场景”专门捕捉对多个组件产生横切影响的场景,把组件分类为内聚组件、纠缠组件、组合组件、不明组件,为架构重构提供依据。HoPLAA解决的是”产品线架构(一套架构要同时支撑多个产品变体)的评估需要区分’所有产品通用’和’仅针对某些产品’两类质量目标”这个问题,用两阶段评估(产品线架构评估→具体产品架构评估)分别处理。CBAM解决的是”如何把架构决策的选择转化成经济账”的问题,基于每个候选决策的成本、收益、计划和内在风险计算经济权衡,原始CBAM依赖利益相关者投票、准确性不足,后续研究者引入AHP/ANP两种决策方法做配对比较来改进。CPASA解决的是”敏捷开发中需求不断变化、性能评估该怎么嵌入每次迭代”的问题,把PASA的评估步骤压缩、并用自动化工具UML-JMT把架构模型和场景等价转化为排队网络性能模型,让性能评估能跟上敏捷迭代的节奏。PSAEM解决的是”每次架构评估积累的知识很难被下一次评估复用”的问题,从已知架构模式中提取泛化场景(源/刺激/环境/织品/响应/响应度量六要素)沉淀成可复用的评估资产。OATAM则用两个本体元模型(SAO描述架构本身、OABAS描述架构风格与质量属性的关联)把评估所需的知识结构化,解决知识复用和评估效率问题。这些方法共同证明:架构分析领域的进步很少来自推翻SAAM/ATAM重新发明,而是持续针对某个具体短板打补丁。