chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

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

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

程序員都應(yīng)學(xué)習(xí)的語(yǔ)言:看25張圖學(xué)UML

電子設(shè)計(jì) ? 來(lái)源:電子設(shè)計(jì) ? 作者:電子設(shè)計(jì) ? 2020-12-14 23:09 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

首發(fā):嵌入式客棧
作者:逸珺

[導(dǎo)讀] 作為程序猿都最好掌握的一門(mén)語(yǔ)言,那就是UML(Unified Modeling Language),統(tǒng)一建模語(yǔ)言(UML)是軟件工程領(lǐng)域中一種通用的開(kāi)發(fā)建模語(yǔ)言,旨在提供一種可視化系統(tǒng)設(shè)計(jì)的標(biāo)準(zhǔn)方法。是開(kāi)發(fā)人員、系統(tǒng)設(shè)計(jì)人員交流的有效工具。今天來(lái)分享一下UML的一些體會(huì),如有錯(cuò)誤請(qǐng)幫忙指正。

注:UML工具有很多,本文描述的基于Enterprise Architect。最近微信平臺(tái)排序規(guī)則升級(jí)了,如不想錯(cuò)過(guò)小號(hào)文章,建議給小號(hào)加下星標(biāo)。

UML前世今生

UML時(shí)間進(jìn)化線:


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

面向?qū)ο?a href="http://www.brongaenegriffin.com/v/tag/1315/" target="_blank">編程方法以及描述符號(hào)進(jìn)化歷史:


然后逐步發(fā)展到UML2.5標(biāo)準(zhǔn)。

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

宏觀看UML

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

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

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

微觀看UML

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

事物(Things)

  • 構(gòu)件事物:UML模型的靜態(tài)部分,描述概念或物理元素
  • 類:具有相同屬性相同操作 相同關(guān)系相同語(yǔ)義的對(duì)象的描述
  • 接口:描述元素的外部可見(jiàn)行為,即服務(wù)集合的定義說(shuō)明
  • 協(xié)作 描述了事物間的相互作用的集合
  • 用例:代表一個(gè)系統(tǒng)或系統(tǒng)的一部分行為,是一組動(dòng)作序列的集合
  • 構(gòu)件:系統(tǒng)中物理存在,可替換的部件
  • 節(jié)點(diǎn):運(yùn)行時(shí)存在的物理元素
  • 另外,參與者、信號(hào)應(yīng)用、文檔庫(kù)、頁(yè)表等都是上述基本事物的變體
  • 行為事物:UML模型圖的動(dòng)態(tài)部分,描述跨越空間和時(shí)間的行為
  • 狀態(tài)機(jī):描述事物或交互在生命周期內(nèi)響應(yīng)事件所經(jīng)歷的狀態(tài)序列
  • 交互:實(shí)現(xiàn)某功能的一組構(gòu)件事物之間的消息的集合,涉及消息、動(dòng)作序列、鏈接
  • 分組事物:UML模型圖的組織部分,描述事物的組織結(jié)構(gòu)
  • 注釋事物:UML模型的解釋部分,用來(lái)對(duì)模型中的元素進(jìn)行說(shuō)明,解釋

關(guān)系(Relationship)

下面是UML的基礎(chǔ)4大關(guān)系:

  • 實(shí)現(xiàn)(realization)是類元之間的語(yǔ)義關(guān)系,其中的一個(gè)類元指定了由另一個(gè)類元保證執(zhí)行的契約
  • 泛化(generalization)是一種特殊/一般的關(guān)系。也可以看作是常說(shuō)的繼承關(guān)系
  • 關(guān)聯(lián)(association)是一種結(jié)構(gòu)關(guān)系,它指明一個(gè)事物的對(duì)象與另一個(gè)事物的對(duì)象間的聯(lián)系
  • 依賴(dependency)是兩個(gè)事物之間的語(yǔ)義關(guān)系,其中一個(gè)事物(獨(dú)立事物)發(fā)生變化,會(huì)影響到另一個(gè)事物(依賴事物)的語(yǔ)義

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

