淺談UML |
||||
|
|
所有UML使用者都必須學會用例圖 | |||
|
|||
動手學UML第 8 回用例圖是元素最少的一款UML圖,可以用來表達系統對外提供的服務或功能,也是開發人員和使用者溝通的主要圖款
|
|||
|
|||
前面幾回所介紹的活動圖,可以讓開發團隊大致理解了企業流程的運作;接下來,我們要進一步透過UML的「用例圖」(Use Case Diagram)來捕捉並釐清需求。
用例圖可以表達系統對外提供的服務或功能,也是開發人員用來和使用者溝通的最主要圖款。但是,只透過用例圖的圖形化表達,是不足夠的,還有許多繁瑣的需求細節需要透過一般的文字,細膩地記錄下來才行。 因此,在實務上,除了用例圖,我們還會產出文字格式的「用例敘述」(Use Case Narrative)。所以說,用例圖與用例敘述,圖文相依,缺一不可。 不過,由於用例敘述不是UML標準的一部分,因此並沒有標準的用例敘述格式可以使用。至於VS2010/UML,也理所當然地,並沒有提供任何的用例敘述格式了。 所以,我只會在稍後內容中簡單說明用例敘述,但不深入討論。你要是對用例敘述有興趣深入,可以參考《寫給SA的UML/UseCase實務手冊》一書,該書花了許多篇幅細談用例圖與用例敘述。 VS2010中的用例圖 用例圖是元素最少的一款UML圖,所以並沒有區分中級和高級概念,它的全部元素和概念都屬於初級概念。因此我們可以推論,UML官方的專家學者認為用例圖屬於入門且常用圖款,所有的UML學習者都必須學習用例圖。 圖1 用例圖的工具箱 不過,請你看到圖1的VS2010/UML用例圖工具箱,很有趣的是,我標示了一個中級概念「產出物」(Artifact)。其實,產出物不只是中級概念,而且它還是「部署圖」(Deployment Diagram)內的元素,它並不是用例圖的元素。 先簡單說明一下「產出物」,它代表一種實際存在的實體資訊片段,其內記錄著重要的規格,通常使用於或產出於軟體開發過程中,或者是部署或操作系統時需要使用到或產出的實體產出物。 最常見的產出物,像是: ● UML模式的電子檔(model files) ● 原始程式碼的電子檔(source files) ● 批次執行的腳本檔(scripts) ● 二進元的可執行檔(binary excutable files) ● 資料庫中的資料表(table) ● 開發過程中產出的可交付物 ● word文件的電子檔 ● 電子郵件 在初步認識產出物後,我們可以合理的推想,VS2010/UML特別將「產出物」放到用例圖的工具箱中,是為了方便我們連結某一個用例與它的敘述文件檔(用例敘述),或者是根據用例所產出的其他細部設計圖。 接下來,我們先回過頭來看用例圖中的初級概念,談完初級概念之後,我們才來繼續討論產出物和用例敘述的概念。 用例圖初級概念:參與者 由於,用例圖主要用來表達系統對外提供的功能或服務,所以在用例圖中會出現位於系統外部的物件,這些系統外部的物件會跟系統互動,以便獲取期望的產出。 因此,我們會用「參與者」(Actor)來代表位於系統外部的物件,它會跟系統交換資料或信號(signal)。常見的參與者有下列三種: ● 角色(role):一般會直接使用系統的人類使用者,但參與者指得不是某一個實體的人,而是指人所扮演的角色。 ● 實體(entity):像是其他的連線系統、主機、外部資料庫、硬體設備。 ● 服務(service):近年來新興的虛擬參與者,像是網路服務(Web Service)或是雲端服務(Cloud Service)。 其實,UML預設的參與者圖示,只是個簡單的樹枝狀人型圖示,不像VS2010/UML設計的人像圖示。請你比較圖2的VS2010/UML的參與者圖示,和圖3的StarUML參與者圖示,StarUML中的樹枝狀人型圖示才是UML真正預設的圖示。 圖2 VS2010的參與者 圖3 參與者[StarUML] 在用例圖的定位上,我們會希望可以拿用例圖來跟使用者溝通需求,所以如果能夠用更多樣且豐富的圖像來代表參與者,可以讓溝通更活潑有趣,也更貼近使用者。在這個圖示的擴充性上頭,UML是允許開發人員自行設計專屬的圖示的。 那麼,我們可不可以在VS2010/UML中直接使用自訂的參與者圖示呢?想像一下,假設我們開發一套財務系統,主要的參與者有財務專員和部門主管,那我們乾脆拿某一位人氣最高的財務專員以及該部門主管的大頭照來當參與者圖示,這樣的溝通一定會更直接有力。 這個自訂參與者圖示的功能,其實很簡單,但是貼心又有趣,VS2010/UML輕易就可以做到了。請你打開參與者的性質表,如圖4所示,在「圖片路徑」(Image Path)處選定你自訂的參與者圖示。 圖4 設定圖片路徑 最後,我們再回過頭來看圖4的參與者性質表中,有一個是否為「抽象」(Is Abstract)參與者的設定,這個性質要配合「一般化關係」(Generalization)來談,比較有意義,所以我們稍後再來討論。 再者,參與者性質表中的「能見度」(Visibility)欄位,也不適合單獨談論,配合「子系統」(Subsystem)元素來談,會更容易理解,所以我們也暫時把這個概念挪後討論。 |
WIKI
統一塑模語言(UML,Unified Modeling Language)是非專利的第三代塑模和規約語言。UML是一種開放的方法,用於說明、可視化、構建和編寫一個正在開發的、物件導向的、軟體密集系統的製品的開放方法。UML展現了一系列最佳工程實踐,這些最佳實踐在對大規模,複雜系統進行塑模方面,特別是在軟體架構層次已經被驗證有效。
UML集成了Booch,OMT和物件導向軟體工程的概念,將這些方法融合為單一的,通用的,並且可以廣泛使用的塑模語言。UML打算成為可以對併發和分布式系統的標準塑模語言。
UML並不是一個工業標準,但在Object Management Group的主持和資助下,UML正在逐漸成為工業標準。OMG 之前曾經呼籲業界向其提供有關物件導向的理論及實現的方法,以便製作一個嚴謹的軟體塑模語言(Software Modeling Language)。有很多業界的領袖亦真誠地回應OMG,幫助她建立一個業界標準。
在UML系統開發中有三個主要的模型:
- 功能模型:從用戶的角度展示系統的功能,包括使用個案圖。
- 物件模型:採用物件,屬性,操作,關聯等概念展示系統的結構和基礎,包括類圖。
- 動態模型:展現系統的內部行為。包括序列圖,活動圖,狀態圖。
區分UML模型和UML圖是非常重要的,UML圖,包括使用個案圖、協作圖、活動圖、序列圖、部署圖、構件圖、類圖、狀態圖,是模型中信息的圖形表達方式,但是UML模型獨立於UML圖存在。XML的當前版本只提供了模型信息的交換,而沒有提供圖信息的交換。
UML使用一套與Java語言或其他物件導向語言等價物,同時也是本體論等價物的圖形標記。
UML並不是一個方法學,也不要求使用一個方法學,但是UML對於Rational 統一過程來說是必不可少的。
UML 2.0 中一共定義了13 種圖示(diagrams)。為方便了解,可分類成右側的結構。
結構性圖形(Structure diagrams) 強調的是系統式的塑模:
行為式圖形(Behavior diagrams) 強調系統模型中觸發的事件:
溝通性圖形(Interaction diagrams), 屬於行為圖形的子集合,強調系統模型中的資料流程:
協定狀態機是狀態機的子變種。它用來塑造網路通訊協定模型。
UML 並不限定 UML 要素型別非得是某圖形上的型別。一般來說,每個 UML 要素大約會出現在圖的所有型別。這種彈性在 UML 2.0 部分被限定。
為了要保持工程圖的傳統,在您的 UML 圖上加註用途、約束、或意圖永遠無傷大雅。
UML 2為了符合模型驅動架構(Model Driven Architecture)的需求做了大幅度的修改除在圖形基礎上擴充及變化了部份的展現方式外,也增加了一些圖形標準元件,比前一版多出了由循序圖與互 動圖所混合而成的互動概圖(Interaction Overview Diagram)、強調時間點的時序圖(Timing Diagram)與合成結構圖(Composite Structure Diagram),此外,在UML2中,UML1合作圖轉變為通訊圖(Communication Diagram),且在循序圖中也添加了互動框(Interaction Frame)的概念,還有增加一些運算子(如sd、loop、alt等)。同時,UML2支援模型驅動架構(MDA)倡議,提供穩定的基礎架構,容許軟體 開發程序增添自動化作業。此外,MDA把大型的系統分解成幾個元件模型,並與其他模型保持連結,使得UML更加精確。
[編輯] 概念
UML 從來源中使用相當多的概念. 我們將之定義於統一塑模語言術語彙表。下面僅列代表性的概念.
對於結構而言
對於行為而言
對於關係而言
其他概念
留言列表