UML詳解,詳細介紹:
UML概念:
1. UML-Unified Model Language
統一建模語言,又稱標準建模語言。是用來對軟件密集系統進行可視化建模的一種語言。UML的定義包括UML語義和UML表示法兩個元素
2. UML是由一堆圖組成的,包括:用例圖、類圖、對象圖、狀態轉換圖、活動圖、時序圖、包圖、協作圖、構件圖、部署圖等。
UML作用:
幫助開發團隊以一種可視化的方式理解系統的功能需求,有利于隊員間在各個開發環節間確立溝通的標準,便于系統文檔的制和項目的管理。
UML主要模型:
1. 功能模型
從用戶的角度展示系統的功能,包括用例圖。
2. 對象模型
采用對象、屬性、操作、關聯等概念展示系統的結構和基礎,包括類圖、對象圖、包圖。
3. 動態模型
展現系統的內部行為。 包括序列圖、活動圖、狀態圖。
一個小例子,幫助大家理解:
`車的類圖結構為<<abstract>>,表示車是一個抽象類;
`它有兩個繼承類:小汽車和自行車;它們之間的關系為實現關系,使用帶空心箭頭的虛線表示;
`小汽車為與SUV之間也是繼承關系,它們之間的關系為泛化關系,使用帶空心箭頭的實線表示;
`小汽車與發動機之間是組合關系,使用帶實心箭頭的實線表示;
`學生與班級之間是聚合關系,使用帶空心箭頭的實線表示;
`學生與身份證之間為關聯關系,使用一根實線表示;
`學生上學需要用到自行車,與自行車是一種依賴關系,使用帶箭頭的虛線表示;
介紹下類之間的各種關系:
1. 泛化關系?: 泛化表示的是一種繼承關系
【表示方法】 : 帶空心三角箭頭的實線,箭頭指向父類
2. 實現關系?: 是一種類與接口的關系,表示類是接口所有特征和行為的實現
【表示方法】 : 一條帶空心三角箭頭的虛線表示
3. 聚合關系?: 聚合關系用于表示實體對象之間的關系,表示整體由部分構成的語義,且部分可以離開整體而單獨存在;例如一個部門由多個員工組成;
【表示方法】 : 一條帶空心菱形箭頭的實線表示,菱形指向整
4. 組合關系?: 與聚合關系一樣,組合關系同樣表示整體由部分構成的語義;比如公司由多個部門組成;
【表示方法 】: 帶實心菱形箭頭的實線,菱形指向整體
5. 關聯關系?: 描述不同類的對象之間的結構關系,是一種擁有的關系,它使一個類知道另一個類的屬性和方法,如學生和學校就是一種關聯關系
【表示方法 】: 雙向的關聯可以有兩個箭頭或者沒有箭頭,單向的關聯有一個箭頭。箭頭指向被擁有者
6. 依賴關系?: 是一種使用的關系,即一個類的實現需要另一個類的協助,所以要盡量不使用雙向的互相依賴.
【表示方法 】: 一條帶箭頭的虛線,箭頭指向被使用者
對UML中的各個圖的功用做一個簡單介紹:
用例圖:
描述角色以及角色與用例之間的連接關系。說明的是誰要使用系統,以及他們使用該系統可以做些什么。一個用例圖包含了多個模型元素,如系統、參與者和用例,并且顯示了這些元素之間的各種關系,如泛化、關聯和依賴。
類圖:
類圖是描述系統中的類,以及各個類之間的關系的靜態視圖。能夠讓我們在正確編寫代碼以前對系統有一個全面的認識。類圖是一種模型類型,確切的說,是一種靜態模型類型。類圖表示類、接口和它們之間的協作關系。
對象圖:
與類圖極為相似,它是類圖的實例,對象圖顯示類的多個對象實例,而不是實際的類。它描述的不是類之間的關系,而是對象之間的關系
包圖:
包圖用于描述系統的分層結構,由包或類組成,表示包與包之間的關系。
活動圖:
描述用例要求所要進行的活動,以及活動間的約束關系,有利于識別并行活動。能夠演示出系統中哪些地方存在功能,以及這些功能和系統中其他組件的功能如何共同滿足前面使用用例圖建模的商務需求。
狀態圖:
描述類的對象所有可能的狀態,以及事件發生時狀態的轉移條件。可以捕獲對象、子系統和系統的生命周期。他們可以告知一個對象可以擁有的狀態,并且事件(如消息的接收、時間的流逝、錯誤、條件變為真等)會怎么隨著時間的推移來影響這些狀態。一個狀態圖應該連接到所有具有清晰的可標識狀態和復雜行為的類;該圖可以確定類的行為,以及該行為如何根據當前的狀態變化,也可以展示哪些事件將會改變類的對象的狀態。狀態圖是對類圖的補充。
序列圖(順序圖):
序列圖是用來顯示你的參與者如何以一系列順序的步驟與系統的對象交互的模型。順序圖可以用來展示對象之間是如何進行交互的。順序圖將顯示的重點放在消息序列上,即強調消息是如何在對象之間被發送和接收的。
協作圖:
和序列圖相似,顯示對象間的動態合作關系。可以看成是類圖和順序圖的交集,協作圖建模對象或者角色,以及它們彼此之間是如何通信的。如果強調時間和順序,則使用序列圖;如果強調上下級關系,則選擇協作圖;這兩種圖合稱為交互圖。
構件圖(組件圖)
描述代碼構件的物理結構以及各種構建之間的依賴關系。用來建模軟件的組件及其相互之間的關系,這些圖由構件標記符和構件之間的關系構成。在組件圖中,構件是軟件單個組成部分,它可以是一個文件,產品、可執行文件和腳本等。
部署圖(配置圖)
是用來建模系統的物理部署。例如計算機和設備,以及它們之間是如何連接的。部署圖的使用者是開發人員、系統集成人員和測試人員。部署圖用于表示一組物理結點的集合及結點間的相互關系,從而建立了系統物理層面的模型。
注:
一:這十種模型圖各有側重:
1:用例圖側重描述用戶需求,
2:類圖側重描述系統具體實現;
二:描述的方面都不相同:
1:類圖描述的是系統的結構,
2:序列圖描述的是系統的行為;
三:抽象的層次也不同:
1:構件圖描述系統的模塊結構,抽象層次較高,
2:類圖是描述具體模塊的結構,抽象層次一般,
3:對象圖描述了具體的模塊實現,抽象層次較低。
在有的文獻書籍中,將這九種模型圖分為三大類
結構分類、動態行為和模型管理
1:結構分類包括用例圖、類圖、對象圖、構件圖和部署圖,
2:動態行為包括狀態圖、活動圖、順序圖和協作圖,
3:模型管理則包含類圖。
UML是在開發階段,說明、可視化、構建和書寫一個面向對象軟件密集系統的制品的開放方法