UML的全面認(rèn)識
學(xué)習(xí)UML之前浊服,我們先從什么是面向?qū)ο箝_始
Uml是面向?qū)ο蟮拿枋稣Z言也是面向?qū)ο蟮难由晖城栽谥vUML之前要先講面向?qū)ο?/p>
從字面上講面向?qū)ο笈哂酰褪敲嫦蛭矬w、面向真實(shí)的事物
怎么用抽象的語言直觀的描述這個物體愁憔,可以讓我們快速理解腕扶。
那第一步就是先給物體起一個名字,第二步就是怎么表示物體之間的關(guān)系
這就像我們生活中吨掌,我說蘋果你馬上就知道是什么半抱,不需要我做任何多余的解釋。我再說梨膜宋、西瓜窿侈,你就知道它們都是水果的關(guān)系。
就像實(shí)物秋茫,我們直接給它們命名史简。這是第一步
下第二步,如何描述它們之間相關(guān)聯(lián)的關(guān)系肛著,這我們就用到UML的Symbol符號圆兵。
這一點(diǎn)和五線譜的音樂符號還有電工符號很相似,可以直接的知道什么含義枢贿。
像圖上的UML箭頭符號殉农,在這可以簡單理解為“有?的意思,控制器上有按鈕和led燈
面向?qū)ο蟮牡谌c(diǎn)萨咕,事物的分類,像我們生活一樣會有魚類火本、肉類危队、奶制類等,哪些事物屬于哪類钙畔,不需要描述茫陆,我們大腦就會自動分類。
在編程世界數(shù)字世界也是一樣的簿盅,比如圖上的描述,我們使用的控制器屬于STM32系列的揍魂,這也有一個UML符號空心實(shí)線箭頭指向父類STM32桨醋,表示屬于某一類,可以簡單翻譯成“是“现斋。
接下來我們就進(jìn)入UML的世界
UML?Unified Modeling Language 是統(tǒng)一建模語言的簡稱喜最,它是一種由一整套圖表組成的標(biāo)準(zhǔn)化建模語言(看圖,分為靜態(tài)圖/結(jié)構(gòu)圖和動態(tài)圖倆大類庄蹋,重點(diǎn)圖用紅色框表示)瞬内。UML用于幫助系統(tǒng)開發(fā)人員闡明迷雪、展示、構(gòu)建和記錄軟件系統(tǒng)的產(chǎn)出虫蝶。
像現(xiàn)在我們經(jīng)常講的數(shù)字孿生章咧、數(shù)字雙胞胎就是建模的一種表現(xiàn)形式,現(xiàn)實(shí)世界和數(shù)字世界能真、編程世界的對照赁严。面對現(xiàn)在物聯(lián)網(wǎng)Iot的發(fā)展和產(chǎn)品的復(fù)雜性,讓我們知道建模技術(shù)的重要性舟陆。
接下來误澳,通過幾個重點(diǎn)建模圖表,來認(rèn)識一下UML的實(shí)用性秦躯。
第一個是用例圖忆谓,用例圖是UML圖中最簡單和最使用的圖,是從用戶的角度直觀描述對信息系統(tǒng)的需求踱承,分析產(chǎn)品的功能和行為;定義和描述了系統(tǒng)的外部可見行為倡缠。
用例圖(Use Case Diagram)是描述用例、參與者以及它們之間關(guān)系的圖茎活。描述用戶希望如何使用一個系統(tǒng)昙沦。通過用例圖可以知道誰是系統(tǒng)相關(guān)的用戶,希望系統(tǒng)提供哪些服務(wù)载荔,以及為系統(tǒng)提供什么樣的服務(wù)盾饮。用例建模是實(shí)現(xiàn)系統(tǒng)需求分析的一個很好的方法。
第二個圖是活動圖
活動圖也是描述行為的圖懒熙,不同在于活動圖描述的是活動(activity)的流程丘损。從when和how的維度來表達(dá)對應(yīng)的事件。使用場景工扎,一般活動圖會配合用例圖一起使用徘钥,我們通常使用用例圖表達(dá)產(chǎn)品需求,確定功能的系統(tǒng)邊界肢娘,接著通過活動圖來表達(dá)用例之間的流程呈础。 用例圖是需求結(jié)構(gòu)化的表達(dá),能夠比較容易的看到系統(tǒng)包含哪些功能橱健,是靜態(tài)的而钞,單純從用例圖沒辦法了解用例之間是怎么流通的,因此我們會通過活動圖來配合拘荡,表達(dá)出用例的流程
活動圖(Activity Diagramm)笨忌,描述了活動的順序,展現(xiàn)從一個活動到另一個活動的控制流,即活動圖是一種流程圖官疲「そ幔活動圖主要由活動和動作構(gòu)成。
接下來我們講實(shí)現(xiàn)
那就是最最重要的類圖
類是面向?qū)ο笙到y(tǒng)中最重要的構(gòu)造塊途凫。對于程序員來說垢夹,最頻繁使用的就是類圖。
類圖(Class Diagram):類圖是面向?qū)ο笙到y(tǒng)建模中最常用和最重要的圖维费,是定義其它圖的基礎(chǔ)果元。類圖主要是用來顯示系統(tǒng)中的類、接口以及它們之間的靜態(tài)結(jié)構(gòu)和關(guān)系的一種靜態(tài)模型犀盟。軟件設(shè)計(jì)師設(shè)計(jì)出類圖后而晒,程序員就可以用代碼實(shí)現(xiàn)類圖中包含的內(nèi)容。
類圖是UML圖中最重要的圖之一阅畴,是軟件的實(shí)際藍(lán)圖倡怎。用例圖和活動圖只是為了讓軟件開發(fā)人員有足夠的信息來設(shè)計(jì)和實(shí)現(xiàn)軟件。
不僅將類圖用于構(gòu)造還用于實(shí)現(xiàn)贱枣。不僅可以使用它顯示軟件的結(jié)構(gòu)监署,還可以從該圖中生成源代碼。
時序圖(Sequence Diagram)纽哥,UML交互圖钠乏。時序圖作為常用的UML交互圖,可以直觀的傳達(dá)系統(tǒng)內(nèi)外之間的交互過程
它通過描述對象之間發(fā)送消息的時間順序顯示多個對象之間的動態(tài)協(xié)作春塌。時序圖中包括的建模元素主要有:對象(Object)晓避、生命線(Lifeline)、控制焦點(diǎn)(Focus of control)只壳、消息(Message)等等俏拱。????序列圖,通過從源代碼自動生成吕世。
UML 狀態(tài)圖 state machine彰触,主要用于描述對象具有的各種狀態(tài)梯投、狀態(tài)之間的轉(zhuǎn)換過程以及觸發(fā)狀態(tài)轉(zhuǎn)換的各種事件和條件命辖。
用狀態(tài)圖建模可以幫助開發(fā)人員分析復(fù)雜對象的各種狀態(tài)的轉(zhuǎn)換分蓖,以及對象何時執(zhí)行怎樣的動作尔艇。用于描述一個對象在其生存周期間的動態(tài)行為,表現(xiàn)一個對象所經(jīng)歷的狀態(tài)序列么鹤,引起狀態(tài)轉(zhuǎn)移的事件(event)终娃,以及因狀態(tài)轉(zhuǎn)移而伴隨的動作(action),這些狀態(tài)控制外部或內(nèi)部事件的不同狀態(tài)蒸甜。狀態(tài)機(jī)由狀態(tài)棠耕、轉(zhuǎn)換余佛、事件、活動和動作五部分組成窍荧。
接下來是系統(tǒng)工程的由來:
SysML是一種跨學(xué)科的建模語言辉巡。它在機(jī)械,電氣工程蕊退,電子和軟件之間進(jìn)行調(diào)解郊楣,也是在UML的基礎(chǔ)上開發(fā)的。
系統(tǒng)工程中由于缺乏標(biāo)準(zhǔn)的建模語言瓤荔,從而限制系統(tǒng)工程師和其他學(xué)科之間關(guān)于系統(tǒng)需求和設(shè)計(jì)的有效通信净蚤,影響了系統(tǒng)工程的質(zhì)量和效率。
?隨著軟件系統(tǒng)體系變的越來越復(fù)雜输硝、規(guī)模越來越大今瀑,高質(zhì)量、高可靠性的嵌入式實(shí)時系統(tǒng)腔丧,并且可以進(jìn)行安全性驗(yàn)證與分析的技術(shù)就尤為重要放椰。
SysML ( System Modeling?Language)是系統(tǒng)工程應(yīng)用開發(fā)的標(biāo)準(zhǔn)建模語言,支持對各種復(fù)雜系統(tǒng)進(jìn)行詳細(xì)說明愉粤、分析砾医、設(shè)計(jì)、驗(yàn)證和確認(rèn)衣厘。它一種跨學(xué)科的建模語言如蚜,涵蓋機(jī)械,電氣影暴,電子错邦,液壓,氣動和軟件領(lǐng)域,能夠在一個模型中整體映射現(xiàn)代機(jī)電一體化系統(tǒng)型宙。
和UML用來統(tǒng)一軟件工程中使用的建模語言一樣撬呢,SysML的目的是統(tǒng)一系統(tǒng)工程中使用的建模語言。