日韩成人免费在线_国产成人一二_精品国产免费人成电影在线观..._日本一区二区三区久久久久久久久不

當前位置:首頁 > 科技  > 軟件

這七種UML圖的畫法,每個程序員都應該掌握!

來源: 責編: 時間:2024-04-02 17:22:49 242觀看
導讀眾所周知,軟件開發是一個分階段進行的過程。不同的開發階段需要使用不同的模型圖來描述業務場景和設計思路,在不同的階段輸出不同的設計文檔也是必不可少的,例如,在需求分析階段需要輸出領域模型和業務模型,在架構階段需要

眾所周知,軟件開發是一個分階段進行的過程。不同的開發階段需要使用不同的模型圖來描述業務場景和設計思路,在不同的階段輸出不同的設計文檔也是必不可少的,例如,在需求分析階段需要輸出領域模型和業務模型,在架構階段需要輸出物理架構設計,在詳細設計階段需要輸出數據庫設計等。這樣做可以更好地實踐軟件開發,并提高軟件開發的實用性。JVA28資訊網——每日最新資訊28at.com

軟件建模與設計過程可以分為三個階段:需求分析、架構設計和詳細設計。在這三個階段中,大量使用符合 UML 規范的模型圖,其中常用的有 7 種,包括類圖、序列圖、組件圖、部署圖、用例圖、狀態圖和活動圖。JVA28資訊網——每日最新資訊28at.com

在需求分析階段,使用用例圖和領域模型圖描述用戶需求和業務場景。在架構設計階段,使用組件圖和部署圖描述軟件系統的組成部分和部署情況。在詳細設計階段,使用類圖、序列圖和狀態圖描述軟件系統的實現細節。JVA28資訊網——每日最新資訊28at.com

下面我們將探討如何繪制這 7 種模型圖,以及如何在不同階段使用這些模型來生成相應的設計文檔。JVA28資訊網——每日最新資訊28at.com

類圖

類圖是軟件設計中使用最廣泛的 UML 圖形之一,用來描述類的特性以及類之間的靜態關系。在一個類圖中,每個類都由三個部分組成:類名、屬性列表和方法列表。JVA28資訊網——每日最新資訊28at.com

除了描述類的基本特征,類圖還用來表示類之間的關系,其中包括六種靜態關系:JVA28資訊網——每日最新資訊28at.com

  1. 關聯(Association):表示一個類對象與另一個類對象之間的關系,比如訂單與客戶之間的關系。
  2. 依賴(Dependency):表示一個類對另一個類的使用或調用,比如客戶下訂單時需要使用訂單類。
  3. 組合(Composition):表示一種包含關系,表示一個類對象包含另一個類對象,比如一個訂單包含多個商品。
  4. 聚合(Aggregation):也表示一種包含關系,但是聚合關系中包含的類對象可以被多個類共享,比如一個學校包含多個班級。
  5. 繼承(Inheritance):表示一個類繼承自另一個類,可以從父類中繼承屬性和方法,并且可以添加新的屬性和方法。
  6. 泛化(Generalization):與繼承關系相似,但泛化關系可以用來表示更抽象的關系,比如多個類都實現了一個接口。

通過繪制類圖,我們可以清晰地描述一個軟件系統中的類及其之間的關系,幫助開發人員更好地理解軟件系統的結構和功能。JVA28資訊網——每日最新資訊28at.com

在UML工具中把相關的一組類及其關系用一張圖畫出來,就是類圖。JVA28資訊網——每日最新資訊28at.com

圖片圖片JVA28資訊網——每日最新資訊28at.com

如上圖所示,描述的就是一個典型的責任鏈模式的實現類圖。JVA28資訊網——每日最新資訊28at.com

類圖主要是在 詳細設計 階段畫,一旦類圖設計完成,開發工程師可以根據類圖來實現代碼。只要類方法的邏輯不是太復雜,不同工程師實現的代碼幾乎是一樣的,這有利于保證軟件的規范和統一性。在實際應用中,通常不需要畫出所有類的類圖,只需要畫出核心、代表性、技術難度較高的類圖即可。JVA28資訊網——每日最新資訊28at.com

