徐瑩

[摘要] 軟件體系結構評價在軟件密集型系統的生命周期中具有至關重要的作用。本文提出了一種結構權衡分析的軟件體系結構評價方法,該方法非常注重軟件體系結構知識的重用性。體系結構權衡分析方法(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.