我的雲端生活網 - Life+

Monday, March 16, 2009

工具系列:UML概觀、及使用案例圖

UML(United Modeling Language)是一套圖型語言,可以描述模型和概念。UML是大約1999年有Grady Booch、James Rumbaugh和Ivar Jacobson三人,都在做模型建構的研究,而共同創造了UML。他們三人稱為UML的「三劍客」(3 Amigos)。電腦資訊系統分析與設計的學問,除了過去有階層式(瀑布式)的開發生命週期之外,還藉由採用UML帶來物件導向分析設計方式。

版本區別,在幾年前有UML第一版、區分為十一種圖式;最近UML已經是第二版,有十三種圖式。

UML的圖式,按思考的方面及使用場合區分,有功能觀點、物件觀點、動態觀點等方面。
  • 功能觀點:從用戶的觀點看系統模型,主要圖式為使用案例圖(Use-case Diagram)。
  • 物件觀點:關心物件的屬性、操作和關係,主要圖式有類別圖(Class Diagram)。
  • 動態觀點:關心系統的內部行為,主要圖式有順序圖(Sequence Diagram)、活動圖(Activity Diagram)、和狀態圖(State Diagram)等。

按圖式的內容物劃分,十三種圖式分類為結構類、行為類和溝通類。
  • 結構類:類別圖物件圖(Object Diagram)、複合結構圖(Composite Structure Diagram)、元件圖(Component Diagram)、包裝圖(Package Diagram)和部署圖(Deployment Diagram)。
  • 行為類:有活動圖、狀態圖和使用案例圖。
  • 溝通類:有溝通圖(Communication Diagram)、順序圖、互動圖(Interaction Overview Diagram)和時間圖(Timing Diagram)。最後二種是由UML第二版增添。

使用案例圖。使用案例圖是描述使用案例的圖式。一般來說,適合讓專案管理師(PM, Project Manager)或資訊架構師(Information Architect)使用,用來跟客戶溝通。一份使用案例圖,要表達出一份案例或使用情境,除了要使用明白的圖例之外,還要根據合適的情節腳本來繪製。以下先介紹可使用的圖例,接著示範一個實際的使用案例圖。最後,談到腳本的撰寫。

一、使用案例圖的圖例

  • 標題:在圖上方以文字標明本使用案例圖的名稱。
  • 參與者:(Actor) 用最簡單的筆劃劃出人型圖示,表示一位或一些可執行操作的角色。可在圖示下方標示名稱與類型;類型(stereotype)放在名稱上方,並以雙角括號« »包圍。


  • 案例:(Case) 用橢圓形、中間寫上案例名稱(以動詞為主),表示一份系統提供的服務或功能。


  • 關聯:(Association) 用線段連接參與者和案例、或連接案例和另一個案例,並且可用箭頭表達方向,表示一樣東西和另一樣東西的關聯。案例和案例之間的關聯,有包含(inclusion)和擴充(extension)二種。
  • 包含的關聯:(Including association) 從一個橢圓拉出一條虛線、到另一個橢圓,並在虛線上標示«include»文字,表示一個案例包含另一個子案例。例如「登入」包含「讀取帳戶」。


  • 擴充的關聯:(Extending association) 從一個橢圓拉出一條虛線、到另一個橢圓,並在虛線上標示«extend»文字,表示一個案例擴充另一個案例。例如,「檢查其他位置登入」擴充「登入」。


  • 系統範圍:(Boundary) 用大方形包圍一些圖例、與其他圖例隔離,並在大方形邊緣可用文字標明系統名稱,表示在範圍內的項目屬於同一個系統。而在範圍外的項目稱為外部實體。
  • 外部實體:(External entity) 用方形、中間寫了實體名稱,表示一項與系統溝通的外部實體。參與者也是一種外部實體,通常表達為人型圖示。而其他系統或其他組織,則用方形圖示。

二、示範

以下為一項使用案例圖的示範,可注意圖中案例從上往下的順序隱含了操作流程。校園識別卡印卡系統有「登入」和「印卡」二件案例。「登入」要從校務系統「讀取雇員資料」,並且「檢查重覆登入」保證雇員只從一處服務據點工作。「印卡」要從校務系統「讀取服務對象資料」才能印卡。


三、腳本的撰寫

繪製使用案例圖是將一些使用案例畫出來;而使用案例通常是複雜的。為了讓使用案例圖不畫得凌亂,並且讓使用案例在過於簡單與過於複雜之間找到適合的份量,有些書籍特別談到使用案例的撰寫:例如,「使用案例寫作實務」(博客來網路書店的書樣:http://www.books.com.tw/exep/prod/booksfile.php?item=0010225897)。

使用案例,是一串事件清單,可表達一份使用情境。像撰寫一般故事一樣,先寫一條順利完成動作的主線清單。接著,思考每一項事件的旁支案例,它相對於主線清單、包含了一些例外以及對應的處置事件。將案例分支交待完了之後,系統的行為就顯得清楚。

使用案例圖和使用案例,是跟著使用者的觀點看系統模型;於是,特別適合在系統發展初期做與客戶溝通的文件。使用案例圖提供一目瞭然的效用,使用案例腳本則描述系統行為,二者相輔相成、幫助釐清系統全貌。

No comments: