220 likes | 410 Views
Chap2 統一塑模語言 (UML). 黃士銘 2008/10/08. 大綱. 需求蒐集 和客戶面談 使用案例示意圖 類別示意圖 模塑領域 關聯性 實作 活動示意圖 順序示意圖 狀態示意圖. 需求蒐集. 與客戶面談,以正確決定出系統需求以便滿足他的使用者。 以下為 BandSpy 樂團查詢系統範例 使用者可以造訪 BandSpy 網頁並瀏覽有關樂團的資訊,樂團的資料包括了樂團的型態、樂團的成員以及他們所演奏的樂器。 使用者可以觀看一個以上樂團其將要上演的演奏會資訊。 網站管理員可以加入新的樂團資訊 網站管理員可以編輯既有的樂團資訊
E N D
Chap2 統一塑模語言(UML) 黃士銘 2008/10/08
大綱 • 需求蒐集 • 和客戶面談 • 使用案例示意圖 • 類別示意圖 • 模塑領域 • 關聯性 • 實作 • 活動示意圖 • 順序示意圖 • 狀態示意圖
需求蒐集 • 與客戶面談,以正確決定出系統需求以便滿足他的使用者。 • 以下為BandSpy樂團查詢系統範例 • 使用者可以造訪BandSpy網頁並瀏覽有關樂團的資訊,樂團的資料包括了樂團的型態、樂團的成員以及他們所演奏的樂器。 • 使用者可以觀看一個以上樂團其將要上演的演奏會資訊。 • 網站管理員可以加入新的樂團資訊 • 網站管理員可以編輯既有的樂團資訊 • 網站管理員可以加入新的演奏會,加入新的演奏會包括租借場地及印製入場卷。協力廠商會處理場地租借及印製入場卷的事,需要透過BandSpy軟體來通知這些廠商之預定系統。
Browse band info User 使用案例示意圖 1 • 以使用者工作導向的觀點看待系統。 • ㄧ個使用案例代表著使用者利用系統要完成的工作。 • 人形圖─動作者(actor),可能為“人”,或依賴我們的“某個外部系統”。 • 橢圓形─使用案例 • 不同之動作者可以共用一個使用案例 • 範例:使用者造訪BandSpy網站並瀏覽樂團資訊的簡單使用案例示意圖。
使用案例示意圖 2 • 劇本(scenarios) • 使用案例可以再深入成為其各自的劇本(scenarios) • 劇本是一連串組成此使用案例的步驟 • 範例:使用者造訪BandSpy網站並瀏覽樂團資訊使用案例劇本 • 使用者來到BandSpy網站 • 使用者利用選單瀏覽網站 • 使用者查閱樂團/表演者/演奏會資訊
add band info <<include>> browse band info log into system <<include>> <<include>> User book a performance 使用案例示意圖 3 • 管理者工作使用案例 • 以include來表示這個使用案例視其他三個使用案例的一部份
Update performance information Venue Booking System add band info <<include>> <<include>> modify band info log into system <<include>> Administrator book a performance lookup band info User 使用案例示意圖 4 • 範例BandSpy系統完整使用案例示意圖
類別示意圖 • 模塑領域 • 於使用案例後,進行設計模塑此領域的軟體 • 類別能貼近所要代表之真實物件 • 類別示意圖能提供模塑領域之描述,且類別之實際方法及屬性的細節程度可以非常抽象也可以非常詳細。 名稱 屬性的型別 屬性 表示“公用的” 操作 操作回傳數值的型別
關聯性 • 系統有一個以上之類別,則必須描述物件間相互進行之交互作用。 • 關聯性有下列幾種 • 結合關係(Associations) • 實作關係(Realizations) • 繼承關係(Generalizations) • 組合關係(Composites)
結合關係(Associations) 1 • 連接兩個類別間的線表示所謂結合關係(association)的關聯性。 • 一對多 (例如:1個Band可以有多位Musicians) • 多對一 (例如:許多個Musicians可以組1個Band) Musician類別之bandName屬性變成Band類別之ㄧ個屬性了 * 1
結合關係(Associations) 2 • 由結合關係線表示瀏覽性(navigability) • 雙向瀏覽性(bi-directional navigability):沒有箭頭的線,往兩個方向移動,指每個類別具有另一個的內部參照 • 單向瀏覽性(unidirectional navigability):只能往單一個方向瀏覽 Musician類別可以由它的內部集合來存取任何的Instruments,但Instrument沒有辦法知道哪個Musician擁有它。 * 1
實作關係(Realizations) &繼承關係(Generalizations) • 實作關係:指出某介面及實作它的類別 • 繼承關係:指出由抽象類別或由另一個實作類別繼承而來。 虛線及介面端之空心箭頭表示“實作關係” 實線及空心箭頭表示“繼承關係”,例如Guitarist產生ClassicalGuitarist與RockGuitarist子類別。
組合關係(Composites) • 通常有用的類別關聯性不是來自於結合關係或繼承,而是來自於類別群組的方式。限制如下: • 組合關係中的物件不能以任何方式共享 • 實體被刪除時,其組合物件也要被刪除 • Durm Set是Durm及Cymbal 類別之“組合關係” • Durm Set實體的Durm實體不能為另一個Durm Set實體所有 • Durm Set實體被刪除時,其組合物件也要被刪除
聚合關係(aggregate) • 聚合關係較組合關係通用,其表示方式為“鑽石型部分為空心” • 允許分享其所含有之組件 • 實體被刪除時,其中的組件部依定要跟著被刪除
活動示意圖 活動區 起點 活動示意圖(activity diagram)用於瞭解使用案例中活動進行之順序。 轉移 活動 決策點 岔流 匯流 結束
順序示意圖 • 順序示意圖,有助於以圖示之方式看出訊息如何在不同物件間傳送。 • 順序示意圖通常附屬於個別之使用案例中。 物件實體 訊息 活動時間 回傳 生命線
狀態示意圖 • 狀態示意圖,用以表示單一物件在生命週期間狀態變化。 物件生命週期開始 註解 由某狀態轉移至另一狀態 物件生命週期結束
元件及配置示意圖 • 元件及配置示意圖,用於顯示應用程式架構中之某些實體元素。 節點 元件 節點間之連接 相依關係 介面