UML文獻 UML表示法指南解析
本節和大家一起學習一下UML表示法,本文獻給出UML的可視化表示法,通過例子給出模型元素的圖形表示符號.從系統模型這一級別上看,UML表示法由9種圖構成,下面就讓我們一起看一下詳細介紹吧。
UML表示法參考文獻
本文獻給出UML的可視化表示法,通過例子給出模型元素的圖形表示符號.從系統模型這一級別上看,UML表示法由9種圖構成,它們是:
靜態結構圖(Static Structure Diagram),其中包括類圖(Class Diagram)和對象圖(Object Diagram);
Use Case圖 (Use Case Diagram);
順序圖(Sequence Diagram);
協作圖(Collaboration Diagram);
狀態圖(Statechart Diagram);
活動圖(Activity Diagram);
實現圖(Implementation Diagram),其中包括成分圖(Component Diagram)和展開圖(Deployment Diagram)兩種圖.
盡管UML文件稱“UML表示法指南定義了表示法并提供了例子”,但確切的說法應該是:該文件對建模元素的表示法給出了一般的文字描述,其圖形的畫法是通過例子表現的,并沒有給出一般的圖示.本文大部分插圖是參照M.Fowler的著作[4]的作法從一般意義上給出的.
UML定義了一些在各種圖中常用的元素,例如String(串)、Name(名)、Label(標簽)、Keyword(關鍵詞)、Expression(表達式)、Note(注釋條)等,并給出它們的表示符號,例如關鍵詞由一個被書名號括起的串表示,注釋條用一個折起一角的長方形內的正文表示.在各種圖中用來對一組模型元素打包的元素叫做“包”(Package),其表示法是用一個大的方框圍起這組元素,并在角上用一個小框給出包的名字.
此外,UML還定義了一些稱作“擴充機制”的元素.這種元素可以附加到其它模型元素之上,將原有的建模元素特化成一種語義較特殊的新變種,或者表示出它們的某些細節.這些元素可以起到對表示法進行擴充或細化的作用,它們是:
Constraint(約束):約束是模型元素之間的一種語義關系,它說明了某種條件和某些必須保持為真的命題.其表示法是在大括號{ }之間用一種工具能識別的語言(如UML提供的OCL)寫出表示條件的正文串.
Comment(注釋):注釋是寫在注釋條表示符號(折起一個角的長方形)之內的正文串.所使用的語言應易于人的理解,不必考慮被工具理解.
Element Property(元素特征):用來顯示模型元素的一些附帶特征,如屬性、關聯、目標值等.其表示法是在大括號{ }內寫出形式為 關鍵詞=值 的正文串,多個串之間彼此用逗號隔開.
Stereotype(版式):用來附加到其它模型元素之上,將原有的建模元素特化成一種語義較特殊的新變種.帶有版式的建模元素可看作原先建模元素的一個子類,它在屬性、關系等方面與原先的元素形式相同,但用途更為具體.板式是用書名號《》括起來的關鍵字表示的.上述概念的表示法如圖1所示.
以下分別介紹各種圖以及圖中用到的建模元素與UML表示法.
(1) 靜態結構圖
靜態結構圖包括類圖(class diagram)和對象圖(object diagram).“類圖是靜態結構模型的圖形化示圖.”“類圖是(靜態)聲明的模型元素集合.”關于對象圖,該文獻中說道:“對象圖是實例的一種圖形,包括對象和數據的值,靜態的對象圖是類圖的一個實例;它顯示了在一個時間點上系統細節狀態的一個快照”.該文獻又指出:“對象圖的用處是很有限的”,“工具沒有必要支持獨立形式的對象圖.類圖能包括對象,一個有對象而沒有類的類圖便是一個‘對象圖’.不過這個術語對于刻畫在各種方式下可能達到的特殊用法還是有用的”. 靜態結構圖中用到的各種建模元素的表示法如圖2所示,以下分別加以介紹.
(2) Use Case圖
“use case圖用于表現活動者與use case之間的關系.”“use case模型表現一個系統或一個類對于系統外部的交互者的功能.”UML定義了如下幾種構成use case圖的元素(如圖3).
Use Case:一個use case是一個系統或一個類提供的緊湊的功能單元,它是由系統與一個或多個外部交互者(即活動者)之間交換的消息序列以及系統執行的活動共同體現的.
Actor(活動者):活動者是直接與系統交互的外部對象所扮演的角色.
Use Case Relationship(use case關系),包括如下3種關系:communicates(通信),這是活動者與use case之間僅有的關系,是活動者對use case的參與;extends(延伸),從use case A到use case B的延伸關系表明B的實例(在延伸說明的特殊條件下)可能包含了在A中說明的行為;uses(使用):從A到B的使用關系表明A的實例也包括了在B中說明的行為.
(3) 順序圖
UML表示法中UML給出了兩種形式的交互圖(Interaction Diagram),一種叫順序圖,另一種叫協作圖.它們基于相同的基本信息但強調不同的方面.順序圖(Sequence Diagram)展示按時間順序排列出來的交互.特別是,它展示對象在其“生命線”上參加的交互和它們按時間順序交換的消息.它不展示對象之間的關系.順序圖所表示的交互是一組在對象之間為產生所要求的操作或結果而進行合作時所交換的一組消息.順序圖有簡單形式和詳細形式兩種畫法,后一種畫法與OOSE[3]等著作介紹的交互圖大體一致——在水平方向展示各個參加交互的對象,垂直方向表示時間;整個平面顯示各個對象之間進行交互的時間及空間關系,順序圖如圖4所示.用于順序圖的建模元素有:
Object Lifeline(對象生命線):一條垂直的虛線,用于展示對象在從創建到撤消的時間范圍內所扮演的角色.
Activation(活動期):展示對象直接地或通過其下級過程執行一個活動的時間段.
Message(消息):消息是對象之間的一次通信,用于傳送信息并期望發生某種活動.消息的接收是一種事件.
Transition Time(過渡時間):消息發送或接收所用的時間.二者可能相同也可能不同.
(4) 協作圖
協作圖(Collaboration Diagram)是UML所說的另一種交互圖,它表示在一些對象之間組織的操作和它們之間的鏈.與順序圖不同的是,協作圖表示的是對象角色之間的關系,而不表示時間順序.協作圖描繪了在特定上下文中一組相關對象之間的協作,以及這組對象為產生所要求的操作或結果而進行協作時所交換的一組消息.協作圖的圖形表示以對象為結點,結點之間既有表示消息的箭頭連線,也有表示關聯的連線.消息連線有3種,分別表示調用、控制流和異步3種不同的消息,但仍有一些不能表示的情況,如阻塞(balking)和超時(time out)等,需要用一些進一步擴充的表示符號.協作圖中使用的關聯符號也包括多種不同的端點情況,如qualifier和composition等等.
UML表示法指南為協作圖定義的概念或建模元素有:Collaboration(協作)、Collaboration Content(協作內容)、Interaction(交互)、Pattern Structure(模式結構)、Collaboration Role(協作角色)、Multiobject(多對象)、Active Object(主動對象)、Message Flows(消息流)、Creation/Destruction Markers(創建/折構標記),這里不再一一介紹.
(5) 狀態圖
狀態圖(Statechart Diagram)在UML中也稱作狀態機,它表現一個對象或一個交互在整個生存期內接受剌激時的狀態序列以及它的反應與活動.它附屬于一個類或一個方法.建立狀態圖所用的建模元素有:State(狀態)、Composite State(復合狀態)、Substate(子狀態)、Event(事件)、Simple Transition(簡單轉換)、Complex Transition(復雜轉換)、Nested State(嵌套狀態)、Sending Message(發送消息)、Internal Transition(內部轉換)等.狀態圖及其有關元素的表示法和現有的大部分OOA/OOD方法大同小異,這些不再詳述.
(6) 活動圖
活動圖(Activity Diagram)是狀態圖的變種,它的狀態表示操作所執行的活動(activity),其轉換(transition)是由操作的完成而觸發的.它表示了一個過程本身的狀態機,過程是對類中一個操作的實現.構成活動圖的元素有:Action State(活動狀態)、Decision(判斷)、Swimlane(泳道,在圖中畫出來就象游泳池中的泳道,把各個活動組放在不同的泳道中以便更加清晰)、Action-Object Flow Relationship(活動-對象流關系,表示一個活動與有關對象之間的消息和輸入/輸出關系)、Control Icon(控制圖符,表示信號的發送與接收)等.
(7) 實現圖
UML表示法中實現圖(Implementation Diagram)表現實現方面的問題,包括源代碼結構和運行時的實現結構.實現圖分為兩種,一種是表示代碼自身結構的成分圖,另一種是表示運行時系統結構的展開圖.
成分圖(Component Diagram)表示源代碼、二進制代碼及可執行代碼等軟件成分之間的依賴關系.各種軟件模塊在圖中用成分(component)結點表示,它們之間的各種依賴關系(如編譯、界面、調用等)用不同的箭頭相連.
展開圖(Deployment Diagram)表示運行時處理元素的配置以及依賴這些配置的軟件成分、進程和對象.圖的結點內可包含若干成分或對象,成分之間的箭頭表示一個成分使用另一個成分的服務.
為構造實現圖而定義的元素及圖形表示有Node(結點)和Component(成分).同時UML規定了在一個對象內部定位其它成分和對象的畫法.
【編輯推薦】