色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

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

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

3天內不再提示

UML精準入門指南1

jf_78858299 ? 來源:蝸牛互聯網 ? 作者:蝸牛互聯網 ? 2023-05-05 11:16 ? 次閱讀

一、前言

談到面向對象技術的分析和設計,自然就離不開 UML。對于 UML 這個概念,很多程序員朋友耳熟能詳,也有在用,但在工作中,一些朋友其實并不擅長使用 UML 甚至對 UML 這個東西模棱兩可,也包括我自己。因此我希望可以結合自己的經驗和實踐,寫一篇 UML 的入門文章,幫助做面向對象的程序員朋友能更好的利用它,從而順利完成自己的編程設計工作。

以下是本文大綱。

圖片

二、從一個示例開始

先舉個現實世界的例子。我們上大學的時候,作為學生,每人都有一張學生證,會歸屬到一個班級,上學時可能會用到自行車。很多同學還會考駕照,挑放假時間練車,車可能是轎車也可能是皮卡。

如果想通過在線的方式記錄以上的信息和行為,在軟件世界中如何表達呢?

相信很多朋友的操作是,找到這段話里的主語和賓語,也就找到了這個例子中涉及的角色,然后通過動詞來判斷各個角色之間的關系和能力,最后用代碼的方式來表達,產出可執行的程序。

像下圖這樣,識別出關鍵的實體和它們之間的關系。

圖片

用軟件工程的方式,解決現實中的問題,是信息時代最明顯的特點,這讓我們的生活和工作變得更加便利。

但現實世界錯綜復雜,靈活多變,每個人的理解可能會有不同,從現實世界到軟件世界的映射,就變得困難重重,一團亂麻。

如何讓現實世界到軟件世界映射變的簡單容易,這就是 UML 要解決的問題。

三、什么是 UML?

UML 全稱是 Unified Modeling Language(統一建模語言),它以圖形的方式來描述軟件的概念。

3.1 為什么稱為語言

先說語言,為什么稱為語言?

名稱的落腳點是語言。既然是語言,那么它就會具備語言的特性,比如結構上它由詞匯和語法構成,功能上它能解決溝通問題。

你熟知的語言里比較多的應該是漢語和英語,如果從事軟件行業,C 語言和 Java 語言你應該也不會陌生。英語和 Java 語言明顯都是語言,卻常常不被放在一起討論,為什么?因為它們是不同維度的語言。英語是解決現實世界中人與人之間溝通問題的人類語言,Java 是解決軟件世界中程序員與計算機之間溝通問題的計算機語言。

人類語言本質上是事實和觀點的表達,計算機語言本質上是0 和 1 的表達。前者的表達形式是難以確定的,而且可能會產生歧義,所以才會有「被誤解是表達者的宿命」這樣的觀點, 但后者就是確定性無歧義的 0 1 表達。

這么看來,UML 的目標是通過一定結構的表達,來解決現實世界到軟件世界的溝通問題。

3.2 什么是建模

再說建模,模是什么,需要怎么建?

建模簡單講,是指通過抽象的方式解決某個領域的問題。各個抽象角度共同組成了一個問題領域。

圖片

對于傳統模型而言,建造它是為了證明這個問題領域下某件事物能否工作。當然它有前提,即建造模型的成本遠遠低于建造實物的成本。比如造飛機或造高樓。

對于軟件模型而言,建造它是為了與他人溝通,也為了保存這個問題領域下軟件設計的最終成果。當然它也有前提,就是模型比代碼更說明問題。

比如購物這個問題,甲可以在淘寶上買衣服,乙可以在亞馬遜上買書,丙可以在京東上買手機

誰買東西?是甲、乙和丙,他們都能抽象成人。

買什么東西?有衣服、書和手機,它們都能抽象成貨。

在哪里買?在淘寶,亞馬遜和京東,它們都能抽象成場。

整體抽象一下就是人到場里買貨。所以購物這個場景所抽象出來的人貨場,就用來解決零售領域的問題。當然還可能會有些規則,比如成為注冊會員才能發生交易。

我們會發現,一個特定的事件(比如購物)里,會有特定的人的行為(比如甲乙丙要上電商網站),會有特定的物(比如貨),有特定的規則(比如注冊會員),共同完成購物這件事。

