{UML2.0} 合成結構圖簡單說明與範例

什麼是元件(Component)?

  • 將某一個元素,視為 “整體(whole)” 時,觀察該元素的外顯行為與內在特徵。
  • 元件 = 介面 + 實現介面的類別(不一定是只有一個)。
  • 元件的觀點
    • 外部觀點(黑箱式) – 凸顯該元件所提供(provide)與所需求(required)的介面(interface)。
    • 內部觀點(白箱式) – 元件內部結構(internal structure) “組成元素” 的關係。

元件與合成結構(Composite Structure)圖

  • 將焦點關注在某一個元件(Component)
    • 元件外顯的介面(interface)。
    • 元件內部組件(part)的連結關係。
    • 介面係由內部的那個組件所委託(delegate)實做的。
  • UML 2.0 新增最有價值的新視圖;也可以視為是早期 UML 類別圖中對“黑色菱形”的合成關係的一種擴充、延伸、升級。

元件的內部結構描述

  • 內部相互連結(interconnected)組件(part)的結構(Structure)。
  • 系統執行期間(run-time)內部相互連結的個體(instances)結構。
  • 例,一艘小型動力艇,內部係由一具引擎及一至四個推進器組成並履行小艇推進的功能。

範例—利用兩種不同的呈現方式展示 Order 元件與其介面

範例—利用兩種不同的呈現方式展示 Order 元件與其介面
(縮略圖,點擊圖片鏈接看原圖)

元件的 “提供” 與 “需求” 介面

  • 元件所提供給 Client 端使用的介面稱為 “可提供介面(provided interface)”;元件所要求的介面稱為 “需求介面(required interface)”。
  • 例,Order 元件提供(provided)給 Client 端(如 Customer) “新增/移除 訂購細項”、”完成訂購”、”提供訂購追蹤資訊” 等介面;而需要(required) “Retrieve Products”、”Retrieve tracking info” 等介面。
  • UML 2.0 ,圓球(ball)圖示(icon)表提供介面;凹槽(socket)圖示表需求介面。

“Ball and Socket” 的說明

  • 例,Order 介面需要“Retrieve Products”介面;而 Inventory 元件提供了“Provide Products”介面。兩者構成了“ball and socket”關係。

Ball and Socket

連接埠–元件與外部環境的互動點(interaction point)

  • 利用 “連接埠(port)” 可以將介面(包括需求與可提供介面)群組起來,成為一組邏輯的互動關係。
  • 透過 port,元件可以提供服務給外部的環境;也可以向外部環境要求服務。
  • 元件與其外部環境互動(interaction)的 “存取點(access point)”。
  • 例,將 “Mouse” 視為是一個介面,透過 usb 接頭,可以連至(plug-into) PC 所提供的 “USB 埠”,而可以操作使用滑鼠。

port and interface 的關係

元件內部結構組成元素的說明

  • 組件(part)提供或需要某個介面的實做,兩者之間的連線關係,稱為委託連接器(delegating connector)。
  • 組件與組件之間的關連(association),稱為連接器(connector)。
  • 利用多重性(multiplicity),可以秀出某個組件會有多少個個體(instances)。

元件內部結構的組成元素