1. 程式人生 > >軟體架構設計---軟體架構評估

軟體架構設計---軟體架構評估

軟體架構評估

    軟體架構評估是在對架構分析、評估的基礎上,對架構策略的選取進行決策。它也可以靈活地運用於對軟體架構進行評審等工作中。

1 軟體架構評估的方法

業界已開發出多種軟體架構評估的方法,按基於的技術手段來看,可以分為三類:基於調查問卷或檢查表的方式、基於場景的方式和基於度量的方式。

    (1)基於調查問卷或檢查表的方式:該方式的關鍵是要設計好問卷或檢查表,它充分利用系統相關人員的經驗和知識,獲得對架構的評估。其缺點是在很大程度上依賴於評估人員的主觀推斷。

    (2)基於場景的方式:基於場景的方式由 SEI  首先提出並應用在架構權衡分析法(Architecture Tradeoff Analysis Method,ATAM)和軟體架構分析方法(Software Architecture Analysis Method,SAAM)中。它是通過分析軟體架構對場景(也就是對系統的使用或修改活動)的支援程度,從而判斷該架構對這一場景所代表的質量需求的滿足程度。下節將對ATAM 進行重點介紹。

    (3)基於度量的方式:它是建立在軟體架構度量的基礎上的,涉及三個基本活動,首先需要建立質量屬性和度量之間的對映原則,即確定怎樣從度量結果推出系統具有什麼樣的質量屬性;然後從軟體架構文件中獲取度量資訊;最後根據對映原則分析推匯出系統的質量屬性。它能提供更為客觀和量化的質量評估,但它對評估人員及其使用的技術有較高的要求。ATAM 中也使用了度量的思想(度量效用)。

2 架構的權衡分析法

    從技術角度對軟體架構進行評估,旨在通過分析來預見軟體的質量;通過分析來建立、選擇、評估與比較不同的架構。例如,Kazman 等人在 2000 年提出的架構的 ATAM 方法。 ATAM 方法不但能夠揭示架構如何滿足特定的質量需求(例如,效能和可修改性),而且還提供了分析這些質量需求之間互動作用的方法。使用 ATAM 方法評價一個軟體架構的目的是理解架構設計滿足系統質量需求的結果。

    ATAM 產生如下結果。

    (1)一個簡潔的架構表述:ATAM  的一個要求是在一小時內表述架構,這樣就得到了一個簡潔、可理解的、面向普通專案關係人的架構表述。它是從架構文件中提煉形成的。

    (2)表述清楚的業務目標。

    (3)用場景集合捕獲質量需求。

    (4)架構決策到質量需求的對映。

    (5)所確定的敏感點和權衡點集合:這個集合是一些對一個或多個質量屬性具有顯著影響的架構決策。如:備份資料庫就是這樣一個架構決策,它對可靠性產生正面影響,而對系統性能產生負面影響,因此需要進行權衡。

    (6)有風險決策和無風險決策。

    (7)風險主題的集合。找到這些風險主題旨在採取相應的措施。

    (8)產生一些附屬結果。評估過程形成的文件(經受住了評估的考驗)可以作為經驗保留下來。

    (9)還產生一些無形結果,如能夠使專案關係人產生“團隊感”,提供了一個交流平臺和溝通渠道,使大家更好地理解架構(優勢及弱點)。

    ATAM 的 9 個步驟如下。

    (1)ATAM 方法的表述:評估負責人向參加會議的專案代表介紹 ATAM(簡要描述 ATAM 步驟和評估的結果)。

    (2)商業動機的表述。專案決策者從商業角度介紹系統的概況。

    (3)架構的表述。對架構進行詳略適當的介紹。設計師要描述用來滿足需求的架構方法或模式,還應描述技術約束條件及與其他系統的互動等。

    (4)對架構方法進行分類。通過研究架構文件及傾聽上一步的表述,瞭解系統使用的架構模式和方法(進行明確命名)。

    (5)生成質量屬性效用樹。可以選取這樣一棵樹:根——質量屬性——屬性求精(細分)——場景(葉)。修剪這棵樹,保留重要場景(不超過 50 個),再對場景按重要性給定優先順序(用 H/M/L 的形式),再按場景實現的難易度來確定優先順序(用 H/M/L 的形式),這樣對所選定的每個場景就有一個優先順序對(重要度,難易度),如(H,L)表示該場景重要且易實現。

    (6)分析架構方法。評估小組按優先順序對上述效用樹的場景進行分析(小組成員提問,設計師回答、解釋),探查實現場景的架構方法。評估小組把相關架構決策編成文件,確定其有風險決策、無風險決策、敏感點、權衡點,並對其進行分類(分別用表格列出)。

    (7)集體討論並確定場景的優先順序。由於專案關係人的不同角色及所關心的場景不一致,因此,應鼓勵專案關係人考慮效用樹中尚未分析過的場景。集體討論後,可通過投票的方式獲得各場景的優先順序。通過把集體討論確定了優先順序的一組場景與效用樹中的那組場景進行比較,能發現設計師所想的與專案關係人實際所要的是否存在差距,這一差距是否導致風險。

    (8)分析架構方法。類似於第 6 步,這時,評估小組引導設計師實現在第 7 步中得到的優先順序最高的場景。

    (9)結果的表述。把在 ATAM 分析中得到的各種資訊進行歸納總結,並呈現給專案關係人。主要有:

  • 已編寫了文件的架構方法;

  • 經過討論得到的場景集合及其優先順序;

  • 效用樹;

  • 所發現的有風險決策;

  • 已編成文件的無風險決策;

  • 所發現的敏感點和權衡點。

3 成本效益分析法

    在大型複雜系統中最大的權衡通常必須考慮經濟性,因此,需要從經濟角度建立成本、收益、風險和進度等方面軟體的“經濟”模型。成本效益分析法(the Cost Benefit Analysis Method,CBAM)是在 ATAM 上構建,用來對架構設計決策的成本和收益進行建模,是優化此類決策的一種手段。CBAM 的思想就是架構策略影響系統的質量屬性,反過來這些質量屬性又會為系統的專案關係人帶來一些收益(稱為“效用”),CBAM 協助專案關係人根據其投資回報(ROI)選擇架構策略。CBAM 在 ATAM 結束時開始,它實際上使用了 ATAM 評估的結果。

    CBAM 的步驟如下。

    (1)整理場景。整理 ATAM 中獲取的場景,根據商業目標確定這些場景的優先順序,並選取優先順序最高的 1/3 的場景進行分析。

    (2)對場景進行求精。為每個場景獲取最壞情況、當前情況、期望情況和最好情況的質量屬性響應級別。

    (3)確定場景的優先順序。專案關係人對場景進行投票,其投票是基於每個場景“所期望的”響應值,根據投票結果和票的權值,生成一個分值(場景的權值)。

    (4)分配效用。對場景的響應級別(最壞情況、當前情況、期望情況和最好情況)確定效用表。

    (5)架構策略涉及哪些質量屬性及響應級別,形成相關的策略—場景—響應級別的對應關係。

    (6)使用內插法確定“期望的”質量屬性響應級別的效用。即根據第 4 步的效用表以及第 5 步的對應關係,確定架構策略及其對應場景的效用表。

    (7)計算各架構策略的總收益。根據第 3 步的場景的權值及第 6 步的架構策略效用表,計算出架構策略的總收益得分。

    (8)根據受成本限制影響的 ROI(Return On Investment,投資報酬率)選擇架構策略。根據開發經驗估算架構策略的成本,結合第 7 步的收益,計算出架構策略的 ROI,按 ROI 排序,從而確定選取策略的優先順序。