1. 程式人生 > >[譯]Learn UML with JUDE(二)

[譯]Learn UML with JUDE(二)

六、UML about Bowling

現在都準備好了,我們可以開始畫diagram了。我們畫什麼diagram呢?你最近有去打過保齡球嗎?我非常享受我們公司前幾天舉辦的保齡球賽,我猜很多人都打過保齡球,所以我們就用保齡球來作為這個UML的主題吧。讓我們來畫一個保齡球的計分系統的UML。
      

   這裡有一些要求:

  l一旦比賽開始就顯示保齡球分數的跟蹤記錄;

  l選手每次扔出保齡球后就更新分數;

  l選手在比賽時能改變分數;

  l當有人發起攻擊時顯示一個動畫;

我們的目的是體驗使用UML建模工具去畫UML,diagram畫的是否完美並不重要。那麼就讓我們開始吧。

七、Draw a UseCase diagram

現在讓我們開始畫圖吧。我們以一個用例圖作為開始,我們畫一個下圖這樣的diagram。
          

開啟一個用例圖將會伴隨開啟一些預設的project檔案。在結構樹檢視的Usecase Diagram上點右鍵,選擇[Open Diagram],或者雙擊在Diagram編輯器中開啟。
          

在Diagram編輯器中,這裡有一個工具按鈕面板可以編輯diagram。
      

如果你想知道每個按鈕的作用,你可以把滑鼠放在這個按鈕上,懸浮的提示資訊將會顯示對這個按鈕的描述。在Diagram編輯器中,你可以用這些按鈕切換畫圖的模式,比如:當你想在Diagram編輯器中移動一個元素,開啟[select mode]你就可以選擇你想移動的元素執行移動操作了;如果你想連續的建立某個確定的元素,你可以切換模式到[Lock Selected Mode]等等。
 

Button

Description

Select Mode. 當這個模式開啟時,你就可以對某個元素執行選擇、編輯、移動和改變大小的操作了。

Lock Selected Mode. 使你能夠連續的建立所選擇的元素。比如:你在開啟Lock Selected Mode時建立一個Actor,一旦你在Diagram編輯器中添加了一個Actor,你就可以連續的建立更多的Actor。

Set Relation End to the center of the item. It places the ends of lines. (e.g. Associations, Generalizations, or Dependencies) at the center of Model Elements.

在工具面板上選擇Actor,然後在Diagram編輯器中的任何地方點選後將建立一個Actor,輸入“Player”作為這個Actor的name。現在讓我們像建立Actor一樣再建立三個用例。你可以拖拽他們移動元素所在的位置,當你想重新命名他們的時候,雙擊這個元素的名稱即可。

   現在我們來畫Actor和三個用例之間的連線。每條線都有它們自己的意義,我們在這裡需要一條稱作Association的線。在工具面板上選擇Association按鈕去建立一個Association,你有兩次點選操作,分別是點選開始目標和結束目標。首先,點選“Player”這個Actor,然後在“Start the Game”這個用例上點選,現在一條association線就畫在了“Player”和“Start the Game”之間了,然後再按這種方式建立兩條association線。現在再新增一個長方形,並寫上“Bowling Score System”就完成了這個diagram了!

小提示:取消association操作

當你在畫association線時點選在了錯誤的目標上,按下[ESC]或者右鍵就可以重做,該方法適用於兩個元素之間的任何連線,比如:Generalizations、Generalizations和Dependencies。

你可能注意到當你在Diagram編輯器建立用例和Actor時也新增在了結構樹檢視中,同樣在Diagram編輯器或者結構樹檢視中選擇元素時,它們的property也顯示在了左下角的Property檢視中,你可以在這幾個地方修改資料:Diagram編輯器,結構樹檢視,Property檢視,選擇 使用對你來說最方便的一個。

讓我們使用Property檢視來更改用例圖的名稱,在結構樹檢視中選擇“UseCase Diagram”,它的property將會顯示在Property檢視中,將它的名稱改為“Bowling UseCase Diagram”再按下[Enter]就完成了。

小提示:刪除元素

要刪除Actor或者用例,從它們的彈出選單中選擇[Delete from Model]或者[Delete from Diagram],提供兩種方式刪除元素是因為像Actor和用例這樣的元素可以和其它的diagram共享,也可被用於其它的diagram。

