概念: 分析機制
分析機制代表一種型樣,由常見問題的一般解決方案構成。分析機制可能展現結構型樣、行為型樣或兩者。
關係
主要說明

分析機制簡介

分析機制代表一種型樣,由常見問題的一般解決方案構成。分析機制可能展現結構型樣、行為型樣或兩者。 可以降低分析過程的複雜性,並且讓設計師利用一套簡潔的方式來表達複雜的行為,提高一致性。這種機制可讓分析工作的重心放在將功能需求轉換成軟體概念,避免為了支援功能而深陷於設定相當複雜的行為,導致偏離主題。分析機制通常源自於實例化一或多個架構分析型樣 

分析機制主要用來代表複雜技術在中下層架構中的「預留位置」。將這種機制當做架構中的「預留位置」,可避免機制行為的旁枝末節干擾設計工作的重心。 例如,取得物件生命期限使用案例、流程生命週期或系統關機與啟動的需求,即定義物件持續性的需求。持續性是一套十分複雜的機制,在分析期間,我們不希望被如何達到持續性的細節分散我們的注意力。 一套「持續性」分析機制由此應運而生,讓我們得以談論持續性物件,找出我們對於持續性機制的需求,不必顧慮持續性機制的實際運作情形。

分析機制通常(但不一定)與問題領域無關,而是一種「電腦科學」的概念;因此,通常位於架構的中下層。這種機制提供領域相關類別或子系統的特定行為,或對應於類別和/或子系統之間的協同作業方式。可以實作為一套架構,例如處理持續性、跨流程通訊、錯誤處理、通訊及傳訊等等。 

然而,隨著各種領域中建立愈來愈多的分析型樣,這些型樣在分析機制中的局部或完整實例,將促使這些機制進入架構的上層。

分析機制範例

  • 持續性

    對於可能形成持續性實例的所有類別,我們必須確定:
    • 精度:持續保存之物件的大小範圍
    • 數量:持續保存的物件數
    • 期間:物件通常需要保存多久?
    • 擷取機制:如何唯一地識別和擷取給定的物件?
    • 更新頻率:物件很固定或較不固定;需要永久地更新嗎?
    • 可靠性:物件是否在流程、處理器或整個系統損毀之後存活下來?

  • 跨流程通訊

    對於需要與其他流程或執行緒中執行的元件或服務通訊的所有模型元素,我們必須確定:
    • 延遲時間:流程之間通訊的速度。
    • 同步性:非同步通訊
    • 訊息大小:範圍可能比單一數字更適當。
    • 通訊協定、流程控制、緩衝等等。

其他常見的機制包括:

  • 訊息遞送
  • 流程控制和同步化
  • 交易管理
  • 資訊交換
  • 安全性
  • 備用
  • 錯誤報告
  • 格式轉換

說明分析機制

分析機制的描述過程如下:

  1. 將所有分析機制收集成一份清單

    相同的分析機制可能會已不同的名稱出現在不同的使用案例實現化或不同設計師之下。例如,儲存體持續性資料庫儲存庫,可能指同一個持續性機制。或者,跨流程通訊訊息傳遞遠端呼叫,可能都是指跨流程通訊機制。

  2. 繪製用戶端類別與分析機制的對映表
  3. 圖解說明詳見下文。

    識別的類別和子系統必須對映至識別的分析機制:箭頭表示類別利用機制。一個用戶端類別需要多項機制的服務很常見。

  4. 識別分析機制的特性

    為了區別大量可能的設計,請指出之所以構成每一種分析機制的關鍵特性。這些特性包括組件功能、組件大小及效能。

  5. 透過協同作業建立模型

    分析機制在經過識別並命名之後,最終應該透過「類別群集」的合作來建立模型 (請參閱 [BOO98]),其中有些不直接提供應用程式功能,只是單純做為支援的用途。這些「支援類別」經常位於分層式架構的中下層,如此對所有應用程式層的類別提供共通的支援服務。

    如果指出的機制相當普遍,或許就存在可用來建立機制實例的型樣 - 連結現有的類別和實作型樣所需的新類別。如此產生的是抽象的分析機制,需要經過進一步設計和實作來加以調整。

工作成果:軟體架構文件中對分析機制有詳細的說明。隨著軟體架構的成熟,工作成果:軟體架構文件說明從分析機制、設計機制到實作機制之間的關係(或對映),也提及這些選項的相關理論。