圖(Diagram)

  • 用例圖/Use Case Diagram:用于描述系統(tǒng)的參與者與用例間的關(guān)系
  • 類圖/Class Diagram:?類圖以反映類的結(jié)構(gòu)(屬性、操作)以及類之間的關(guān)系為主要目的,描述了軟件系統(tǒng)的邏輯結(jié)構(gòu),是一種靜態(tài)建模方法
  • 對(duì)象圖/Object Diagram: 描述系統(tǒng)類在某個(gè)時(shí)刻的具體實(shí)例化情況,類似系統(tǒng)某時(shí)刻對(duì)象角度的快照
  • 序列圖/Sequence Diagram:描述對(duì)象間動(dòng)態(tài)行為在一段時(shí)間的行為序列
  • 時(shí)序圖/Timing Diagram:描述對(duì)象在時(shí)間維度的動(dòng)態(tài)行為
  • 通訊圖/Communication Diagram:類似序列圖,相對(duì)序列圖強(qiáng)調(diào)時(shí)間維度,通訊著重描述協(xié)作的邏輯關(guān)系
  • 相互作用概視圖/Interaction Overview Diagram:系統(tǒng)高層級(jí)的交互描述,可以引用其他序列圖、時(shí)序圖、通訊圖、以及交互概視圖
  • 復(fù)合結(jié)構(gòu)圖/Composite Structure Diagram:復(fù)合結(jié)構(gòu)圖反映了類,接口或組件(及其組件)的內(nèi)部協(xié)作屬性來(lái)描述一個(gè)功能
  • 信息流圖/Info Flow Diagram:描述信息在對(duì)象間、構(gòu)件、包、參與者之間的流向
  • 狀態(tài)機(jī)圖/State Machine Diagram:用于描述元素在不同狀態(tài)間如何遷移的邏輯聯(lián)系
  • 活動(dòng)圖/Activity Diagram:常用于描述系統(tǒng)級(jí)行為的實(shí)現(xiàn)建模。需要考慮多種因素:邏輯條件、并發(fā)、中斷、數(shù)據(jù)訪問(wèn)等等
  • 封裝圖/包圖/Package Diagram:包圖描繪了將模型元素組織到包中以及它們之間的依賴關(guān)系(包括包導(dǎo)入和包擴(kuò)展等)。它們還提供相應(yīng)命名空間的可視化。
  • 構(gòu)件圖/Component Diagram:用于高層級(jí)描述系統(tǒng)的組成構(gòu)件,以及構(gòu)件間的依賴關(guān)系
  • 部署圖/Deployment Diagram:描述系統(tǒng)的部署方式(如何部署、部署在什么環(huán)境、硬件環(huán)境、軟件環(huán)境等等)
  • .....

用例圖

  • 參與者/Actor:圖中的小人,表示系統(tǒng)的用戶,如人/機(jī)器/內(nèi)部的其他子系統(tǒng)/硬件等
  • 用例/Use Case:圖中的橢圓框及描述,描述參與者與系統(tǒng)交互所實(shí)現(xiàn)的工作內(nèi)容經(jīng)常會(huì)配合附加文本進(jìn)行詳細(xì)描述。
  • 邊界/Boundary:方框,描述框里的都是屬于建模對(duì)象里的東東,建模的時(shí)候可以方便識(shí)別與其他系統(tǒng)交互的接口

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

類圖/ Class Diagram


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

對(duì)象圖/Object Diagram

描述一個(gè)圖書(shū)管理系統(tǒng)某時(shí)刻對(duì)象的快照。

序列圖/Sequence Diagram


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

時(shí)序圖/Timing Diagram

這個(gè)類似于芯片的時(shí)序圖概念。下圖描述用戶在有卡/無(wú)卡對(duì)系統(tǒng)訪問(wèn)的時(shí)間線場(chǎng)景圖:

通訊圖/Communication Diagram


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

  • 壓力控制循環(huán),上面的數(shù)字以及箭頭表示消息傳遞流向
  • 通過(guò)HMI設(shè)置壓力

交互概視圖/Interaction Overview

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

復(fù)合結(jié)構(gòu)圖/Composite Structure

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


這是描述圖書(shū)訂購(gòu)系統(tǒng)如何登錄的狀態(tài)機(jī)圖

活動(dòng)圖/Activity Diagram

常見(jiàn)的活動(dòng)圖

帶泳道活動(dòng)圖

將活動(dòng)分組,明確該組活動(dòng)負(fù)責(zé)的對(duì)象,對(duì)象負(fù)責(zé)該組的全部活動(dòng)

子活動(dòng)圖


活動(dòng)圖中,某幾個(gè)活動(dòng)可以組成一個(gè)內(nèi)聚的子活動(dòng)。

可中斷活動(dòng)圖

這里的中斷并不嚴(yán)謹(jǐn),本圖中表示這個(gè)活動(dòng)事物是可以取消的。

封裝圖/包圖/Package Diagram

構(gòu)件圖/ Component Diagram

用以描述構(gòu)件之間的相互關(guān)系。

部署圖/Deployment Diagram

總結(jié)一下

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

本文辛苦原創(chuàng)分享,如果覺(jué)得有價(jià)值也請(qǐng)幫忙點(diǎn)贊/轉(zhuǎn)發(fā)支持,不勝感激!

_END_—

