chap2 統一塑模語言 (uml)

21
1 Chap2 統 統統統統 (UML) 黃黃黃 2008/10/08

Upload: aliya

Post on 19-Jan-2016

102 views

Category:

Documents


0 download

DESCRIPTION

Chap2 統一塑模語言 (UML). 黃士銘 2008/10/08. 大綱. 需求蒐集 和客戶面談 使用案例示意圖 類別示意圖 模塑領域 關聯性 實作 活動示意圖 順序示意圖 狀態示意圖. 需求蒐集. 與客戶面談,以正確決定出系統需求以便滿足他的使用者。 以下為 BandSpy 樂團查詢系統範例 使用者可以造訪 BandSpy 網頁並瀏覽有關樂團的資訊,樂團的資料包括了樂團的型態、樂團的成員以及他們所演奏的樂器。 使用者可以觀看一個以上樂團其將要上演的演奏會資訊。 網站管理員可以加入新的樂團資訊 網站管理員可以編輯既有的樂團資訊 - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Chap2  統一塑模語言 (UML)

1

Chap2 統一塑模語言 (UML)

黃士銘2008/10/08

Page 2: Chap2  統一塑模語言 (UML)

2

大綱

需求蒐集 和客戶面談 使用案例示意圖

類別示意圖 模塑領域 關聯性 實作

活動示意圖順序示意圖狀態示意圖

Page 3: Chap2  統一塑模語言 (UML)

3

需求蒐集

與客戶面談,以正確決定出系統需求以便滿足他的使用者。以下為 BandSpy 樂團查詢系統範例

使用者可以造訪 BandSpy 網頁並瀏覽有關樂團的資訊,樂團的資料包括了樂團的型態、樂團的成員以及他們所演奏的樂器。

使用者可以觀看一個以上樂團其將要上演的演奏會資訊。 網站管理員可以加入新的樂團資訊 網站管理員可以編輯既有的樂團資訊 網站管理員可以加入新的演奏會,加入新的演奏會包括租借

場地及印製入場卷。協力廠商會處理場地租借及印製入場卷的事,需要透過 BandSpy 軟體來通知這些廠商之預定系統。

Page 4: Chap2  統一塑模語言 (UML)

4

使用案例示意圖 1

以使用者工作導向的觀點看待系統。ㄧ個使用案例代表著使用者利用系統要完成的工作。

人形圖─動作者 (actor) ,可能為“人”,或依賴我們的“某個外部系統”。

橢圓形─使用案例不同之動作者可以共用一個使用案例

範例:使用者造訪 BandSpy 網站並瀏覽樂團資訊的簡單使用案例示意圖。

Browse band info

User

Page 5: Chap2  統一塑模語言 (UML)

5

使用案例示意圖 2

劇本 (scenarios) 使用案例可以再深入成為其各自的劇本 (scenarios) 劇本是一連串組成此使用案例的步驟

範例:使用者造訪 BandSpy 網站並瀏覽樂團資訊使用案例劇本

• 使用者來到 BandSpy 網站• 使用者利用選單瀏覽網站• 使用者查閱樂團 / 表演者 / 演奏會資訊

Page 6: Chap2  統一塑模語言 (UML)

6

使用案例示意圖 3

管理者工作使用案例 以 include 來表示這個使用案例視其他三個使用案例的一部份

browse band info

User

add band info

book a performance

log into system

<<include>>

<<include>>

<<include>>

Page 7: Chap2  統一塑模語言 (UML)

7

使用案例示意圖 4

範例 BandSpy 系統完整使用案例示意圖

modify band info

Administrator

add band info

book a performance

log into system

<<include>>

<<include>>

<<include>>

Venue Booking System

User

Update performanceinformation

lookup band info

Page 8: Chap2  統一塑模語言 (UML)

8

類別示意圖

模塑領域 於使用案例後,進行設計模塑此領域的軟體 類別能貼近所要代表之真實物件 類別示意圖能提供模塑領域之描述,且類別之實際方法及屬性的細節程度可以非常抽象也可以非常詳細。

Musician

-type:String

-firstName:string

-lastName:String

-bandName:String

+getBand():String

+getName():String

+getType():String

+setBand()

+setType()

+SetName()

屬性

操作

名稱

屬性的型別

表示“公用的”

操作回傳數值的型別

Page 9: Chap2  統一塑模語言 (UML)

9

範例 - Musician 類別程式碼

Page 10: Chap2  統一塑模語言 (UML)

10

關聯性

系統有一個以上之類別,則必須描述物件間相互進行之交互作用。

