在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

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

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

3天內不再提示

UML精準入門指南2

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

五、UML 的適用場景

UML 既可以描述某個問題領域,也可以表達構思中的軟件設計,還可以描述已經完成的軟件實現。

它適用于面向對象分析設計的整個過程。這個過程可以分為三個階段,如下圖。

圖片

第一個階段是通過建模將現實世界轉為業務模型。業務模型真實映射了參與者(業務活動的驅動者)在現實世界的行為。

圖片

從圖里可以看到,現實世界映射到業務模型后,是使用 參與者 和 用例 這兩個 UML 的核心元素表達的。參與者作為一個特定事件的驅動者,用例則描述了這個驅動者的業務目標。文章后邊也會提到這兩個元素。

第二個階段是對業務模型概念化,建立適合計算機理解和實現的模型,也就是概念模型,或者叫分析模型。分析模型向上映射了原始需求,向下為計算機實現規定了一種高層次的抽象,是一種過渡模型。

圖片

現實世界千差萬別的業務,都用 邊界、控制和實體這幾個核心元素來描述,同時也引入了 包、組件 這些與現實世界毫不相干的概念做包裝。

第三個階段是對概念模型實例化,得到相對詳細的設計模型。

圖片

在設計模型中,概念模型中的邊界類可以被轉化為操作界面或者系統接口;控制類可以被轉化為計算程序或控制程序,例如工作流、算法體等;實體類可以轉化為數據庫表、XML 文檔或者其他帶有持久化特征的類。

同樣的概念模型會因為選擇不同而得到不同的設計模型。比如技術選型上使用不同的編程語言,不同的中間件就會得到不同的設計。

為什么需要這一道轉換呢?

因為“邊界”、“控制”、“實體”這些對象化的概念,雖然是計算機可以理解的,但它并不是真正的對象實例,也就是說它們并不是可執行代碼,概念模型只是紙上談兵。真正的對象世界行為是由 Java 類、C++ 類、JSP 等這些可執行代碼構成的。

換句話說,設計模型是概念模型在特定環境和條件下的實例化,實例化后的對象行為執行了概念模型描述的那些信息。

以下是面向對象分析設計的完整過程,它表達了現實世界是怎么通過 UML 映射到對象世界的。

圖片

六、UML 的組成結構

前面花了比較大的篇幅分析了 UML 的定位和適用場景,目的是幫助讀者建立對 UML 整體系統性的認知,而不是過早的陷入 UML 的使用細節里。我們要應用一項技術或工具,不能單純的因為它的酷炫或者說業界都在用所以我們要用,而應該結合自己的使用場景以及技術或工具的特點,來確認這項技術或工具究竟是不是我們需要的。

在讀者了解 UML 在面向對象分析設計領域優秀的特性之后,我們再來看看 UML 的一些細節。

凡是語言,都會存在基本詞匯和語法。

那么對應到 UML 里,基本詞匯就是核心元素,語法就是核心視圖。

UML 的組成結構如下圖:

圖片

6.1 核心元素

我們先介紹核心元素,下圖是大綱。

圖片

6.1.1 版型

版型:也稱「類型」或「構造型」。是對 UML 元素基礎定義的擴展,在元素基礎定義的基礎上賦予特別的含義,使得這個元素適用于特定的場合。

比如,我們前邊提到的「邊界類」、「實體類」、「控制類」都是類的版型。

6.1.2 參與者

圖片

參與者定位:事件的第一驅動者,也是系統的服務方。比如你在電商網站購物,你就是參與者。

6.1.3 用例

圖片

用例定位:系統執行的一系列操作,并生成參與者可以觀察的值。比如你在電商網站交易,會生成在線訂單,用戶下單就是一個用例。

用例版型:

圖片

  • 業務用例:用于需求階段業務領域建模。與計算機系統建模無關,比如下單可以不依賴在線服務,而只是線下簽署協議。業務建模的目標是讓需求人員和客戶能夠達成共識。
  • 業務用例實現:業務用例的一種實現方式,一個業務用例可以有多種實現方式。比如下單后的支付,可以用現金,也可以銀行卡轉賬,還可以第三方支付。

圖片

  • 概念用例:用于獲取業務模型中的關鍵概念,分析出核心業務結構。業務架構就是概念建模階段產生,同時為系統建模階段提供重要指導。比如用戶下單這個用例,可以從實現過程中獲得一些核心業務,并把它們展現出來。

圖片

  • 系統用例:用于定義系統范圍、獲取功能性需求。也就是我們常掛在嘴邊的用例。像業務用例中提到的線下簽約的方式,就不會納入到系統用例中,但如果是電子簽約的話,就可以成為系統用例了。
  • 系統用例實現:系統用例的一種實現方式,一個系統用例可以有多種實現方式。比如下單后的支付,可以接入微信支付接口,也可以接入支付寶支付接口。

你會發現,同是用例的版型,業務用例與系統用例的區別就在于業務用例是客戶業務視角,系統用例是系統視角。

6.1.4 邊界

圖片