審核編輯:符乾江
聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • UML
    UML
    +關(guān)注

    關(guān)注

    0

    文章

    123

    瀏覽量

    31490
  • 深度學(xué)習(xí)
    +關(guān)注

    關(guān)注

    73

    文章

    5589

    瀏覽量

    123869
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    奔赴熱AI,碼力全開(kāi)!Talkweb House@1024程序員日系列活動(dòng)圓滿收官

    1024程序員日”系列活動(dòng)至此劃上了一個(gè)圓滿句號(hào)。本屆1024程序員節(jié)以“AI構(gòu)建世界,智能引領(lǐng)未來(lái)”為主題,廣邀技術(shù)大咖、產(chǎn)業(yè)領(lǐng)袖、企業(yè)代表與全球開(kāi)發(fā)者齊聚星城
    的頭像 發(fā)表于 10-27 18:59 ?350次閱讀
    奔赴熱AI,碼力全開(kāi)!Talkweb House@1024<b class='flag-5'>程序員</b>日系列活動(dòng)圓滿收官

    開(kāi)鴻智谷“以賽促學(xué)、以賽選才”|1024程序員節(jié)暨開(kāi)源鴻蒙構(gòu)建大會(huì)圓滿落幕!

    10月24日,由開(kāi)鴻智谷聯(lián)合主辦的長(zhǎng)沙1024程序員節(jié)暨開(kāi)源鴻蒙構(gòu)建大會(huì)在長(zhǎng)沙圓滿落幕。本次活動(dòng)以“湘聚長(zhǎng)沙,共赴熱AI”為主題,通過(guò)技術(shù)分享與實(shí)戰(zhàn)競(jìng)賽相結(jié)合的方式,著力培養(yǎng)“開(kāi)源鴻蒙+AI”領(lǐng)域
    的頭像 發(fā)表于 10-27 17:58 ?426次閱讀
    開(kāi)鴻智谷“以賽促<b class='flag-5'>學(xué)</b>、以賽選才”|1024<b class='flag-5'>程序員</b>節(jié)暨開(kāi)源鴻蒙構(gòu)建大會(huì)圓滿落幕!

    分享一個(gè)嵌入式學(xué)習(xí)階段規(guī)劃

    給大家分享一個(gè)嵌入式學(xué)習(xí)階段規(guī)劃: (一)基礎(chǔ)筑牢階段(約 23 天) 核心目標(biāo):打牢 C 語(yǔ)言、數(shù)據(jù)結(jié)構(gòu)、電路基礎(chǔ)C 語(yǔ)言開(kāi)發(fā):學(xué)變量 / 指針 / 結(jié)構(gòu)體等核心語(yǔ)法,用 Dev-
    發(fā)表于 09-12 15:11

    深度操作系統(tǒng)deepin 25全面支持凹語(yǔ)言

    近日,deepin(深度)社區(qū)宣布,deepin 25 現(xiàn)已完成對(duì)國(guó)產(chǎn)通用編程語(yǔ)言語(yǔ)言 (Wa-Lang) 的兼容性測(cè)試。在 deepin 25 默認(rèn)安裝環(huán)境下,即可直接使用凹
    的頭像 發(fā)表于 07-10 15:26 ?761次閱讀
    深度操作系統(tǒng)deepin <b class='flag-5'>25</b>全面支持凹<b class='flag-5'>語(yǔ)言</b>

    跟老齊學(xué)Python:從入門(mén)到精通

    礎(chǔ)的學(xué)習(xí)者介紹一門(mén)時(shí)下比較流行、并且用途比較廣泛的編程語(yǔ)言,所以,本書(shū)讀起來(lái)不晦澀,并且在其中穿插了很多貌似與Python 編程無(wú)關(guān),但與學(xué)習(xí)者未來(lái)程序員職業(yè)生涯有關(guān)的內(nèi)容。 獲
    發(fā)表于 06-03 16:10

    程序設(shè)計(jì)與數(shù)據(jù)結(jié)構(gòu)

    的地址)出發(fā),采用推導(dǎo)的方式,深入淺出的分析了廣大C程序員學(xué)習(xí)和開(kāi)發(fā)中遇到的難點(diǎn)。 2. 從方法論的高度對(duì)C語(yǔ)言在數(shù)據(jù)結(jié)構(gòu)和算法方面的應(yīng)用進(jìn)行了深入講解和闡述。 3. 講解了絕大多數(shù)C程序
    發(fā)表于 05-13 16:45

    如何在 樹(shù)莓派 上編寫(xiě)和運(yùn)行 C 語(yǔ)言程序

    ,一本很好的書(shū)是BrianKernighan和DennisRitchie所著的《TheCProgrammingLanguage》。這本書(shū)對(duì)經(jīng)驗(yàn)豐富的程序員和想學(xué)習(xí)C語(yǔ)
    的頭像 發(fā)表于 03-25 09:28 ?925次閱讀
    如何在 樹(shù)莓派 上編寫(xiě)和運(yùn)行 C <b class='flag-5'>語(yǔ)言</b><b class='flag-5'>程序</b>?

    零基礎(chǔ)入門(mén):如何在樹(shù)莓派上編寫(xiě)和運(yùn)行Python程序

    是一種非常有用的編程語(yǔ)言,其語(yǔ)法易于閱讀,允許程序員使用比匯編、C或Java等語(yǔ)言更少的代碼行。Python編程語(yǔ)言最初實(shí)際上是作為L(zhǎng)inux的腳本
    的頭像 發(fā)表于 03-25 09:27 ?1497次閱讀
    零基礎(chǔ)入門(mén):如何在樹(shù)莓派上編寫(xiě)和運(yùn)行Python<b class='flag-5'>程序</b>?

    為什么學(xué)了C語(yǔ)言,卻寫(xiě)不出像樣的項(xiàng)目?

    學(xué)習(xí)編程的路上,C語(yǔ)言幾乎是每個(gè)程序員的“必修課”。不管你是打算從事嵌入式開(kāi)發(fā)、系統(tǒng)編程,還是想要深入理解操作系統(tǒng)的底層原理,C語(yǔ)言都是一塊重要的基石。然而許多人在
    的頭像 發(fā)表于 03-14 17:37 ?662次閱讀
    為什么學(xué)了C<b class='flag-5'>語(yǔ)言</b>,卻寫(xiě)不出像樣的項(xiàng)目?

    阿里云升級(jí)通義靈碼AI程序員,全面上線

    近日,阿里云宣布其備受矚目的通義靈碼AI程序員已正式全面上線,為開(kāi)發(fā)者帶來(lái)更為強(qiáng)大和便捷的編程輔助工具。 此次上線的通義靈碼AI程序員,在功能上實(shí)現(xiàn)了全面升級(jí)?,F(xiàn)在,它支持VS Code
    的頭像 發(fā)表于 01-09 11:16 ?939次閱讀

    TMS320C6000程序員指南

    電子發(fā)燒友網(wǎng)站提供《TMS320C6000程序員指南.pdf》資料免費(fèi)下載
    發(fā)表于 12-24 17:19 ?2次下載
    TMS320C6000<b class='flag-5'>程序員</b>指南

    TMS320C55x DSP CPU程序員參考補(bǔ)充

    電子發(fā)燒友網(wǎng)站提供《TMS320C55x DSP CPU程序員參考補(bǔ)充.pdf》資料免費(fèi)下載
    發(fā)表于 12-21 11:36 ?3次下載
    TMS320C55x DSP CPU<b class='flag-5'>程序員</b>參考補(bǔ)充

    學(xué)習(xí)硬件的第一節(jié)課:學(xué)習(xí)讀懂原理

    學(xué)習(xí)硬件的第一節(jié)課:學(xué)習(xí)讀懂原理 讀懂原理對(duì)嵌入式軟件工程師和程序員尤為重要。在深入細(xì)節(jié)之前請(qǐng)注意,對(duì)所有的嵌入式設(shè)計(jì)人員來(lái)說(shuō)、能懂得硬
    的頭像 發(fā)表于 12-16 16:04 ?3610次閱讀
    <b class='flag-5'>學(xué)習(xí)</b>硬件的第一節(jié)課:<b class='flag-5'>學(xué)習(xí)</b>讀懂原理<b class='flag-5'>圖</b>

    UCD3138A64/UCD3138128程序員手冊(cè)

    電子發(fā)燒友網(wǎng)站提供《UCD3138A64/UCD3138128程序員手冊(cè).pdf》資料免費(fèi)下載
    發(fā)表于 12-09 14:42 ?1次下載
    UCD3138A64/UCD3138128<b class='flag-5'>程序員</b>手冊(cè)

    機(jī)械革命發(fā)布CODE AI程序員

    近日,英特爾新質(zhì)生產(chǎn)力技術(shù)生態(tài)大會(huì)在成都舉行,機(jī)械革命作為重要參展商帶來(lái)了多款明星產(chǎn)品引爆全場(chǎng)!其中更是在AI PC軟件生態(tài)產(chǎn)品發(fā)布分論壇上,Intel、智譜、機(jī)械革命三方聯(lián)合發(fā)布了專為程序員設(shè)計(jì)的CODE AI程序員本,成為本次大會(huì)的一大亮點(diǎn)。
    的頭像 發(fā)表于 11-30 10:34 ?2141次閱讀