Agile Principles, Patterns, and Practices in C# 無瑕的程式碼 敏捷完整篇 第13章 寫給C#程式設計師的UML概述
第十三章簡介類別圖、物件圖、循序圖、協作圖和狀態圖,類別圖和狀態圖比較常見。 統一塑模語言是用來繪製軟體概念圖的一種圖形符號。 本書關注規格說明層級和實作層級。 UML包含三種主要圖示。 靜態圖 描述類別、物件、資料結構及它們之間的關係,展現出軟體元素那些「不變」的邏輯結構。 動態圖 軟體實現在執行過程中是如何變化,其中描述了執行流程或實體改變狀態的方式。 實體圖 展示了軟體實體「不變」的物理結構,其中描述原始檔、程式庫、二進位檔、資料檔等物理實體。 類別圖 類別圖展示了程式中主要的類別和關係。 圖13-2 矩形表示類別,箭頭表示關係。 本圖中所有的關係都是關聯關係。關聯是簡單的資料關係,其中一個物件持有對另一個物件的參考或呼叫了其方法。 關聯上的名字對應的是持有該參考的變數名稱。 箭頭相鄰的數字表示關係所包容的實例個數,數字比1大,意味著是某種容器,通常是陣列。 類別圖可分為多個隔間,最上面的隔間放類別的名稱,其他隔間放描述函數和變數。 interface 代表介面 物件圖 物件圖展示系統執行時,某個特定時刻的物件關係,可看做記憶體快照。 圖13-3 矩形表示物件,名稱下方有底線作為識別。冒號後面的名稱是所屬類別的名稱。每個物件的下層顯示該物件的key變數值。 物件之間的關係稱為鍊link。 循序圖 圖13-4描繪了TreeMap.Add方法如何實作。 人形線條圖代表一個未知呼叫者。 方括號[]中的布林運算式稱為監護條件,指出應該選擇哪一個路徑。 終結在TreeMapNode圖示上的箭頭訊息表示物件建造。 帶有小圓圈的箭頭稱為資料標記 協作圖 協作圖包含了循序圖中包含相同的資訊。循序圖為了表達訊息的順序,協作圖為了表達物件之間的關係。 物件被稱為鏈的關係給連接起來,只要一個物件可以向另外一個物件發送訊息就存在鏈的關係。 鏈上傳遞訊息,用小一點的箭頭表示。訊息上標記了訊息名稱、訊息順序號碼以及任何使用到的監護條件。 帶點的順序號碼表示呼叫的層次結構。訊息1.1是訊息1所呼叫的函式發送的第一條訊息。 狀態圖 UML能夠全面地表達有限狀態機FSM。 圖中的箭頭稱為遷移,其上標記有觸發遷移的事件及該遷移執行的動作。當一個遷移被觸發時,會導致系統的狀態發生改變。 狀態圖用於了解系統的行為,透過狀態圖可知系統如何動作。 ...