圖片圖片JVA28資訊網——每日最新資訊28at.com

除了在詳細設計階段繪制類圖外,還可以在需求分析階段使用類圖來表示關鍵領域模型對象。在這個階段中,我們不要將注意力集中在屬性或行為上,而應該專注于識別領域對象及其之間的關系。因此,可以使用簡化的類圖來描述,只需要繪制類的名稱和它們之間的關系即可。JVA28資訊網——每日最新資訊28at.com

如上所示描述的是在需求分析階段挖掘出SIM卡、運營商、手機、手機廠商等模型對象之間的關系。JVA28資訊網——每日最新資訊28at.com

序列圖

類圖之外,另一種常用的圖形是序列圖。JVA28資訊網——每日最新資訊28at.com

類圖描述類之間的靜態關系,而序列圖用于描述參與者之間的動態調用關系。每個參與者都有一條垂直向下的生命線,該生命線用虛線表示。參與者之間的消息按照從上到下的順序表示它們的調用順序關系,這就是序列圖這個詞的來源。每個生命線都有一個激活條,它是圖中的細長矩形條,只有在參與者活動時才是激活的。JVA28資訊網——每日最新資訊28at.com

圖片圖片JVA28資訊網——每日最新資訊28at.com

通常使用序列圖表示對象之間的交互,這些對象可以是類對象,也可以是更大的參與者,如組件、服務器、子系統等。總之,只要涉及到不同參與者之間的交互,都可以使用序列圖,比如下面這張圖就是業務分析階段,系統建設后完成后的業務流程。JVA28資訊網——每日最新資訊28at.com

圖片圖片JVA28資訊網——每日最新資訊28at.com

記住,在軟件設計的不同階段都可以使用序列圖。JVA28資訊網——每日最新資訊28at.com

組件圖

組件是比類更大粒度的設計元素,通常一個組件中包含多個類。組件圖有時與包圖的用途相似,通常用于描述物理組件,如JAR、DLL等。在實踐中,我們更多地使用組件圖進行模塊設計。JVA28資訊網——每日最新資訊28at.com

圖片圖片JVA28資訊網——每日最新資訊28at.com

組件圖描述組件之間的靜態關系,主要是依賴關系。如果想要描述組件之間的動態調用關系,可以使用組件序列圖,以組件作為參與者,描述組件之間的消息調用關系。JVA28資訊網——每日最新資訊28at.com

由于組件的粒度較大,通常用于描述和設計軟件的模塊及其之間的關系。因此,在設計的早期階段就需要畫出組件圖,一般用于架構設計階段。JVA28資訊網——每日最新資訊28at.com

部署圖

部署圖描述的是軟件系統最終的物理部署情況,包括需要部署的服務器數量、關鍵組件的部署位置等。它是軟件系統最終呈現的物理藍圖,能夠讓客戶、老板和工程師清晰地了解系統的最終運行狀態,以及與現有系統和第三方服務器的關系。通過部署圖,可以預估服務器和第三方軟件的采購成本。JVA28資訊網——每日最新資訊28at.com

因此,部署圖是整個軟件設計模型中相當宏觀的一種圖,需要在設計早期就繪制。各方可以根據部署圖討論是否認可該方案,只有對部署圖達成共識,才能繼續后面的細節設計。部署圖主要用于架構設計階段,并且與組件圖要彼此呼應。JVA28資訊網——每日最新資訊28at.com

圖片圖片JVA28資訊網——每日最新資訊28at.com

用例圖

用例圖分為業務用例和系統用例,業務用例圖主要體現在 業務分析階段, 描述一個承建系統的組織對外提供的能力,系統用例體現在需求分析階段描述系統對外提供的能力。JVA28資訊網——每日最新資訊28at.com

圖片圖片JVA28資訊網——每日最新資訊28at.com

這張圖中,左邊是業務用例圖,右邊是系統用例圖。雖然它們的畫法相似,但它們本質上有很大的區別,具體可以查看我之前寫的這篇文章。JVA28資訊網——每日最新資訊28at.com