邊界定位:用于業務建模和系統建模階段的分析,保證分析粒度在一定的范圍內,不會擴散。

比如一個電商網站按領域職責作為邊界,會有店鋪域、商品域、會員域、交易域、支付域和營銷域等。各域只負責域內的事情,就能夠減少混亂緊耦合的局面。

一個好的分析和設計如同一筐帶殼的雞蛋,清清爽爽;一個差的設計如同一堆打碎了殼的雞蛋,粘粘糊糊。殼,是好壞的關鍵。

6.1.5 業務實體

圖片

業務實體定位:它代表參與者執行業務用例時所處理或使用的事物,特別用于在業務建模階段建立領域模型。業務實體是類(class)的一種版型。

業務實體的結構:包含屬性和方法。屬性用來保存業務實體特征,方法用來訪問業務實體。比如一臺電視,把它看成一個業務實體的話,它的屬性有運行狀態和音量,它的方法就是遙控器,我們可以開、關、調聲音,但是我們不可以試圖讓它飛起來——因為它沒有這樣的方法。

6.1.6 包

圖片

包定位:容納并為其他 UML 元素分類。比如 Java 后端經常會提供 jar 包給接入方使用。

6.1.7 分析類

圖片

分析類定位:用于代表系統中主要的職責簇,由此產生系統的設計類和子系統。

  • 邊界類:用于對系統外部環境和內部運作之間的交互進行建模。比如現實世界的窗戶,計算機世界的網頁。
  • 控制類:用于對用例特有的控制行為進行建模。比如顯示邏輯和業務邏輯通過控制層分離的 MVC 架構。
  • 實體類:用于對需要存儲的信息和相關行為進行建模。源于業務模型中的業務實體。

分析類的抽象層次較高,比設計和實現要穩定很多,因此方便維護,也更容易獲得一個穩定架構來指導整個軟件的開發。

6.1.8 設計類

圖片

設計類定位:是系統實施中一個或多個對象的抽象,由此映射到實現代碼,依賴于實施語言。

設計類結構:

  • 類型:對對象某一方面特征的歸納和抽象。映射到編碼中的 class。
  • 屬性:對象特征。映射到編碼中的 field。
  • 方法:訪問對象屬性的唯一途徑。映射到編碼中的 method。

6.1.9 關系

圖片

關系定位:抽象出對象之間的聯系,讓對象構成某個特定的結構。

關系分為以下幾種:

  • 關聯(association)
  • 關系:是一種擁有的關系,即一個類知道另一個類的屬性和方法;比如老師與學生可以是雙向的,也可以是單向的。雙向的關聯可以有兩個箭頭或者沒有箭頭,單向的關聯有一個箭頭。
  • 箭頭和連線:帶普通箭頭的實心線,指向被擁有者。
  • 適用場景:類圖。
  • 依賴(dependency)
  • 關系:是一種使用的關系,即一個類的實現需要另一個類的協助,是一種弱關系,隨運行場景變化。比如削蘋果時,人依賴于刀,脫離了這個場景,依賴關系就不存在了。
  • 箭頭和連線:帶箭頭的虛線,指向被使用者。
  • 適用場景:類圖。
  • 泛化(generalization)
  • 關系:是一種繼承的關系,比如貓是動物的一種。
  • 箭頭和連線:帶三角的實線,箭頭指向父類。
  • 適用場景:類圖。
  • 實現(realization)
  • 關系:是一種實現的關系,比如用例和用例實現的關系,接口與實現類的關系。
  • 箭頭和連線:帶三角的虛線,箭頭指向用例實現或接口類。
  • 適用場景:用例圖,類圖。
  • 聚合(aggregation)
  • 關系:是整體與部分的關系,且部分可以離開整體而單獨存在。生命周期各自獨立。如車和輪胎是聚合關系,輪胎離開車仍然可以存在。
  • 箭頭和連線:帶空心菱形的實線,菱形指向整體。
  • 適用場景:類圖。
  • 組合(composition)
  • 關系:是整體與部分的關系,但部分不能離開整體而單獨存在。同生同滅。如公司和部門是組合關系,沒有公司就不存在部門。
  • 箭頭和連線:帶實心(黑色實心:要死一起死,良心是黑的)菱形的實線,菱形指向整體。
  • 適用場景:類圖。

關聯關系和依賴關系的區別:

  • 關聯關系是靜態天然的聯系,依賴關系是動態臨時的聯系。

此外還有只用于用例中的關系:

圖片

  • 擴展(extends)
  • 關系:用于在用例模型中說明向基本用例中的某個擴展點插入擴展用例。
  • 箭頭和連線:帶箭頭的虛線加版型<>
  • 特點:用例可選。
  • 包含(include)
  • 關系:用于在用例模型中說明在執行基本用例的用例實例過程中插入的行為段。
  • 箭頭和連線:帶箭頭的虛線加版型<>
  • 特點:用例必需。

6.1.10 組件

圖片

