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