2011年8月2日 星期二

軟體架構設計﹣故事大綱 Sequence Diagram & Collaboration Diagram



        前面我們提過了Use Case DiagramClass Diagram,接著,我們來說明 Sequence Diagram(循序圖)吧。




        Sequence Diagram主要是用來表示物件之間的互動,也就是物件之間傳遞訊息的情況。舉個例子來說,就像是我們想要伸出右手大拇指,所以大腦會將這個想法傳遞給右手的神經,而右手的神經再將訊息傳給手掌,之後手掌再將大姆指舉起,Sequence Diagram就是用來表達這樣的一個過程。


以這種方式呈現的優點在於可以撰寫者清楚了解整個系統的運作流程,也更了解系統中物件與物件間的關係。而Sequence Diagram更用來解釋Use Case Diagram中每一個個案,讓我們能更加了解各功能的運行。
那麼在Sequence Diagram中我們又需要用到哪些圖示呢?



在看過圖示之後,那我們就來試著畫畫Sequence Diagram吧,我們用前面Use Case Diagram中提到的訂書系統來作例子。



在這張Sequence Diagram中,我們可以看到共有四個角色,分別是使用者、客戶、書籍以及訂單,當使用者進行註冊的時候,會將訊息傳遞給客戶做處理,而客戶處理結束後也會回傳訊息給使用者。而當使用者進行登入時,會依序將訊息傳給客戶、書籍與訂單,然後再沿訂單、書籍、客戶的順序進行回傳。

接著,我們看到Collaboration Diagram(合作圖)。


合作?什麼是合作?簡單來說就是為了達成某個目標,而一起從事某件事。舉例來說,三國時代劉玄德為了打敗曹孟德,所以與孫仲謀共謀了一場赤壁之戰,這就是所謂的合作。

那麼程式裡的合作呢?在程式中,我們談的是物件之間的合作。為什麼是物件之間呢?拿前面提過的訂書系統來說明好了,還記得在Sequence Diagram中,使用者要如何訂購書籍嗎?我們透過了客戶、書籍到最後的訂單,而它們之間的關係就是合作。

        發現了嗎?沒錯,其實Sequence DiagramCollaboration Diagram都是用來描述程式中物件之間的關係。不同的是,Sequence Diagram較注重在整體時間軸的呈現,讓我們能掌握其執行的先後順序,而Collaboration Diagrams則較著重物件之間的合作關係。由於合作圖實用較少,一般都以Sequence Diagram做整體呈現,故在此便不多加贅述。

張貼留言