特定的事 = 特定的人的行為 + 特定的物 + 特定的規則

在人貨場這個抽象角度里,就會涉及到很多特定的事,包括會員注冊,會員下單,會員支付,商家發貨,快遞公司郵寄等等。

圖片

模簡單講,就是人、事、物和規則。

人是一切的中心,人要做事,做事就會使用一些物并產生另一些物,同時做事需要遵循一定的規則。

人驅動系統,事體現過程,物記錄結果,規則是控制。

建立模型的關鍵就是弄明白有什么人,什么人做什么事,什么事產生什么物,中間有什么規則,再把人、事、物之間的關系定義出來,一個模型也就基本成型了。

3.3 統一的意義在哪

統一的普遍意義是形成標準。所謂標準,就是所有人都明白的表述,所有人都遵從的格式。標準可以讓信息在人群中無障礙地流通,即使這些信息來自不同地域、不同文化、不同社會或不同組織。

比如美元作為國際統一使用的貨幣方便了全球的經濟貿易,我們國家普及普通話方便了不同地區的交流溝通。

在軟件世界,任何一種組件化開發模式背后都有一個標準在規范和指導,比如 Java 的 JSR 標準。有了標準,編程就容易組件化,協作效率也會提升很多。對 UML 來說,這就是統一的意義。

四、為什么需要 UML

一個軟件項目要經歷業務調研、立項、需求采集、架構設計、編碼開發和測試驗證等多個環節。

每個環節可能角色并不相同,同樣的文檔同樣的話語越向后傳遞就越容易失真。因此就容易出現最終交付的產品不是客戶真正想要的這種情況。

如何避免角色間信息傳遞的失真,保證信息能被準確的傳達和準確的理解?一種好的辦法就是大家使用標準化的語言。

統一建模語言(UML)就試圖用標準化的語言來覆蓋整個軟件過程,讓不同團隊不同角色可以用相同的語言順暢的溝通。

在信息傳播方面,圖形相對于文字,人腦的接受能力顯然更強。因此,UML 采用了「可視化」的圖形方式來定義語言。

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

    關注

    0

    文章

    122

    瀏覽量

    30880
  • 面向對象
    +關注

    關注

    0

    文章

    64

    瀏覽量

    9999
  • 編程設計
    +關注

    關注

    0

    文章

    9

    瀏覽量

    6465
