0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

走馬觀花的將UML大致梳理了一下,并結合EA的例圖

GReq_mcu168 ? 來源:玩轉單片機 ? 2020-07-01 17:06 ? 次閱讀

[導讀] 作為程序猿都最好掌握的一門語言,那就是UML(Unified Modeling Language),統(tǒng)一建模語言(UML)是軟件工程領域中一種通用的開發(fā)建模語言,旨在提供一種可視化系統(tǒng)設計的標準方法。是開發(fā)人員、系統(tǒng)設計人員交流的有效工具。今天來分享一下UML的一些體會,如有錯誤請幫忙指正。

注:UML工具有很多,本文描述的基于Enterprise Architect。

UML時間進化線:

說到UML不得不提的三位大神,Grady Booch、Jacobson、James Rumbaugh,三位是UML的創(chuàng)始人,均為軟件工程界的權威,除了著有多部軟件工程方面的著作之外,在對象技術發(fā)展上也有諸多杰出貢獻,其中包括Booch方法、對象建模技術(OMT)和Objectory(OOSE)過程。三人被合稱為“UML三友”。

面向對象編程方法以及描述符號進化歷史:

然后逐步發(fā)展到UML2.5標準。

UML目前的官方組織是https://www.uml.org/

宏觀看UML

UML用圖去描述一個軟件系統(tǒng),從需求、設計、到部署的方方面面都以及覆蓋。那么從總體上先來看看UML有哪些圖呢?

從描述系統(tǒng)建模目的,UML圖可以分成下面4大類:

從建模的動態(tài)視角/靜態(tài)視角,可以這樣去分類:

微觀看UML

UML由基本的組成可以從三大塊去了解:事物/關系/圖

事物(Things)

構件事物:UML模型的靜態(tài)部分,描述概念或物理元素

類:具有相同屬性相同操作 相同關系相同語義的對象的描述

接口:描述元素的外部可見行為,即服務集合的定義說明

協(xié)作 描述了事物間的相互作用的集合

用例:代表一個系統(tǒng)或系統(tǒng)的一部分行為,是一組動作序列的集合

構件:系統(tǒng)中物理存在,可替換的部件

節(jié)點:運行時存在的物理元素

另外,參與者、信號應用、文檔庫、頁表等都是上述基本事物的變體

行為事物:UML模型圖的動態(tài)部分,描述跨越空間和時間的行為

狀態(tài)機:描述事物或交互在生命周期內響應事件所經(jīng)歷的狀態(tài)序列

交互:實現(xiàn)某功能的一組構件事物之間的消息的集合,涉及消息、動作序列、鏈接

分組事物:UML模型圖的組織部分,描述事物的組織結構

注釋事物:UML模型的解釋部分,用來對模型中的元素進行說明,解釋

關系(Relationship)

下面是UML的基礎4大關系:

實現(xiàn)(realization)是類元之間的語義關系,其中的一個類元指定了由另一個類元保證執(zhí)行的契約

泛化(generalization)是一種特殊/一般的關系。也可以看作是常說的繼承關系

關聯(lián)(association)是一種結構關系,它指明一個事物的對象與另一個事物的對象間的聯(lián)系

依賴(dependency)是兩個事物之間的語義關系,其中一個事物(獨立事物)發(fā)生變化,會影響到另一個事物(依賴事物)的語義

更為詳細的描述,看看下面這些表吧:

圖(Diagram)

用例圖/Use Case Diagram:用于描述系統(tǒng)的參與者與用例間的關系

類圖/Class Diagram:?類圖以反映類的結構(屬性、操作)以及類之間的關系為主要目的,描述了軟件系統(tǒng)的邏輯結構,是一種靜態(tài)建模方法

對象圖/Object Diagram: 描述系統(tǒng)類在某個時刻的具體實例化情況,類似系統(tǒng)某時刻對象角度的快照

序列圖/Sequence Diagram:描述對象間動態(tài)行為在一段時間的行為序列

時序圖/Timing Diagram:描述對象在時間維度的動態(tài)行為

通訊圖/Communication Diagram:類似序列圖,相對序列圖強調時間維度,通訊著重描述協(xié)作的邏輯關系

相互作用概視圖/Interaction Overview Diagram:系統(tǒng)高層級的交互描述,可以引用其他序列圖、時序圖、通訊圖、以及交互概視圖

復合結構圖/Composite Structure Diagram:復合結構圖反映了類,接口或組件(及其組件)的內部協(xié)作屬性來描述一個功能

信息流圖/Info Flow Diagram:描述信息在對象間、構件、包、參與者之間的流向

狀態(tài)機圖/State Machine Diagram:用于描述元素在不同狀態(tài)間如何遷移的邏輯聯(lián)系

