软件架构评估 #
问题:
1、为什么要进行架构评估?
2、架构评估到底评什么?
3、架构评估怎么评?
1. 名词解释 #
敏感点:是一个或多个构件 (和/或构件之间的关系)的特性。
权衡点:是影响多个质量属性的特性,是多个质量属性的敏感点。
风险点:是指架构设计中潜在的、存在问题的架构决策所带来的隐患。
非风险点:是指不会带来隐患,一般以“xxx要求是可以实现 (或接受)的”方式表达。
2、架构评估方法 #
架构评估方法包含3种方式:基于问卷调查的方式、基于度量的方式、基于场景的方式。
2.1 基于场景的评估方法 #
- 什么是场景
场景(scenarios):在进行体系结构评估时,一般首先要精确地得出具体的质量目标,并以之作为判定该体系结构优劣的标准。为得出这些目标而采用的机制叫做场景。场景是从风险承担者的角度对与系统的交互的简短描述。在体系结构评估中,一般采用刺激(stimulus)、环境(environment)和响应(response)三方面来对场景进行描述;刻画质量属性的手段由六部分组成:刺激源、刺激、环境、制品、响应、响应度量。
基于场景的评估方法包含3种:软件架构分析法(SAAM)、架构权衡分析法(ATAM)、成本效益分析法(CBAM)。
- SAAM:最初用于分析架构可修改性,后扩展到其他质量属性。
SAAM的主要输入是问题描述、需求说明和架构描述,其分析过程主要包括场景开发、架构描述、单个场景评估、场景交互和总体评估。
- ATAM:在SAAM的基础上发展起来的,主要针对性能、可用性、安全性和可修改性(需要对软件质量属性进行优先级排序),在系统开发之前,对这些质量属性进行评价和折中。整个评估过程强调以属性为核心。
2.2 质量效用数 #
M:middle,L:low,H:high;在识别出质量属性描述后,通常采用效用树对质量属性的描述进行刻画与排序。
从树根到叶子结点分别是:根->质量属性->属性分类(细化)->场景。