收藏 人收藏

    評論

    相關推薦

    關于StoneOS_5.5R1_新手入門指南

    關于StoneOS_5.5R1_新手入門指南
    發表于 09-08 09:40 ?4次下載
    關于StoneOS_5.5R<b class='flag-5'>1</b>_新手<b class='flag-5'>入門</b><b class='flag-5'>指南</b>

    EK-RA2E1 – 快速入門指南

    EK-RA2E1 – 快速入門指南
    發表于 02-03 19:08 ?0次下載
    EK-RA2E<b class='flag-5'>1</b> – 快速<b class='flag-5'>入門</b><b class='flag-5'>指南</b>

    EK-RA2L1 - 快速入門指南

    EK-RA2L1 - 快速入門指南
    發表于 02-03 19:21 ?0次下載
    EK-RA2L<b class='flag-5'>1</b> - 快速<b class='flag-5'>入門</b><b class='flag-5'>指南</b>

    EK-RA6M1 – 快速入門指南

    EK-RA6M1 – 快速入門指南
    發表于 03-13 19:36 ?0次下載
    EK-RA6M<b class='flag-5'>1</b> – 快速<b class='flag-5'>入門</b><b class='flag-5'>指南</b>

    Evaluation SDK 4-1 快速入門指南

    Evaluation SDK 4-1 快速入門指南
    發表于 04-19 19:31 ?0次下載
    Evaluation SDK 4-<b class='flag-5'>1</b> 快速<b class='flag-5'>入門</b><b class='flag-5'>指南</b>

    瑞薩電子 R8C/1B 入門套件快速入門指南

    瑞薩電子 R8C/1B 入門套件快速入門指南
    發表于 04-28 19:05 ?1次下載
    瑞薩電子 R8C/<b class='flag-5'>1</b>B <b class='flag-5'>入門</b>套件快速<b class='flag-5'>入門</b><b class='flag-5'>指南</b>

    UML精準入門指南2

    自己。因此我希望可以結合自己的經驗和實踐,寫一篇 UML入門文章,幫助做面向對象的程序員朋友能更好的利用它,從而順利完成自己的編程設計工作。
    的頭像 發表于 05-05 11:17 ?879次閱讀
    <b class='flag-5'>UML</b><b class='flag-5'>精準入門</b><b class='flag-5'>指南</b>2

    UML精準入門指南3

    自己。因此我希望可以結合自己的經驗和實踐,寫一篇 UML入門文章,幫助做面向對象的程序員朋友能更好的利用它,從而順利完成自己的編程設計工作。
    的頭像 發表于 05-05 11:17 ?820次閱讀
    <b class='flag-5'>UML</b><b class='flag-5'>精準入門</b><b class='flag-5'>指南</b>3

    FPB-RA6E1-快速入門指南

    FPB-RA6E1-快速入門指南
    發表于 07-03 20:04 ?0次下載
    FPB-RA6E<b class='flag-5'>1</b>-快速<b class='flag-5'>入門</b><b class='flag-5'>指南</b>

    EK-RA2L1-快速入門指南

    EK-RA2L1 - 快速入門指南
    發表于 07-04 19:53 ?0次下載
    EK-RA2L<b class='flag-5'>1</b>-快速<b class='flag-5'>入門</b><b class='flag-5'>指南</b>

    EK-RA4M1 – 快速入門指南

    EK-RA4M1 – 快速入門指南
    發表于 07-04 20:54 ?0次下載
    EK-RA4M<b class='flag-5'>1</b> – 快速<b class='flag-5'>入門</b><b class='flag-5'>指南</b>

    RZ/N1 目標管理快速入門指南

    RZ/N1 目標管理快速入門指南
    發表于 07-05 20:33 ?0次下載
    RZ/N<b class='flag-5'>1</b> 目標管理快速<b class='flag-5'>入門</b><b class='flag-5'>指南</b>

    RZ/N1D CODESYS 快速入門指南

    RZ/N1D CODESYS 快速入門指南
    發表于 07-07 19:25 ?1次下載
    RZ/N<b class='flag-5'>1</b>D CODESYS 快速<b class='flag-5'>入門</b><b class='flag-5'>指南</b>

    tinyAVR 1系列入門指南

    電子發燒友網站提供《tinyAVR 1系列入門指南.pdf》資料免費下載
    發表于 09-25 09:21 ?0次下載
    tinyAVR <b class='flag-5'>1</b>系列<b class='flag-5'>入門</b><b class='flag-5'>指南</b>

    BQ27546-G1入門指南

    電子發燒友網站提供《BQ27546-G1入門指南.pdf》資料免費下載
    發表于 10-14 09:52 ?0次下載
    BQ27546-G<b class='flag-5'>1</b><b class='flag-5'>入門</b><b class='flag-5'>指南</b>
    主站蜘蛛池模板: 人妻无码AV中文系列| 色欲档案之麻雀台上淫 | 久9青青cao精品视频在线| 高清 仑乱 一级 a| 白百合在线观看| YELLOW高清视频免费观看| 99久久全国免费久久爱| 9477小游戏| 99久久国产露脸精品麻豆| 97超碰免费人妻中文| 97caopeng| bbbbbxxxxx肥胖| 草草久久久无码国产专区全集观看| 99国产精品免费视频| 99热久久精品国产一区二区| 99久久精品久久久久久清纯| AV福利无码亚洲网站麻豆| 被吊起玩弄的女性奴| 成年无码av片| 国产白丝精品爽爽久久久久久蜜臀 | 手机在线免费| 无码国产欧美日韩精品| 无码爽死成人777在线观看网站| 偷窥wc美女毛茸茸视频| 午夜伦理yy44008影院| 亚洲不卡视频| 一本道在线综合久久88| 在线播放国产视频| 97欧美精品大香伊蕉在人线| BL低喘贯穿顶弄老师H| 纯肉小黄文高H| 国产人妻人伦精品98| 精品国产福利一区二区在线| 久久精品伊人| 欧美成人中文字幕在线看| 日本久久高清视频| 四虎影视国产精品亚洲精品| 性女传奇 快播| 亚洲视频中文| 97影院理论午夜伦不卡偷| 动漫美女人物被黄漫在线看|