活動圖/Activity Diagram:常用于描述系統(tǒng)級行為的實現(xiàn)建模。需要考慮多種因素:邏輯條件、并發(fā)、中斷、數(shù)據(jù)訪問等等

封裝圖/包圖/Package Diagram:包圖描繪了將模型元素組織到包中以及它們之間的依賴關系(包括包導入和包擴展等)。它們還提供相應命名空間的可視化。

構件圖/Component Diagram:用于高層級描述系統(tǒng)的組成構件,以及構件間的依賴關系

部署圖/Deployment Diagram:描述系統(tǒng)的部署方式(如何部署、部署在什么環(huán)境、硬件環(huán)境、軟件環(huán)境等等)

.....

用例圖

參與者/Actor:圖中的小人,表示系統(tǒng)的用戶,如人/機器/內部的其他子系統(tǒng)/硬件等

用例/Use Case:圖中的橢圓框及描述,描述參與者與系統(tǒng)交互所實現(xiàn)的工作內容經(jīng)常會配合附加文本進行詳細描述。

邊界/Boundary:方框,描述框里的都是屬于建模對象里的東東,建模的時候可以方便識別與其他系統(tǒng)交互的接口

用例圖在UML語言中處于至關重要的位置,所謂4+1架構設計,用例圖用于描述系統(tǒng)需求,處于核心位置。屬于Use-case drivering 大法的心臟。

類圖/ Class Diagram

這個類圖描述一個圖像管理系統(tǒng)。

對象圖/Object Diagram

描述一個圖書管理系統(tǒng)某時刻對象的快照。

序列圖/Sequence Diagram

此圖說明了在交互中滿足視圖歷史用例所需的對象。對象之間的消息流為用戶提供了事務歷史信息。描述圖書管理系統(tǒng)如何查閱歷史的操作系列,反應了客戶端與各對象間消息傳遞關系。

時序圖/Timing Diagram

這個類似于芯片的時序圖概念。下圖描述用戶在有卡/無卡對系統(tǒng)訪問的時間線場景圖:

通訊圖/Communication Diagram

這是一個嵌入式系統(tǒng)的UML建模,該圖描述一個壓力控制系統(tǒng)兩個主要用例的實現(xiàn):

壓力控制循環(huán),上面的數(shù)字以及箭頭表示消息傳遞流向

通過HMI設置壓力

交互概視圖/Interaction Overview

描述了一個圖書管理系統(tǒng)如何從訂單發(fā)起后的所有交互概要圖,每個子圖上面的ref表示引用了一個更詳細的圖,比如Add to Shopping Basket 放入購物籃的具體動作:

復合結構圖/Composite Structure

狀態(tài)機圖/State Machine Diagram

這是描述圖書訂購系統(tǒng)如何登錄的狀態(tài)機圖

活動圖/Activity Diagram

常見的活動圖

帶泳道活動圖

將活動分組,明確該組活動負責的對象,對象負責該組的全部活動

子活動圖

活動圖中,某幾個活動可以組成一個內聚的子活動。

可中斷活動圖

這里的中斷并不嚴謹,本圖中表示這個活動事物是可以取消的。

封裝圖/包圖/Package Diagram

構件圖/ Component Diagram

用以描述構件之間的相互關系。

部署圖/Deployment Diagram

總結一下

本文走馬觀花的將UML大致梳理了一下,并結合EA的例圖,將常見的UML圖的作用大致描述一遍,供大家參考。對于軟件開發(fā)人員而言,UML還是很有必要學習掌握的。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • UML
    UML
    +關注

    關注

    0

    文章

    122

    瀏覽量

    30837
  • 可視化系統(tǒng)

    關注

    0

    文章

    30

    瀏覽量

    2172

原文標題:程序猿都應學習的語言:看25張圖學UML

