UML面向對象技術學習筆記
本節向大家介紹一下UML面向對象技術學習筆記,主要包括UML面向對象技術中的關系和符號兩大部分內容,相信通過本節的介紹你對UML面向對象技術會有初步的認識。
UML面向對象技術學習筆記
一.UML面向對象技術中的關系
在建立抽象的過程中會發現類很少獨立存在,大多數類都以某種方式彼此協作。因此,在為系統建模時,不僅需要從問題域的詞表中抽象出類和對象,還需要描述這些抽象間的關系。
1.依賴關系(DependencyRelationship)
依賴關系描述了類之間的使用關系。
如果一個模型元素的變化會影響另一個模型元素(這種影響是不可逆的),那么就說在這兩個模型元素之間存在依賴關系。例如,有兩個元素X、Y,如果修改元素X的定義可能會引起元素Y的定義的修改,則稱元素Y依賴于元素X。
依賴關系的UML符號表示是帶箭頭的虛線,指向被依賴的模型元素。
2.類屬關系(GeneralizatinRelationship)
類屬關系描述了類之間“一般”與“特殊”的關系。
在解決復雜性問題時,通常需要將具有共同特性的元素抽象成類別,并通過增加其內涵而進一步分類。例如,學生可以分為大學生、中學生和小學生,火車可以分為客運列車和貨運列車。在面向對象方法中,將前者稱為一般元素、基類元素或父類元素,將后者成為特殊元素或子元素。子元素繼承父元素所具有的結構和行為,通常子元素還要添加新的結構和行為,或者修改父元素的行為。
在UML中,類屬關系用帶空心箭頭的實線表示,箭頭指向父元素。
3.關聯關系(AssociationRelationship)
UML面向對象技術中關聯關系描述了對象間的結構關系。
關聯關系表示兩個類之間存在某種語義上的聯系。它是一種結構關系,規定了一種事物的對象可以與另一種事物的對象相連。例如,雇員為公司工作,一個公司有很多部門,就可以認為雇員和公司、公司和部門之間存在某種語義上的聯系,在類圖模型中,就可以在類Employee和類Company、類Company和類Department之間建立關聯關系。
關聯關系的UML符號表示是一條實線。
4.實現關系(RealizeRelationship)
實現關系是分類器之間的語義關系,一個分類器規定合同,另一個分類器保證實現這個合同。大多數情況下,實現關系北用來規定接口和實現接口的類或組件之間的關系。接口是操作的集合,這些操作用于規定類或組件的服務,也就是說,接口規定了類或組件必須實現的合同。一個接口可以被多個類或組件實現,一個類或組件也可以實現多個接口。接口的使用將操作的接口和操作的實現分離開來。當類或組件實現一個接口時,它意味著類或組件實現了接口的所有操作,完全遵守接口所建立的客戶之間的協議,并響應客戶使用接口中的操作所發出的消息。
實現關系的UML符號表示用帶有空心箭頭的虛線表示。
二.UML面向對象技術中的符號
1.注釋(Note)
2.參與者(Actor)
參與者代表與系統交互的人、硬件設備、或另一個系統。盡管可以在模型中使用參與者,但參與者并不是軟件系統的組成部分,參與者存在于系統的外部。一個參與者可以:
只向系統輸入信息。
只從系統接受信息。
既可以輸入信息給系統,也可以接收系統的輸出信息。
3.用例(UseCase)
用例規定了系統或部分系統的行為,它描述了系統所執行的動作序列集,并為執行者產生一個可供觀察的結果。也就是說,用例是:
系統行為的模板。
參與者與系統所執行的相關的動作序列。
交付值等給參與者。#p#
4.協作(Collabration)
協作命名了彼此合作完成某個行為的類、接口和其他元素的群體。協作可以用來規定用例和操作的實現,微系統體系結構上的重要機制建模。
協作有兩個方面:
結構部分:結構部分規定了合作執行所命名的協作的類、接口和其他元素。
行為部分:行為部分規定了這些元素如何交互作用的動態方面。
5.類(Class)
UML面向對象技術中類是面向對象系統中最基本的組成元素。類是一種最重要的分類器(Classifier),分類器是描述結構和行為特性的機制,它包括類、接口、信號、組件、節點、用例和子系統。
類是分享同樣的屬性、操作、關系和語義的對象的集合。類是現實世界中的事物的抽象,當這些事物存在于真實世界中時,它們是類的實例,并被成為對象。類可以實現一個或多個接口。
類描述了一類對象的屬性(Attibute)和行為(Behavior)。在識別類時,要與領域專家合作,對問題域進行仔細深入地分析,抽象出問題域中的概念,定義其含義及相互關系,從而抽象出系統中的類,并用領域中的術語為類命名。
類的UML符號是劃分成3個格子的長方形。頂部的格子放類名,中間的格子放類的屬性、屬性的類型和值(屬性的初始值),下面的格子放方法、方法的參數表和返回類型。
在不同的視圖中給出類的UML表示時,可以根據需要選擇隱藏全部或部分的屬性格或方法格。
6.對象(Object)
對象代表了類的一個特定實例。對象具有身份(Identity)和屬性值(AttributeValues)。
實例和對象基本上是同義詞,它們常常可以互換使用。實例是抽象的具體表示,方法可以作用于實例,實例可以有狀態來存儲方法的結果。
7.消息(Message)
消息是對象間的通信,它傳達了要執行動作的信息,它能觸發事件。接收到一個消息通常被認為是一個事件。通常,當一個對象調用另一個對象中的方法時,即完成了一次消息傳遞。
消息的UML符號表示是帶箭頭的實線。
8.接口(Interface)
UML面向對象技術中接口是用來規定類或組件服務的操作的集合。與類不同,接口沒有規定任何結構,也沒有規定任何實現。
9.包(Package)
包是一個用來將模型單元分組的通用機制。可以將一個系統看做一個單一的、高級的包。
10.組件(Component)
組件代表了一個接口定義良好的軟件模塊。組件是系統的一個物理的、可替代的部分,它遵循接口定義,并為接口提供了實現。組件是其他邏輯單元的物理封裝,這些被封裝的邏輯單元可以是類、接口、協作等。
組件的特點如下:
(1)組件是物理的,它存在,不是概念。
(2)組件是可替代的。
(3)組件是系統的一部分。
UML面向對象技術中組件與類的區別:
(1)類代表了邏輯的抽象;組件是物理的、是可以存在于現實世界中的。也就是說,組件可以在節點上存在,而類不能。
(2)組件代表了其他邏輯單元的物理封裝,與類的抽象實在不同的層次上。
(3)類本身有屬性和操作。而通常,組件的操作只能通過接口來訪問。
11.狀態(State)
12.躍遷(Transitions)
13.判定(Decision)
14.同步條(SynchronizationBars)
15.活動(Activities)
16.節點(Node)和設備(Device)
【編輯推薦】