圖中的人形元素稱為角色,角色可以是人也可以是其他系統。由于系統的功能可能很復雜,用例圖可能僅包含其中的一小部分功能,這些功能被畫在一個矩形框內,這個矩形框是用例邊界。矩形框里面的橢圓表示單個功能,它們可以相互依賴或需要擴展。因為用例圖中的功能描述相對簡單,所以通常需要配以文字說明以形成需求文檔。JVA28資訊網——每日最新資訊28at.com

狀態圖

狀態圖用來展現單個對象生命周期中的狀態變遷。JVA28資訊網——每日最新資訊28at.com

在業務系統中,許多重要的領域對象都有相當復雜的狀態變化,比如訂單,它們可以有待付款、待審核、待發貨、待收貨、交易關閉和交易完成等各種狀態。JVA28資訊網——每日最新資訊28at.com

這些狀態變化可以在用例圖中用文本形式描述,并隨著各個用戶的不同操作而改變。但是,使用這種方法描述狀態時,狀態會分散到不同的地方,這樣可能會導致開發錯誤以及產品經理在設計時的困惑。JVA28資訊網——每日最新資訊28at.com

采用UML狀態圖可以有效地解決這些問題,因為它可以在一張圖表中展示對象的整個生命周期以及各個狀態和變遷之間的關系。比如下面的圖表展示了一個訂單從創建到交易完成的狀態變化。JVA28資訊網——每日最新資訊28at.com

圖片圖片JVA28資訊網——每日最新資訊28at.com

狀態圖要在需求分析階段畫,描述狀態變遷的邏輯關系,在詳細設計階段也要畫,這個時候,狀態要用枚舉值表示,以指導具體的開發。JVA28資訊網——每日最新資訊28at.com

活動圖

活動圖常用于描述系統或業務流程中的動態行為。它可以清晰地展現從一個活動到另一個活動的控制流,描繪出系統或業務流程的邏輯和流程,讓開發人員更好地了解整個系統的運作方式。JVA28資訊網——每日最新資訊28at.com

在活動圖中,實心圓表示流程的開始,空心圓表示流程的結束,圓角矩形表示活動,菱形表示分支判斷。這些符號的使用能夠使活動圖更加規范化和可讀性,有助于提高系統開發的效率和質量。JVA28資訊網——每日最新資訊28at.com

圖片圖片JVA28資訊網——每日最新資訊28at.com

此外,活動圖引入了一個重要的概念——泳道。活動圖可以根據活動的范圍,將活動根據領域、系統和角色等劃分到不同的泳道中,使流程邊界更加清晰。JVA28資訊網——每日最新資訊28at.com

流程圖也比較有普適性,可以在需求分析階段描述業務流程,也可以在架構設計階段描述子系統和組件的交互,還可以在詳細設計階段描述一個類方法內部的計算流程。JVA28資訊網——每日最新資訊28at.com

使用合適的 UML 模型構建一個設計文檔

UML 模型圖本身并不難掌握,但如何在正確的場合下用適當的 UML 模型表達設計意圖,形成一套清晰且詳細的軟件模型,并在團隊內外達成共識的設計文檔則需要注意。JVA28資訊網——每日最新資訊28at.com

根據軟件設計不同階段的需要,我們可以使用不同的模型圖進行建模。JVA28資訊網——每日最新資訊28at.com

在需求分析階段,我們可以使用用例圖、活動圖、時序圖和簡化的類圖進行領域模型抽象和關系描述。JVA28資訊網——每日最新資訊28at.com

在架構設計階段,通過組件圖、組件時序圖和部署圖描述系統物理藍圖和模塊關系。JVA28資訊網——每日最新資訊28at.com

在詳細設計階段,主要側重于類圖和類的時序圖,而對于復雜的方法邏輯,可以使用方法的活動圖進行描述。JVA28資訊網——每日最新資訊28at.com

小結