關聯性有下列幾種 結合關係 (Associations) 實作關係 (Realizations) 繼承關係 (Generalizations) 組合關係 (Composites)

Page 11: Chap2  統一塑模語言 (UML)

11

結合關係 (Associations) 1

連接兩個類別間的線表示所謂結合關係(association) 的關聯性。 一對多 ( 例如: 1 個 Band 可以有多位 Musicians) 多對一 ( 例如:許多個 Musicians 可以組 1 個

Band)

Musician

-band:Band

...

+getBand():Band

+setBand()

...

Band

-bandName

-bandMusicians

-performances

...

+getMusicians()

...

Musician 類別之 bandName 屬性變成 Band 類別之ㄧ個屬性了

1*

Page 12: Chap2  統一塑模語言 (UML)

12

結合關係 (Associations) 2

由結合關係線表示瀏覽性 (navigability) 雙向瀏覽性 (bi-directional navigability) :沒有箭頭的線,往兩個方向移動,指每個類別具有另一個的內部參照

單向瀏覽性 (unidirectional navigability) :只能往單一個方向瀏覽

Musician

-instruments[*]:Instrument

Instrument

Musician 類別可以由它的內部集合來存取任何的 Instruments ,但 Instrument 沒有辦法知道哪個 Musician 擁有它。

*1

Page 13: Chap2  統一塑模語言 (UML)

13

實作關係 (Realizations) &繼承關係 (Generalizations)

實作關係:指出某介面及實作它的類別繼承關係:指出由抽象類別或由另一個實作類別繼承而來。

<<interface>>

Musician

Guitarist Drummer

RockGuitaristClassicalGuitarist

虛線及介面端之空心箭頭表示“實作關係”實線及空心箭頭表示“繼承關係”,

例如 Guitarist 產生ClassicalGuitarist 與 RockGuitarist子類別。

Page 14: Chap2  統一塑模語言 (UML)

14

組合關係 (Composites)

通常有用的類別關聯性不是來自於結合關係或繼承,而是來自於類別群組的方式。限制如下: 組合關係中的物件不能以任何方式共享 實體被刪除時,其組合物件也要被刪除

<<interface>>

Instrument

Guitar Piano Durm Set Durm Cymbal

1 *1 *

Durm Set 是 Durm 及 Cymbal 類別之“組合關係” 1. Durm Set 實體的 Durm 實體不能為另一個 Durm S

et 實體所有

2. Durm Set 實體被刪除時,其組合物件也要被刪除

Page 15: Chap2  統一塑模語言 (UML)

15

聚合關係 (aggregate)

聚合關係較組合關係通用,其表示方式為“鑽石型部分為空心” 允許分享其所含有之組件 實體被刪除時,其中的組件部依定要跟著被刪除

Page 16: Chap2  統一塑模語言 (UML)

16

範例 – 類別示意圖程式 1

Page 17: Chap2  統一塑模語言 (UML)

17

範例 – 類別示意圖程式 2

Page 18: Chap2  統一塑模語言 (UML)

18

活動示意圖Ticket System Venue Reservation SystemBandSpy System

Add Performanc

Make Venue System

Reduce Message

Check Availability

Alert Administrator

Send Conformation Generate Tickets

Send Ticket Data

Update Performance Information

起點

轉移

活動

決策點

岔流

匯流

結束

活動區

活動示意圖 (activity diagram) 用於瞭解使用案例中活動進行之順序。

Page 19: Chap2  統一塑模語言 (UML)

19

順序示意圖

順序示意圖,有助於以圖示之方式看出訊息如何在不同物件間傳送。

順序示意圖通常附屬於個別之使用案例中。

System Band Musician Instrument

User

viewInstruments()

getBandByName()

getBandMembers()

getIntruments()

getName()

生命線

物件實體

訊息

回傳

活動時間

Page 20: Chap2  統一塑模語言 (UML)

20

狀態示意圖

狀態示意圖,用以表示單一物件在生命週期間狀態變化。

initializin

dispatching messag awaiting confirmation

notify system

destory

store

if the venue reservation system fails to respond in 1 minute, consider the confirmation failed.

[confirmation failed]

[confirmation OK]

物件生命週期開始

由某狀態轉移至另一狀態

註解

物件生命週期結束

Page 21: Chap2  統一塑模語言 (UML)

21

元件及配置示意圖

元件及配置示意圖,用於顯示應用程式架構中之某些實體元素。

Web brower

BandSpy GUI

Web server

BandSpy Application

BandSpy Database

venue reservation system

reservation application

two-way communication form between BandSpy and third-party venue reservation system

System

http

reservation api

tcp/ip

節點

相依關係

介面

元件

節點間之連接