架构评估方法相关知识总结

一、架构评估中的重要概念

定义:软件架构评估是在对架构分析、评估的基础上,对架构策略的选取进行决策。

常用系统架构评估的方式:

  1. 基于调查问卷或检查表的方法:该方法的关键是设计好问卷或检查表。缺点是在很大

程度上依赖于评估人员的主观判断。问卷用于通用领域,检查表用于特定领域。

  1. 基于场景的评估方法:通过分析软件架构对场景的支持程度,较客观。

  2. 基于度量的评估方法:建立在软件架构度量的基础上,设计三个基本活动:1. 首先需

要建立架构属性和度量之间的映射原则,2. 然后从软件架构文档中获取度量消息,3.

根据映射原则推导出系统的质量属性,较客观。

敏感点:一个或多个构件的特性,能够影响系统的某个质量属性

权衡点:影响多个质量属性的特性,是多个质量属性的敏感点

风险点:架构设计中潜在的、存在问题的架构决策所带来的隐患

非风险点:不会带来隐患的架构决策

风险承担者:也称为利益相关人。保证架构设计能够满足自己的目标

质量属性场景相关概念:

场景:一个具体的质量属性需求,是利益相关者与系统的交互的简单陈述,是一种面向

特定质量属性的需求。

刺激源:某个生成该刺激的实体

刺激:当刺激达到系统是需要考虑的条件

环境:该刺激在某些条件内发生,刺激发生时系统可能处于的运行情况

制品:被激励的系统,也可能是系统的一部分

响应:激励达到后制品的采取的行动

响应度量:响应发生时,能够以某种发生对其进行度量

二、SAAM架构评估方法(软件结构分析法)

SAAM最初用于比较不同软件体系的架构,以分析系统架构的可修改性。后来扩展到其他属性。

  1. 特定目标:SAAM的目标是对描述应用程序属性的文档,验证其基本的架构设计假设和原则。不仅能评估架构对于特定系统需求的使用能力,也能用于比较不同的架构。

  2. 评估技术:SAAM采用的评估技术是场景技术

  3. 质量属性:SAAM把任何形式的质量属性都具体化为场景,主要质量属性是可修改性

  4. 风险承担者:SAAM协调不同参与者之间感兴趣的共同方面

  5. 架构描述:SAAM用于架构的最后版本,但早于详细设计

6.方法活动:SAAM的主要输入是:问题描述、架构描述、需求声名 ,SAAM分析评估架构的过程有五个步骤:1. 场景开发,2. 架构描述,3. 单个场景评估, 4. 场景交互评估, 5. 总体评估

三、ATAM架构评估方法(架构权衡分析法)

ATAM是在SAAM的基础上发展起来的,主要针对性能、实用性、可靠性、安全性和可修改性。

  1. 特定目标:在考虑多个相互影响的质量属性的情况下,从原则上提供一种理解软件架构的能力的方法。

  2. 质量属性:ATAM方法分析多个相互竞争的质量属性

  3. 风险承担者:ATAM需要所有系统相关人员参与

  4. 架构描述:从架构的4+1视图派生而来

  5. 评估技术:集成了许多优秀的单一理论模型

  6. 活动方法:1. 场景和需求的收集,2. 架构视图和场景的实现,3. 属性模型的构建, 4. 分析和折中

场景和需求收集阶段:1. 收集场景,2. 收集需求分析/约束/环境

架构视图和场景实现阶段:3. 描述体系结构视图,4.实现场景

属性模型的构建阶段:5. 特定属性分析(休息的单一理论)

分析和折中阶段:6. 标志折中,7. 标志敏感度

ATAM对质量属性分析的工具: 质量效用树。质量效用树对质量属性进行分类和优先级排序,结构为:树根------质量属性------属性分类------质量属性场景。主要关注:性能,安全性,可修改性,可用性。

四、CBAM架构评估方法(成本效益分析法)

定义:从经济角度建立成本、收益、风险和进度等方面的软件的经济模型。

核心思想:质量属性为项目干系人带来的收益,根据投资回报比(ROI)选择架构策略。

CBAM在ATAM结束后开始,主要步骤为:

  1. 场景整理, 2. 对场景进行求精, 3. 确定场景的优先级, 4. 分配效用, 5. 架构策略设计哪些质量属性及响应级别,6. 使用内插法确定期望的质量属性效用级别的效用,7. 计算各种架构策略的总收益, 8. 根据受成本限制影响的ROI选择架构策略

五、其他评估方法

SAEM方法:将软件架构看作一个最终产品以及设计过程中的一个中间产品,从外部质量和内部质量两个角度来描述他的评估模型,旨在为软件架构的质量评估擦黄建一个基础框架。

SAABNet方法:依赖于专家知识,该方法来愿意AI,允许不确定、不完整的知识的推理。只用了BBN来表示和使用开发中的知识。

SACMM方法:是一种软件架构修改的多方案。

SASAM:通过对预期架构和实际架构进行映射和比较来静态的评估软件架构,并将静态评估于架构评估方法结合。

ALRRA方法:架构可靠性风险评估的方法。

AHP:层次分析法,是多种架构评估度量方法的基础理论。

COSMIC+UML方法:基于面向对象系统源代码的可维护性的度量。

相关推荐
一叶祇秋3 小时前
Leetcode - 周赛417
算法·leetcode·职场和发展
_.Switch4 小时前
Python机器学习:自然语言处理、计算机视觉与强化学习
python·机器学习·计算机视觉·自然语言处理·架构·tensorflow·scikit-learn
邵泽明5 小时前
面试知识储备-多线程
java·面试·职场和发展
戊子仲秋5 小时前
【LeetCode】每日一题 2024_10_2 准时到达的列车最小时速(二分答案)
算法·leetcode·职场和发展
夜流冰6 小时前
工具方法 - 面试中回答问题的技巧
面试·职场和发展
penguin_bark7 小时前
LCR 068. 搜索插入位置
算法·leetcode·职场和发展
feng_xiaoshi8 小时前
【云原生】云原生架构的反模式
云原生·架构
架构师吕师傅10 小时前
性能优化实战(三):缓存为王-面向缓存的设计
后端·微服务·架构
团儿.12 小时前
解锁MySQL高可用新境界:深入探索MHA架构的无限魅力与实战部署
数据库·mysql·架构·mysql之mha架构
艾伦~耶格尔21 小时前
Spring Boot 三层架构开发模式入门
java·spring boot·后端·架构·三层架构