UML統(tǒng)一建模語言簡介

UML概述

  • 面向?qū)ο筌浖_發(fā)的過程:

(1)OOA(面向?qū)ο蠓治?:建立分析模型并文檔化。

(2)OOD(面向?qū)ο笤O(shè)計(jì)):用面向?qū)ο笏枷雽OA的結(jié)果進(jìn)行細(xì)化,得出設(shè)計(jì)模型。

(3)OOP(面向?qū)ο缶幊?

  • UML就是將OOA和OOD的結(jié)果用統(tǒng)一的符號來描述和記錄。

  • UML已經(jīng)是可視化建模事實(shí)上的工業(yè)標(biāo)準(zhǔn)。

  • 不要把UML當(dāng)成一種負(fù)擔(dān),而是當(dāng)成工具。

  • UML有13種圖形,最常用的有:用例圖、類圖、組件圖、部署圖、順序圖、活動(dòng)圖、狀態(tài)機(jī)圖。

用例圖

用例圖的概念

用例圖用于描述系統(tǒng)的系列功能,一個(gè)用例圖代表系統(tǒng)的一個(gè)功能模塊,由“用例+角色”組成,主要在需求分析階段使用。

  • 用例:用橢圓表示。

  • 角色:用一個(gè)人形符號表示。

  • 用例之間的依賴關(guān)系:用虛線箭頭表示

一個(gè)BBS系統(tǒng)的用例圖:

類圖

  • 類圖用一個(gè)三層的矩形框表示,第一層寫類名,第二層包含類的屬性,第三層包含類的方法。如下圖示例:
  • 類之間的三種關(guān)系:關(guān)聯(lián)(包括聚合和組合)、泛化(和繼承是同一概念)、依賴。

  • 關(guān)聯(lián):

(1)關(guān)聯(lián)和屬性很像,兩者的區(qū)別:類里的某個(gè)屬性引用到另外一個(gè)實(shí)體時(shí),就變成了關(guān)聯(lián)。

(2)關(guān)聯(lián)用一條實(shí)線來表示,帶箭頭的實(shí)線表示單向關(guān)聯(lián)。

(3)關(guān)聯(lián)包含兩種特例:聚合和組合。兩者區(qū)別:

①聚合:當(dāng)某個(gè)實(shí)體A聚合成另一個(gè)實(shí)體B時(shí),A還可以同時(shí)是另外一個(gè)實(shí)體的一部分。比如學(xué)生既可以是網(wǎng)球俱樂部的成員,也可以是羽毛球俱樂部的成員。

聚合使用帶空心菱形框的實(shí)線表示。

②組合:當(dāng)某個(gè)實(shí)體A組合成另一個(gè)實(shí)體B時(shí),A不能同時(shí)是另外一個(gè)實(shí)體的一部分。比如手是人這個(gè)實(shí)體的一部分,手組合成為一個(gè)人的一部分后,不能同時(shí)是另外一個(gè)人的一部分。

組合使用帶實(shí)心菱形框的實(shí)線表示。

關(guān)聯(lián)關(guān)系示例圖如下:

  • 泛化關(guān)系:即繼承關(guān)系,用帶空心三角形的實(shí)線表示。對接口的實(shí)現(xiàn)也可以看成是一種特殊的繼承,

實(shí)現(xiàn)接口的關(guān)系用帶空心三角形的虛線表示。示例圖如下:

  • 依賴關(guān)系:如果一個(gè)類的改動(dòng)會導(dǎo)致另一個(gè)類的改動(dòng),則兩者之間存在依賴關(guān)系。依賴的常見原因:

(1)改動(dòng)的類將消息發(fā)送給另一個(gè)類;

(2)改動(dòng)的類以另一個(gè)類作為數(shù)據(jù)部分;

(3)改動(dòng)的類以另一個(gè)類作為操作參數(shù)。

依賴用帶箭頭的虛線表示,箭頭在被依賴的類一側(cè),依賴關(guān)系示例圖如下:

組件圖

  • 對于一個(gè)大型應(yīng)用程序而言,通常由多個(gè)可部署的組件組成。

(1)Java:可復(fù)用的組件通常打包成JAR、WAR等文件。