組件定位:實現特定功能的邏輯代碼模塊。比如分布式應用架構下,將業務目標拆成多個功能,每個功能作為組件獨立部署。這樣這些組件也能被其他場景復用。

6.1.11 節點

圖片

節點定位:表示應用程序的部署單元。比如分布式應用的環境中,服務器或設備會有很多,就需要通過節點來體現物理部署的情況。

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

    關注

    0

    文章

    122

    瀏覽量

    31092
  • 面向對象
    +關注

    關注

    0

    文章

    64

    瀏覽量

    10087
  • 編程設計
    +關注

    關注

    0

    文章

    9

    瀏覽量

    6540
收藏 人收藏

    評論

    相關推薦
    熱點推薦

    FPB-RA2E2-快速入門指南

    FPB-RA2E2-快速入門指南
    發表于 01-11 18:52 ?1次下載
    FPB-RA<b class='flag-5'>2E2</b>-快速<b class='flag-5'>入門</b><b class='flag-5'>指南</b>

    EK-RA2E2-快速入門指南

    EK-RA2E2-快速入門指南
    發表于 01-30 18:47 ?0次下載
    EK-RA<b class='flag-5'>2E2</b>-快速<b class='flag-5'>入門</b><b class='flag-5'>指南</b>

    EK-RA2E1 – 快速入門指南

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

    EK-RA2L1 - 快速入門指南

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

    Stream-it!-RZ-V2快速入門指南

    Stream-it! - RZ-V2 快速入門指南
    發表于 03-23 19:08 ?0次下載
    Stream-it!-RZ-V<b class='flag-5'>2</b>快速<b class='flag-5'>入門</b><b class='flag-5'>指南</b>

    瑞薩 R8C/2F 入門套件快速入門指南

    瑞薩 R8C/2F 入門套件快速入門指南
    發表于 04-27 19:07 ?0次下載
    瑞薩 R8C/<b class='flag-5'>2</b>F <b class='flag-5'>入門</b>套件快速<b class='flag-5'>入門</b><b class='flag-5'>指南</b>

    瑞薩電子 R8C/2D 入門套件快速入門指南

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

    UML精準入門指南1

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

    UML精準入門指南3

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

    EK-RA4E2– 快速入門指南

    EK-RA4E2 – 快速入門指南
    發表于 05-12 19:23 ?0次下載
    EK-RA4E<b class='flag-5'>2</b>– 快速<b class='flag-5'>入門</b><b class='flag-5'>指南</b>

    FPB-RA2E2-快速入門指南

    FPB-RA2E2-快速入門指南
    發表于 06-30 20:39 ?1次下載
    FPB-RA<b class='flag-5'>2E2</b>-快速<b class='flag-5'>入門</b><b class='flag-5'>指南</b>

    EK-RA2E2-快速入門指南

    EK-RA2E2-快速入門指南
    發表于 07-03 20:12 ?0次下載
    EK-RA<b class='flag-5'>2E2</b>-快速<b class='flag-5'>入門</b><b class='flag-5'>指南</b>

    MCK-RA6T2快速入門指南

    MCK-RA6T2 快速入門指南
    發表于 07-03 20:39 ?0次下載
    MCK-RA6T<b class='flag-5'>2</b>快速<b class='flag-5'>入門</b><b class='flag-5'>指南</b>

    EK-RA6M2– 快速入門指南

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

    Stream-it!-RZ-V2快速入門指南

    Stream-it! - RZ-V2 快速入門指南
    發表于 07-10 18:58 ?0次下載
    Stream-it!-RZ-V<b class='flag-5'>2</b>快速<b class='flag-5'>入門</b><b class='flag-5'>指南</b>
    主站蜘蛛池模板: 一级一级18女人毛片 | 天天激情站 | 亚洲www美色 | 毛片站 | 黄页网址免费观看18网站 | 三级黄色在线视频中文 | 欧美人成绝费网站色www吃脚 | 爱爱小说视频永久免费网站 | 亚洲无吗在线视频 | 日本国产视频 | 一级毛片一级毛片一级级毛片 | 久久99操| 亚洲国产婷婷香蕉久久久久久 | 日韩精品一区二区三区免费视频 | 欧美在线视频7777kkkk | 国产秦先生大战白丝97在线 | 香港三级在线视频 | 午夜国产在线 | 成人影院在线观看 | 天天综合干 | 四虎东方va私人影库在线观看 | 男人天堂综合网 | 国产美女主播在线 | 国产高清小视频 | 成人免费国产gav视频在线 | 亚洲视频一 | 日本网站免费观看 | 日本口工福利漫画无遮挡 | www.91久久| 一级毛片西西人体44rt高清 | 人人澡人人澡人人看青草 | 热99在线视频 | 72种姿势欧美久久久久大黄蕉 | 午夜一级福利 | 日本视频一区二区 | 亚洲欧美在线一区二区 | 天天躁夜夜躁狠狠躁2021西西 | 国产精品欧美一区二区三区 | 国产精品免费看久久久香蕉 | 亚洲国产精品第一区二区 | 波多野结衣在线网址 |