掌握類圖、時序圖、組件圖、部署圖、用例圖、狀態圖、活動圖這七種UML模型圖,根據實際場景,在需求分析、架構設計和詳細設計階段選擇并巧妙應用對應的模型圖,有助于有效地進行軟件建模和系統設計,成為一個掌控大局、指導技術團隊的優秀架構師。JVA28資訊網——每日最新資訊28at.com

要注意模型圖的規范和注釋,遵循命名規范,對模型元素進行命名,注釋模型元素的關系和屬性等,簡潔明了。此外,UML模型圖只是設計文檔的一部分,需要與其他文檔相結合,如需求文檔、設計文檔、測試文檔等,形成一個完整的設計文檔,指導軟件開發。JVA28資訊網——每日最新資訊28at.com

對于畫UML的工具,有收費的專業軟件設計工具像EA(Enterprise Architect) 、Astah和億圖,以及免費的在線工具比如draw.io,processon等,建議可以根據自身需要選擇合適的工具,同時也建議從簡單易用的工具入手。JVA28資訊網——每日最新資訊28at.com

本文鏈接:http://m.www897cc.com/showinfo-26-80878-0.html這七種UML圖的畫法,每個程序員都應該掌握!

聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。郵件:2376512515@qq.com

上一篇: .NET字符串內存管理:常量字符串、動態創建和字符串池的巧妙結合

下一篇: Spring創建AOP代理并非只有@Aspect一種方式

標簽:
  • 熱門焦點