[Delete from Diagram]
Ctrl+D

僅從當前的diagram中刪除元素,在model中依然保留。

[Delete from Model]
Delete

從所有的diagram中完全刪除。


小提示:縮放和滾動

我將會給你介紹JUDE中用於檢視操作的特性。如果我們只是畫較小比例的用例圖,那麼在檢視中不需要用這個特性。當在處理較大比例的diagram時,特別是你需要在diagram的某些部分進行修改,JUDE的這個特性可以非常容易的進行該操作。希望顯示的區域可以在JUDE的Diagram編輯器中用右鍵拖拽,使你可以對角的移動它們,在主選單中選擇[View]或者使用工具條可以進行放大或縮小,也可以使用Map檢視指定顯示你想看到的區域。

小提示:撤銷和重做

JUDE的撤銷和重做的特性可以讓你重複執行100次!如果你到現在為止都沒有用過撤銷,去嘗試一下看看它是怎麼工作的!在你畫圖的時候不用擔心畫錯了,這是件多麼舒心的事!

八、Draw an Activity Diagram

現在讓我們著重在“Display the Score”用例,在活動圖中畫出它的流程。首先,你需要在你的project檔案中新增一個活動圖,選擇“Display the Score”用例,然後在彈出選單中選擇[Create Diagram] - [Add Activity Diagram],一個新的活動圖將會被新增,並且在Diagram編輯器中開啟。
     

把活動圖命名為“Behavior of displaying Scores”。活動圖在工具條中有下面這些按鈕:
      

現在讓我們來畫一個下面這樣的活動圖。
         

活動圖和流程圖非常相似,它描述了事件如何流動和連線到下個動作。在這個活動圖中,描述了在選手扔出保齡球后執行的事件,以及計算將要顯示的分數。從這個活動圖中,你將會得知在選手全中後會顯示一個動畫。

讓我們開始建立除箭頭外的所有元素,你可以像之前建立Actor和用例一樣去建立它們,從工具面板選擇元素,然後在Diagram編輯器中點選建立它們。你可以在Diagram編輯器或者Property檢視中將EntryAction設定為ActionState。

調整大小

“Calculate numbers of knocked out pins”在ActionState中以一行顯示的話過長,所以讓我們調整一下這個ActionState的大小,讓它的名稱換行顯示。調整元素的大小隻需要選擇元素的一個角進行拖拽。
      

現在讓我們新增元素之間的箭頭以顯示這些動作之間的流程,這個箭頭稱作Transition。要畫一條Transition,你可以像在用例圖中畫Association一樣點選兩個目標進行連線,但是你需要小心建立時點選的順序,我馬上會告訴你如何連續的建立T ansition。

小提示:連續的建立

l方法1:在工具面板上開啟[Selected Mode];

l當建立元素的時候按住[Shift];

你能連續建立它們了嗎,這對你來說非常有用,也非常容易。[Strike]是Transition的guard的值,點選Transition箭頭,然後在Property 檢視的Guard列中輸入“Strike”。
    

下面我將會介紹如何畫出清晰的diagram的三個技巧。

小提示:多選

這裡有三種方式在Diagram編輯器中進行多選。

l方法1:在多個元素上拖拽出一個長方形的選擇域,長方形中的所有元素都將被選中;

l方法2:在diagram的彈出選單中選擇[Select All];

l方法3:在選擇多個元素時按住[Shif];

小提示:線性對齊

在JUDE中元素可以縱向和橫向對齊,使用[Align vertical center]讓左邊的元素垂直對齊(除了“Show an animation”),讓diagram看起來整齊一點,可以用滑鼠拖出一個長方形包圍所有目標元素以選中它們,然後從主選單選擇[Alignment] - [Align Vertically] - [Align Vertical Center]或者選擇主選單下的工具條中的按鈕。

小提示:線條樣式

在JUDE中有兩種型別的線條。

Normal Line Style (Default):

用直線或多角折線連線diagram 中的元素

Right Angle Line Style:

使用直角線連線diagram中的元素

線條樣式預設設定為[Normal Line Stile],然而[Right Angle Line Style]有時看起來比較好,那麼我們為什麼在這個活動圖中不用[Right Angle Line Style]呢,選擇所有的線條,然後在它的彈出選單中選擇[Line Style] - [Normal]或者在工具條中選擇按鈕。