徐莹
[摘要] 软件体系结构评价在软件密集型系统的生命周期中具有至关重要的作用。本文提出了一种结构权衡分析的软件体系结构评价方法,该方法非常注重软件体系结构知识的重用性。体系结构权衡分析方法(Architecture Trade-off Analysis Method, ATAM)以能力参数描述、场景和基于能力参数的体系结构3个概念为核心,获取体系结构要素的折中点、敏感点、非风险点和风险点,实现体系的多目标优化,具有变量空间优化、模型粒度适中、可操作性强等特点。
[关键词] 体系结构权衡分析方法; 体系结构优化; 能力参数
doi : 10 . 3969 / j . issn . 1673 - 0194 . 2012 . 04. 043
[中图分类号]TP311.5;F273.1[文献标识码]A[文章编号]1673 - 0194(2012)04- 0073- 02
0引言
软件体系结构在软件密集的系统的生命周期中具有重要的作用。因此,有效地分析和评价软件体系结构以提取出利益相关者角度的一些不完整规格说明非常重要。实际上,该规格说明是关于软件体系结构的一个文档,这个文档用以将评价过程转换成有效的规范。另一方面,目前的文档记录方法(如UML)大部分集中于标记规格说明,这种在记录体系结构的决定方面的不足引出了体系结构评价。体系结构决策采用不同的性能属性,同时这些属性在风险评估中是一些关键性的因素,当进行评价时,它们是体系结构的敏感点。此外,体系结构模式在评价中具有重要作用,它可以用于从早先的经验中提取并推导出可能的组合设计决策。
一些基于软件体系结构评价方法的方案,如软件体系结构分析方法(SAAM)、体系架构权衡分析方法(ATAM)等,它们试图提取软件体系结构决策以识别风险及评价用以完成性能属性目标的多种决策结合的可能性。一些适当的信息可以被提取出并系统地记录下来以用于支持软件体系结构评价过程。因此,有一个完备的能够很好表达信息的基础结构用以记录当前体系结构知识对于以一个结构化的方式重用过去评价经验来说是很重要的。
本文采用ATAM方法,建立基础结构或者元模型,用于软件体系结构的分析和评价。通过开发用于说明文档资料和评价过程中的体系结构知识的重用性的本体,本文提出了两种元模型。
1 ATAM
1.1ATAM定义
ATAM方法是美国卡内基·梅隆大学软件工程研究所R.Kazman等人于1998年提出的一种软件体系结构的评价方法,它不仅可以用于评价软件体系结构对体系性能、灵活性等单项能力参数的满足程度,还可深入到体系内部研究各项能力参数之间的互补、互斥等关系形成折中方案,最终达到体系整体最优。
1.2ATAM分析过程
ATAM方法针对体系的结构进行分析评估,其基本思想是:利用头脑风暴法提出体系运行、应用和维护等的多个场景,分析体系能力参数(如性能、费用、风险等)与结构要素之间的关系,发现体系结构中存在的敏感点(结构参数的微小变动将造成体系单项能力参数的大幅变化,如性能)、折中点(结构参数同时对多项能力参数敏感)、风险点(结构参数还未完全确定,或者其引起的能力参数的变化还未确定)和非风险点(结构参数的某些固有特性),最终实现体系的结构优化。ATAM方法分析的具体步骤如图1所示。
具体步骤为:
(1) 分析体系建设的背景、功能需求和能力需求等,生成体系的能力指标参数树,并将其具体化为不同的场景,明确场景的激励和预期产生的响应。根据场景的重要性设定其优先级;
(2) 利用已有的软件工具实现体系结构的描述,确定体系结构分析、优化的变量空间,建立参数化的体系结构;
(3) 进行反复权衡分析,得到影响体系能力发挥的主要结构参数,以及对应的折中点、敏感点、非风险点和风险点;
(4) 形成报告。
1.3ATAM核心概念
ATAM的核心概念有3个,分别为:能力参数描述(Quality Attribute Characterizations)、场景(Scenarios)和基于能力参数的体系结构(Attribute-Based Architectural Styles,ABASs)。
能力参数描述确定体系各项能力参数采用哪些指标描述,这些指标可通过何种方式获得,与体系结构中的哪些参数具体相关。能力参数描述一般采用询问技术来实现。询问的问题主要包括3类:外部激励、体系结构和响应。外部激励是指引起体系响应或发生改变的事件;体系由于激励而产生的变化称为响应,在ATAM中这些响应必须是可测量或可分析得到的具体参数;体系结构是将激励和响应连接起来的桥梁。以某C4ISR系统的“性能”能力指标为例,对其能力参数进行描述,需要回答的问题包括:①通信网络传输的信息量有多大(激励);②是否会出现信息大幅增加的情况,这种情况会不会影响重要信息的传递(响应);③主要影响信息传输速率的系统部件是什么(体系结构)。
能力参数描述的目的不是为每个能力参数建立一个无遗漏的描述,而是提供一个能力参数分析的框架,一个体系能力参数与体系结构要素之间的联系的框架。
场景是风险承担者(对体系结构及根据该体系结构开发的系统有特定要求的人员。如用户、维护人员等)与系统交互的简短描述。ATAM中一般采用3类场景:用例场景、扩展场景和探索性场景,对体系结构从不同的角度进行分析、探索和优化。用例场景针对已建立的、可运行的体系,描述风险承担者与体系之间的交互等,表达了风险承担者对体系的期望,明确的描述体系的激励、环境条件和响应;扩展场景用于描述未来可能对体系结构进行的调整和改变,这些改进必然会引起体系能力参数的变化;探索性场景用于测试当前体系的极限、存在的风险等。
ATAM中,不同用户从不同的角度,可提出很多的场景,这些场景有可能存在重复、冲突等多种问题,因此在实际应用时,需进行逐一分析。ATAM采用“头脑风暴法”将所列出的多种场景进行排队,确定优先级,从而确保体系的主要能力参数得到最大限度的满足。
1.4ATAM的优点及输出
软件工程研究所得出了应用ATAM的以下优点:
· 说明了性能属性要求
· 改善了体系结构文档资料
· 记录了体系结构决策的标准
· 识别了早期生命周期中的风险
· 方便了利益相关者之间的交流
ATAM的输出被归结如下:
· 一个简洁的构架表述及表述清楚的业务目标
· 用例树——用场景集合捕获的质量需求
· 构架决策到质量需求的映射
· 所确定的敏感点和权衡点集合
· 识别的风险决策集合
· 识别的非风险决策集合
2结论
ATAM方法是一种体系层次的结构优化方法,其主要目标是评价体系结构是否满足体系能力要求,获取体系结构要素与各项能力指标之间关系,进行权衡分析,实现最终的优化。
主要参考文献
[1] Akerman A,Tyree J. Using Ontology to Support Development of Software Architectures[J]. IBM Systems Journal,2006,45(4):813-825.
[2] Bass L,Clements P,Kazman R. Software Architecture in Practice[M].Second Edition. Boston,MA:Addison-Wesley,2003.
[3] Bass L,John B E. Achieving Usability through Software Architectural Styles[C] // CHI00 Extended Abstracts on Human Factors in Computing Systems,New York, NY,2000:171-172.
[4] Clements P,Garlan D,Little R,etc. Documenting Software Architectures: Views and Beyond[C] // Proceedings of the 25th International Conference on Software Engineering,Washington DC, USA, IEEE Computer Society,2003:740-741.
[5] Clements P,Kazman R,Klein M. Evaluating Software Architectures: Methods and Case Studies[M]. Boston,MA:Addison-Wesley,2002.