文章出處:【微信號:mcu168,微信公眾號:硬件攻城獅】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    歡創(chuàng)播報 支付寶“碰一下”正式發(fā)布

    1 支付寶“碰一下”正式發(fā)布 近日,在支付寶開放日上,支付寶宣布升級條碼支付體驗,推出“支付寶碰一下”,用戶無需展示付款碼,解鎖手機碰一下商家收款設備,最快步完成支付。據(jù)介紹,“碰
    的頭像 發(fā)表于 07-11 11:32 ?802次閱讀
    歡創(chuàng)播報  支付寶“碰<b class='flag-5'>一下</b>”正式發(fā)布

    請教一下這個原理是工作原理是什么啊

    麻煩幫忙講一下這個原理的工作原理 當NTC溫度過高的時候 358自動輸出電壓從20V降低到8V!
    發(fā)表于 06-05 15:27

    用FreeRTOS 430449程配置了一下基本定時器,為什么進不去中斷源,是什么原因?

    用FreeRTOS 430449程配置了一下它的基本定時器,但是它進不去中斷源,是什么原因?
    發(fā)表于 03-07 08:09

    簡單介紹一下電源紋波與電容嘯叫

    簡單介紹一下電源紋波與電容嘯叫? 電源紋波與電容嘯叫是在電源系統(tǒng)中常見的兩種問題,它們會影響電子設備的性能和穩(wěn)定性。本篇文章詳細介紹電源紋波和電容嘯叫的定義、原因、對設備的影響以及常見的解決方法
    的頭像 發(fā)表于 02-04 09:42 ?910次閱讀

    36張電氣控制三菱PLC梯形編程方法匯總

    PLC為,介紹一下PLC梯形編程的方法,希望對大家有所幫助。
    的頭像 發(fā)表于 01-13 14:30 ?2224次閱讀
    36張電氣控制三菱PLC梯形<b class='flag-5'>圖</b>編程方法匯總

    金剛石晶體的不同類型及應用梳理

    金剛石是我們都非常熟悉的超硬材料,人造金剛石晶體有多種不同的類型,大致可分為單形和聚形,每種類型都具有不同的特性和應用。本文梳理了金剛石晶體的不同類型及應用。
    的頭像 發(fā)表于 01-02 15:47 ?2102次閱讀

    有方科技NB-IoT模組N21-EA順利通過GCF測試獲得認證

    近日,有方科技NB-IoT模組N21-EA順利通過GCF(Global Certification Forum)測試獲得認證,成為有方又款通過該認證的NB-IoT模組,這將為N21-EA
    的頭像 發(fā)表于 12-29 15:47 ?772次閱讀

    TCP協(xié)議面試常問知識點總結

    TCP 作為傳輸層的協(xié)議,是個IT工程師素養(yǎng)的體現(xiàn),也是面試中經(jīng)常被問到的知識點。在此,我 TCP 核心的些問題梳理了一下,希望能幫到
    的頭像 發(fā)表于 12-15 10:38 ?721次閱讀
    TCP協(xié)議面試常問知識點總結

    大眾途,喜歡的可留言

    *附件:上海大眾途培訓底盤.ppt*附件:途變速箱培訓教材.ppt*附件:途四驅培訓教材.ppt*附件:途制動培訓教材.ppt
    發(fā)表于 12-08 15:30

    介紹一下芯片的VIA pillar

    Via pillar,又可以叫Via ladder。貌似Cadence家喜歡叫pillar,synopsis喜歡叫l(wèi)adder,我也不知道它們?yōu)樯恫荒芙y(tǒng)一一下名稱。
    的頭像 發(fā)表于 12-06 14:00 ?676次閱讀

    無需電流采樣電阻的智能電機驅動IC,不來了解一下么?

    無需電流采樣電阻的智能電機驅動IC,不來了解一下么?
    的頭像 發(fā)表于 11-30 17:43 ?406次閱讀
    無需電流采樣電阻的智能電機驅動IC,不來了解<b class='flag-5'>一下</b>么?

    如何畫出規(guī)范的UML

    封裝了自身的數(shù)據(jù)和行為,能獨立對外提供服務的東西才能稱為系統(tǒng)。需要注意的系統(tǒng)是個整體,系統(tǒng)可能會有很多子系統(tǒng)。比如銀行轉賬交易時候需要做風控,如果有商家向銀行售賣交易系統(tǒng),那么風控這個子系統(tǒng)肯定是包含在整個交易系統(tǒng)內的,起打包賣給銀行的。
    的頭像 發(fā)表于 11-30 10:18 ?514次閱讀
    如何畫出規(guī)范的<b class='flag-5'>UML</b>用<b class='flag-5'>例</b><b class='flag-5'>圖</b>

    浪涌抗擾度怎么測?我們用這個A/D轉換器試了一下

    浪涌抗擾度怎么測?我們用這個A/D轉換器試了一下
    的頭像 發(fā)表于 11-27 15:20 ?670次閱讀
    浪涌抗擾度怎么測?我們用這個A/D轉換器試了<b class='flag-5'>一下</b>

    盤點一下CST電磁仿真軟件的求解器

    今天我們起來盤點一下CST電磁仿真軟件那些牛叉的求解器。快來數(shù)一下,你用了里面的幾種吧!
    的頭像 發(fā)表于 11-20 10:18 ?5769次閱讀
    盤點<b class='flag-5'>一下</b>CST電磁仿真軟件的求解器

    詳細介紹一下PSS+Pnoise仿真

    PSS+Pnoise仿真是很多電路要用到的仿真,今天我們詳細介紹一下這個仿真。
    的頭像 發(fā)表于 11-03 18:13 ?6286次閱讀
    詳細介紹<b class='flag-5'>一下</b>PSS+Pnoise仿真