敏捷軟件開發UML1.md

敏捷軟件開發_UML<一>

 所看書籍是:敏捷軟件開發_原則、模式與實踐_C#版(美)馬丁著,這本書寫的非常棒,感謝作者。該歸納總結的過程按照我讀的順序寫。

UML

 在建造橋樑,零件,自動化設備之前需要建模分析可行性,軟件在編寫之前也需要建立模型,看看類和邏輯的設計是否合理,這樣的建模過程就是UML。
###類圖
類圖就是來描述一個類本身或和其他類的調用關係。

  • +public
  • -private
  • #protected

實現/泛化

  • 集成
  • 實現接口

組合

  • 部分可以離開整體

聚合

  • 部分不能離開整體

關聯

  • 持有對其他對象引用的實例變量

依賴

  • 局部變量/方法的參數或則靜態方法的調用

注意
  • 關係的強弱:泛化/實現>組合>聚合>關聯>依賴

對象圖

表示系統執行的某個特定時刻的一組對象和關係,可以看成是內存快照。
該圖大部分是從相應的類圖中推導而來沒啥用。

順序圖

描述算法的實現,重點在於消息的順序。比較常繪製的動態模型。

例子

  • 對象下面畫有橫線,類沒有,對象名:類
  • 垂下來的線爲生命線
  • 中間矩形垂下來的矩形:激活,表示一個函數的執行時間
  • 虛線表示返回參與者並傳回返回值
  • 箭頭:消息。返回值:消息名稱(參數)
  • 帶圓圈的箭頭:消息的參數

注意

  • 循環:框起來 [for each id in idlist]
  • 容易被勿用和濫用

###協作圖
描述算法的實現,重點在於對象之間的關係

狀態圖

其實就是有限狀態機(FSM)。

例子:

  • 實心黑球:初始僞狀態,從這個狀態開始運轉
  • 圓矩形:狀態。上層放狀態的名字,下層放一些特定動作和事件,表示進入或則退出時要做什麼,
  • 箭頭:遷移。上面有觸發該遷移的事件名稱和要執行的動作

注意

  • entry和exit:標準事件,不管寫不寫都會觸發
  • 超狀態:幾個狀態遷移時間相同時,可以組成一個超狀態。遷移時會出發超狀態的entry和exit

如何使用UML

在使用UML的過程中,需要先通過行爲優先的方式寫出狀態圖,先是局部狀態再是整體狀態,抽象出會改變的,將每一種改變的類型實例化,中間再通過各種設計模式隔離

行爲優先

從項目的功能入手,用戶的交互入手寫出每一種功能,大體的類有了後,再抽象出會改變的類,通過設計模式隔離

檢查結構

檢查每一種功能實現是否合理

想象代碼

想想出代碼的樣子做微調

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章