(2)C/C++:可復(fù)用的組件通常是一個(gè)函數(shù)庫,或者DLL(動(dòng)態(tài)鏈接庫)文件。

  • 組件圖的用途是顯示系統(tǒng)中的軟件對其他軟件組件(如庫函數(shù))的依賴關(guān)系。組件圖通常包含組件、接口、Port等元素,UML

用帶

符號的矩形表示組件,用圓圈代表接口,用位于組件邊界上的小矩形代表Port。

組件接口表示它能對外提供的服務(wù)規(guī)范,有兩種表示形式:

(1)用一條實(shí)線連接到組件邊界的圓圈表示;

(2)使用位于組件內(nèi)部的圓圈表示。

組件依賴于某個(gè)接口用一條帶半圓弧的實(shí)線來表示。

  • 組件圖示例如下:

部署圖

  • 部署圖顯示系統(tǒng)不同組件在何處物理運(yùn)行,以及它們之間如何通信。

  • 部署圖示例:

順序圖

  • 順序圖描述對象之間的交互,注重描述消息及其時(shí)間順序。

  • 順序圖示例:

活動(dòng)圖

  • 活動(dòng)圖 = 傳統(tǒng)流程圖 + 并行。

  • 用于描述用例內(nèi)部的活動(dòng)或方法的流程,用于描述過程原理、業(yè)務(wù)邏輯、工作流。

  • 活動(dòng)圖和狀態(tài)機(jī)圖都屬于演化圖,演化圖五要素:狀態(tài)、事件、動(dòng)作、活動(dòng)、條件。

  • 活動(dòng)圖用圓角矩形表示活動(dòng),用帶箭頭的實(shí)線表示事件。

  • 活動(dòng)圖示例:

image

狀態(tài)機(jī)圖

  • 狀態(tài)機(jī)圖表示某個(gè)對象所處的不同狀態(tài)和狀態(tài)之間的轉(zhuǎn)換信息,當(dāng)對象的狀態(tài)大于等于3個(gè)時(shí)才需要考慮使用狀態(tài)機(jī)圖。

  • 狀態(tài)機(jī)圖5個(gè)基本元素:

(1)初始狀態(tài):用實(shí)心圓來表示。

(2)狀態(tài)之間的轉(zhuǎn)換:用帶箭頭的實(shí)線表示。

(3)狀態(tài):用圓角矩形來表示。

(4)判斷點(diǎn):使用空心圓來表示。

(5)終止點(diǎn):有一個(gè)或多個(gè)終止點(diǎn),使用內(nèi)部包含實(shí)心圓的空心圓表示。

  • 狀態(tài)機(jī)圖示例:
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 228,936評論 6 535
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 98,744評論 3 421
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 176,879評論 0 381
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經(jīng)常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,181評論 1 315
  • 正文 為了忘掉前任,我火速辦了婚禮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 71,935評論 6 410
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 55,325評論 1 324
  • 那天,我揣著相機(jī)與錄音,去河邊找鬼。 笑死,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,384評論 3 443
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 42,534評論 0 289
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 49,084評論 1 335
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 40,892評論 3 356
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 43,067評論 1 371
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,623評論 5 362
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 44,322評論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,735評論 0 27
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 35,990評論 1 289
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 51,800評論 3 395
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 48,084評論 2 375

推薦閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 134,799評論 18 139
  • 1、為什么需要坐標(biāo)系:判斷方向很重要,一個(gè)點(diǎn)的價(jià)值并不是被自己界定,而是所在的坐標(biāo)系決定。天價(jià)學(xué)區(qū)房 2、坐標(biāo)系改...
    秋之竹薛梅閱讀 576評論 0 0
  • Bug001: 不管在任何頁面,只要同時(shí)滿足: 1.頁面沒加載出來 2.可以滑動(dòng)返回 簡書app就會crash掉。...
    Funnyer閱讀 195評論 1 0
  • 編繪:海小心 感謝喜歡, 一定記得關(guān)注作者待看下期哦 很多時(shí)候,吩咐個(gè)什么, 只能聽到老公“哦”, 但是動(dòng)也不動(dòng),...
    海小心的畫匣子閱讀 350評論 3 10