Top 日韩成人免费在线_国产成人一二_精品国产免费人成电影在线观..._日本一区二区三区久久久久久久久不
裸体一区二区三区| 久久国产精品99国产精| 日韩一级在线| 亚洲视频在线一区| 欧美夜福利tv在线| 老牛国产精品一区的观看方式| 另类专区欧美制服同性| 欧美另类99xxxxx| 国产精品久久久久久久久久直播| 国产日韩精品入口| 在线精品视频一区二区| 夜夜精品视频一区二区| 久久se精品一区精品二区| 裸体一区二区| 国产精品毛片高清在线完整版| 狠狠色丁香婷婷综合影院| 欧美精品在线一区二区| 国产精品国产自产拍高清av王其| 国产一区二区三区最好精华液| 亚洲精品一区二区三区在线观看| 亚洲欧美日韩另类精品一区二区三区| 久久日韩粉嫩一区二区三区 | 欧美精品www| 国产欧美日本| 亚洲精品小视频在线观看| 香蕉久久夜色精品国产| 欧美精品三级| 国产综合精品| 中日韩午夜理伦电影免费| 久久久一区二区| 国产精品高潮呻吟视频| 在线播放豆国产99亚洲| 亚洲一区黄色| 欧美激情一区二区三区蜜桃视频| 国产精品永久免费| 亚洲三级色网| 久久久久久久久久久一区| 欧美三级视频在线观看| 在线日韩中文字幕| 羞羞色国产精品| 欧美午夜大胆人体| 亚洲国产精品成人精品| 午夜精品视频| 欧美婷婷在线| 日韩亚洲欧美中文三级| 久久婷婷综合激情| 国产色产综合产在线视频| 一区二区免费看| 欧美成人精品激情在线观看 | 国产日韩欧美在线观看| 一区二区欧美国产| 欧美国产激情二区三区| 加勒比av一区二区| 性色av一区二区三区红粉影视| 欧美剧在线免费观看网站| 狠狠噜噜久久| 久久久久久国产精品mv| 国产色综合天天综合网| 午夜精品免费视频| 欧美午夜a级限制福利片| 亚洲精品中文在线| 麻豆精品一区二区综合av| 国产午夜一区二区三区| 亚洲欧美日韩高清| 欧美午夜不卡在线观看免费 | 99av国产精品欲麻豆| 欧美mv日韩mv国产网站app| 在线国产日韩| 久久综合国产精品| 激情一区二区| 久久亚洲高清| 在线观看91精品国产入口| 久久成人资源| 国产一区香蕉久久| 久久国产一区| 国内精品久久久久久影视8| 欧美在线啊v| 国产午夜精品久久久久久免费视| 亚洲欧美日韩精品在线| 国产精品亚洲精品| 欧美在线播放一区二区| 国产视频在线观看一区二区| 香蕉成人久久| 国产亚洲午夜| 久久乐国产精品| 美女日韩欧美| 精品成人久久| 久久一区欧美| 亚洲国产精品一区二区www| 免费观看一区| 亚洲日本一区二区三区| 欧美另类videos死尸| 一本色道久久88亚洲综合88| 欧美视频网站| 午夜在线不卡| 国内成人在线| 男人的天堂亚洲| 亚洲毛片av| 欧美视频一区二区三区在线观看 | 久久精品视频免费| 激情综合亚洲| 欧美高清免费| 中日韩视频在线观看| 国产精品男人爽免费视频1| 欧美一区成人| 伊人久久av导航| 欧美日本韩国在线| 亚洲图片欧美日产| 国产日本精品| 麻豆国产精品va在线观看不卡 | 久久天天躁夜夜躁狠狠躁2022 | 国产精品网曝门| 久久精品99国产精品| 亚洲黑丝一区二区| 欧美性做爰猛烈叫床潮| 午夜在线观看免费一区| 伊人久久综合| 欧美日韩一区二区三区在线 | 亚洲免费在线电影| 国自产拍偷拍福利精品免费一| 美日韩精品视频| 亚洲最新视频在线| 国产深夜精品| 欧美国产先锋| 亚洲欧美在线看| 亚洲观看高清完整版在线观看| 欧美日韩一区二区免费视频| 欧美在线不卡| 伊人久久综合97精品| 欧美精品一区二区三| 午夜精品视频在线观看一区二区| 尤物在线观看一区| 欧美四级在线观看| 久久久久五月天| 在线视频精品| 在线成人激情黄色| 国产精品国产三级国产普通话三级 | 国产午夜精品理论片a级探花| 欧美v日韩v国产v| 亚洲欧美日本伦理| 亚洲精品日产精品乱码不卡| 国产精品一区二区三区观看| 男女av一区三区二区色多| 亚洲欧美国产一区二区三区| 1000部精品久久久久久久久| 国产精品视频第一区| 欧美电影电视剧在线观看| 欧美亚洲免费电影| 亚洲精品美女在线观看| 国产一区二区三区在线免费观看| 欧美日本高清一区| 久久综合中文色婷婷| 亚洲免费中文| 亚洲另类在线视频| 经典三级久久| 国产精品专区h在线观看| 一区二区三区欧美| 一区在线免费| 国产欧美日韩激情| 欧美日韩一区二区三区四区在线观看 | 牛人盗摄一区二区三区视频| 欧美一区二区女人| 一区二区三区 在线观看视| 亚洲成在人线av| 国产人成精品一区二区三| 欧美日韩国产综合一区二区| 久热精品视频在线观看| 欧美亚洲一区| 亚洲午夜电影在线观看| 亚洲精品欧美极品| 在线日韩av片| 红桃视频欧美| 国产精品视频观看| 欧美激情一区二区三区高清视频 | 欧美aⅴ99久久黑人专区| 久久久久久久91| 亚洲欧美美女| 亚洲视频日本| 9i看片成人免费高清| 亚洲黄色视屏| 亚洲国产精品久久久久秋霞蜜臀| 国内成+人亚洲+欧美+综合在线| 国产精品一区二区黑丝| 国产精品成人久久久久| 欧美日韩国产成人高清视频| 欧美成人精品h版在线观看| 麻豆成人av| 久久这里有精品15一区二区三区| 久久成人一区二区| 欧美一区=区| 午夜宅男久久久| 性感少妇一区| 欧美一级精品大片| 欧美一区二区在线播放| 欧美一区二区久久久| 亚洲欧美综合v| 性做久久久久久| 欧美一区国产一区| 欧美专区在线观看| 久久精品国产一区二区三区| 久久av在线| 鲁大师成人一区二区三区| 美女诱惑黄网站一区| 欧美成人四级电影|