2014年1月24日 星期五

Week 4、UML

此心得是我修過2012 POSD的心得,此課程使用的教課書是Design Patterns (GoF),從事資訊領域的人都因該了解的一環。

何謂UML?

全名為Unified Modeling Language,主要分為三個模型功能模型、物件模型、動態模型,其中包含許多種類的圖形。
  • 功能模型: 用戶角度展示系統功能,個案圖
  • 物件模型: 主要為展示系統結構or基礎,類別圖、物件圖
  • 動態模型: 展現系統內部行為,序列圖、活動圖、狀態圖。

課堂中主要教導,序列圖&類別圖。

類別圖(Class Diagram)

UML的靜態結構圖,主要敘述系統類別集合、屬性和類別之間關係。

類別屬性:


類別關係: 

DependencyAssociationCompositionAggregationInheritanceImplementation

Dependency: 弱化關係,某時間點使用另一類別(wiki中所說),說簡單點就是「短暫使用 (uses as)」別一個類別。
Association:
一個關聯(Association)代表一個家族的聯繫(from wiki)。我的理解是X類別「擁有」並可「使用」類別Y,統合說法就是X類別「知道 (Knows as)Y類別,「使用」=dependency,由此可知Association的緊密關係高於dependency
Composition:
組成(Composition)關係,是一類「強」的整體與部分的包含關係。成分類別必須依靠合成類別而存在。說簡單點就是一邊消失另一邊也會消失,並且關係只能一對多。例如大學與科系就是一種組成關係。
Aggregation:
聚合(Aggregate)是表示整體與部分的一類關聯關係,是「弱」的包含has a關係,成分類別可以不依靠聚合類別而單獨存在。說簡單點就是一邊消失另一邊還會存在,並且關係可以多對多。例如,池塘與(池塘中的)鴨子。
Inheritance:
此為物件導向中的繼承關係,何謂繼承可以參考許多市面上有得oop的書籍。

Implementation:
一邊是接口一邊是實做。


序列圖(Sequence Diagram)

時序圖Sequence Diagram),是一種UML行為圖。它通過描述對象之間發送消息的時間順序顯示多個對象之間的動態協作。可以表示行為順序,當執行一個用例行為時,時序圖中的每條消息對應了一個類操作或狀態機中引起轉換的觸發事件。
簡單說就是程式執行的順序圖

下面提供Command pattern的序列圖:


總結:
1. week 5-week 7Unit test為主
2. 類別圖(class Diagram)介紹
參考:

沒有留言:

張貼留言