一、架构评估中的重要概念
定义:软件架构评估是在对架构分析、评估的基础上,对架构策略的选取进行决策。
常用系统架构评估的方式:
1. 基于调查问卷或检查表的方法:该方法的关键是设计好问卷或检查表。缺点是在很大
程度上依赖于评估人员的主观判断。问卷用于通用领域,检查表用于特定领域。
2. 基于场景的评估方法:通过分析软件架构对场景的支持程度,较客观。
3. 基于度量的评估方法:建立在软件架构度量的基础上,设计三个基本活动: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方法:基于面向对象系统源代码的可维护性的度量。