『软件工程13』浅谈面向对象方法,统一建模语言UML
淺談面向?qū)ο蠓椒║ML
- 一、UML的含義
- 二、UML的主要內(nèi)容
- 1、UML的概念模型
- 2、UML概念模型圖例
- 三、UML的基本構(gòu)造塊
- 1、UML中的事物
- (1)UML中的四種事物
- (2)UML中各種事物的圖示法
- 2、UML中的四種關(guān)系
- (1)依賴
- (2)關(guān)聯(lián)
- (3)泛化
- (4)實現(xiàn)
- 3、UML中的圖形(五大類十種圖)
- (1)用例圖
- (2)靜態(tài)圖:類圖、對象圖、包圖
- (3)行為圖:狀態(tài)圖、活動圖
- (4)交互圖:順序圖、協(xié)作圖
- (5)實現(xiàn)圖:構(gòu)建圖、部署圖
- 四、寫在最后
在下面的這篇文章中,將講解我們平常常用的一種面向?qū)ο蟮漠媹D方法,即統(tǒng)一建模語言UML(Unified Modeling Language)。
接下來開始進(jìn)行講解。
一、UML的含義
- 標(biāo)準(zhǔn)的建模語言(具有語言的規(guī)范)
- 促進(jìn)溝通(各種圖示表達(dá)規(guī)范)
- 支持系統(tǒng)構(gòu)建(正向工程,反向工程)
二、UML的主要內(nèi)容
1、UML的概念模型
UML具有一個完整的概念模型,提供了一套完整、全面的表達(dá)方法,其主要元素包括:①UML的基本構(gòu)造塊;②支配這些構(gòu)造塊如何放在一起的規(guī)則;③一些運用于整個UML的公共機制。
2、UML概念模型圖例
UML概念模型{基本構(gòu)造塊{事物:結(jié)構(gòu)事物、行為事物、分組事物、注釋事物關(guān)系:依賴、關(guān)聯(lián)、泛化、實現(xiàn)圖:用例圖、類圖、對象圖、包圖、交互圖等規(guī)則公共機制{規(guī)格說明修飾通用劃分?jǐn)U展機制\begin{cases} 基本構(gòu)造塊\begin{cases} 事物:結(jié)構(gòu)事物、行為事物、分組事物、注釋事物 \\ 關(guān)系:依賴、關(guān)聯(lián)、泛化、實現(xiàn) \\ 圖:用例圖、類圖、對象圖、包圖、交互圖等 \end{cases} \\ 規(guī)則 \\ 公共機制\begin{cases} 規(guī)格說明 \\ 修飾 \\ 通用劃分 \\擴展機制 \end{cases} \end{cases}??????????????????????????????基本構(gòu)造塊??????事物:結(jié)構(gòu)事物、行為事物、分組事物、注釋事物關(guān)系:依賴、關(guān)聯(lián)、泛化、實現(xiàn)圖:用例圖、類圖、對象圖、包圖、交互圖等?規(guī)則公共機制??????????規(guī)格說明修飾通用劃分擴展機制??
下面依據(jù)概念模型中的這三大類進(jìn)行一一講解。
三、UML的基本構(gòu)造塊
在UML中可以將詞匯劃分為3中構(gòu)造塊,即3類詞匯或基本元素:事物、關(guān)系和圖。
1、UML中的事物
(1)UML中的四種事物
事物是對模型中最具有代表性的成分的抽象,可分為結(jié)構(gòu)事物、行為事物、分組事物和注釋事物。
1)結(jié)構(gòu)事物
通常是模型的靜態(tài)部分,描述概念的物理元素。主要有以下五種結(jié)構(gòu)事物:
- 類 (class) :與面向?qū)ο蠓椒ㄖ蓄惖母拍钜恢隆?/li>
- 接口 (interface) :描述了一個類或構(gòu)件的一個服務(wù)的操作集。
- 用例 (use case) :代表了一個系統(tǒng)功能,是對一組動作序列的描述,系統(tǒng)執(zhí)行這些動作將產(chǎn)生一個對特定的參與者(即系統(tǒng)用戶)有價值而且可觀察的結(jié)果。
- 構(gòu)件 (component) :描述的是系統(tǒng)中的軟件物理事物。
- 節(jié)點 (node) :是在運行時存在的物理元素,表示了一種可計算的資源。
2)行為事物
行為事物主要有:狀態(tài)、交互。
3)分組事物
分組事物主要有:包。
4)注釋事物
注釋事物主要有:注解。
(2)UML中各種事物的圖示法
依據(jù)上面對四種事物的描述,下面給出UML中各種事物的圖示。
2、UML中的四種關(guān)系
UML中的四種關(guān)系是:依賴、關(guān)聯(lián)、泛化、實現(xiàn)。
(1)依賴
兩個模型元素中,有一個是獨立的,一個是非獨立的,獨立的模型元素發(fā)生改變,會影響非獨立的模型元素。
用帶箭頭的虛線來表示依賴關(guān)系。
如圖所示:
(2)關(guān)聯(lián)
關(guān)聯(lián)是一種結(jié)構(gòu)化的關(guān)系,指兩個模型元素有聯(lián)系。雙向關(guān)聯(lián)用一條實線來表示。
注意:關(guān)聯(lián)關(guān)系有多重度,主要有: 0 、 1 、 0..1 、 0..* 、 1..* 。
如圖所示:
值得注意的是,關(guān)聯(lián)中有兩種特殊的關(guān)聯(lián)關(guān)系:組合和聚合。
如果是組合和聚合類型,則再加一個棱形符號。
如下圖所示:
(3)泛化
是一般與特殊的關(guān)系,也就是繼承的關(guān)系。用實線加空心三角號來表示。
如圖所示:
(4)實現(xiàn)
實現(xiàn)關(guān)系是,一種模型元素保證另外一種模型元素的執(zhí)行,該關(guān)系主要用在接口中。用一條實線來表示。
如圖所示:
講到這里,以下再給出一張完整的圖來回顧這四種關(guān)系。
3、UML中的圖形(五大類十種圖)
(1)用例圖
1)用例圖的定義
用例圖從用戶角度描述系統(tǒng)功能,并指出各功能的操作者。
用例圖顯示若干角色或執(zhí)行者 (actor) 以及這些角色與系統(tǒng)提供的用例之間的連接關(guān)系。用例圖定義的是系統(tǒng)的功能需求。
2)用例圖的基本構(gòu)成
- 用例;
- 角色;
- 角色之間的關(guān)系(如果有,主要是泛化);
- 角色和用例之間的關(guān)系(單向關(guān)聯(lián)或雙向關(guān)聯(lián));
- 用例和用例之間的關(guān)系(包含、擴展、泛化)。
3)元素與元素之間的關(guān)系
include:
- include(包含關(guān)系),當(dāng)兩個或多個用例中共用一組相同的動作,可以將其抽出來作為一個獨立的子用例,供多個基用例所共享。
- 基用例并非一個完整的用例,所以必須和子用例一起使用才夠完整。
- include關(guān)系在用例圖中使用帶箭頭的虛線表示(在線上標(biāo)注 <<include>> ),箭頭從基用例指向子用例。
extend:
- extend(擴展關(guān)系),對基用例的擴展,基用例是一個完整的用例,即使沒有子用例的參與,也可以完成一個完整的功能。
- extend的基用例中將存在一個擴展點,只有當(dāng)擴展點被激活時,子用例才會被執(zhí)行。
- extend關(guān)系在用例圖中使用帶箭頭的虛線表示(在線上標(biāo)注 <<extend>> ),箭頭從子用例指向基用例。
子用例和基用例的關(guān)系:
(泛化關(guān)系)子用例將繼承父用例的所有結(jié)構(gòu)、行為和關(guān)系。也就是說在任何使用基用例的地方都可以用子用例來代替。
(泛化關(guān)系)在用例圖中使用空心的箭頭表示,箭頭方向從子用例指向基用例。
4)圖示
(2)靜態(tài)圖:類圖、對象圖、包圖
1)類圖
①定義: 類圖(class diagram)描述系統(tǒng)所有涉及到的類以及類和類之間的關(guān)系。
②類圖的基本構(gòu)成:
- 類(類名、屬性和方法);
- 類和類之間的關(guān)系(依賴、關(guān)聯(lián)、泛化、實現(xiàn))。
2)對象圖
①定義: 對象圖是類圖的實例,幾乎使用與類圖完全相同的標(biāo)識,但兩者之間又有一定的差別,如下圖例所示。
②圖例:
(3)行為圖:狀態(tài)圖、活動圖
1)狀態(tài)圖
①定義: 狀態(tài)圖(state chart diagram)描述系統(tǒng)涉及到的某個對象的所有狀態(tài)以及狀態(tài)和狀態(tài)之間轉(zhuǎn)換的事件。
②狀態(tài)圖的基本構(gòu)成:
- 狀態(tài)(圓角矩形);
- 狀態(tài)的起點、終點;
- 狀態(tài)之間轉(zhuǎn)換的事件;
- 注解(有時會有)。
③圖例:
2)活動圖
①定義: 活動圖(activity diagram)描述滿足用例功能需求所要進(jìn)行的活動以及活動間的約束關(guān)系。
②活動圖的基本構(gòu)成:
- 活動(注意符號與狀態(tài)不同);
- 活動的起點、終點(終點有時有多個);
- 活動之間用箭頭連接;
- 判定(有時會有,棱型框);
- 同步條(表示活動的分叉或匯合,包括水平、垂直兩種);
- 泳道(表示活動的不同職責(zé))。
③圖例:
(4)交互圖:順序圖、協(xié)作圖
1)順序圖
①定義: 順序圖顯示對象之間的動態(tài)合作關(guān)系。。
②順序圖的基本構(gòu)成:
- 對象;
- 生命線(對象正下方的虛線,表示對象在一段時期內(nèi)的存在) ;
- 窄矩形條(表示對象被激活,說明對象正在執(zhí)行某種操作);
- 交互的消息(有順序之分,消息其實就是接收對象的操作方法);
- 注解(有時會有);
- 可以轉(zhuǎn)換成協(xié)作圖。
③圖例:
2)協(xié)作圖
①定義: 協(xié)作圖(callobaration diagram)和順序圖的作用一樣,反映的也是動態(tài)協(xié)作。
②協(xié)作圖的基本構(gòu)成:
- 對象;
- 實線(對象之間的連接線,注意沒有箭頭) ;
- 交互的消息(有順序之分,消息其實就是接收對象的操作方法);
- 注解(有時會有);
- 可以轉(zhuǎn)換成順序圖。
③圖例:
(5)實現(xiàn)圖:構(gòu)建圖、部署圖
1)構(gòu)件圖
**①定義:**描述代碼構(gòu)件的物理結(jié)構(gòu)以及各構(gòu)件之間的依賴關(guān)系。
②構(gòu)件圖的基本構(gòu)成: 構(gòu)件。
③圖例:
2)部署圖
①定義: 系統(tǒng)中硬件的物理體系結(jié)構(gòu)。
②部署圖的基本構(gòu)成:
- 三維立方體表示部件;
- 節(jié)點名稱位于立方體上部。
③圖例:
四、寫在最后
到這里,關(guān)于軟件工程的體系知識就講解結(jié)束啦!后面將會繼續(xù)更新一些實踐的內(nèi)容。敬請期待!
如有需要了解軟件工程相關(guān)的其他內(nèi)容,可到『軟件工程』欄目進(jìn)行查看學(xué)習(xí)~
🙋🙋🙋
同時,有不理解或有誤的地方也歡迎評論區(qū)評論或私信我交流~
- 關(guān)注公眾號 星期一研究室 ,不定期分享學(xué)習(xí)干貨,學(xué)習(xí)路上不迷路~
- 如果這篇文章對你有用,記得點個贊加個關(guān)注再走哦~
總結(jié)
以上是生活随笔為你收集整理的『软件工程13』浅谈面向对象方法,统一建模语言UML的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 小米 Redmi 手机十年销售十亿台,卢
- 下一篇: 面试中的网红虚拟DOM,你知多少呢?深入