IT 架構必須掌握的 7 種軟件模型

官方網站 www.itilzj.com 文檔資料: wenku.itilzj.com

類圖

  

  類圖是最常見的 UML 圖形,用來描述類的特性和類之間的靜態關係,一個類包含三個部分,類的名稱,類的屬性列表,類的方法列表之間有 6 種靜態關係關聯,關聯,依賴,聚合,組合,繼承,泛化,而相關的一組類及其關係,用一張圖畫出來就是類圖,類圖主要是在詳細設計階段化,如果內圖已經設計出來了,那麼開發工程師只需要按照內圖實現代碼就可以了,只要類的方法邏輯不是太複雜,不同的工程是實現出來的代碼幾乎是一樣的,從而保證軟件的規範統一。

  實踐中通常不需要把一個軟件所有的類都畫出來,把核心的有代表性的,有一定技術難度的內畫出來,一般就可以了,除了在詳細設計階段畫類圖,在需求分析階段,也可以將關鍵的領域模型對象圖,用例圖畫出來,這個階段,關注的是領域對象的識別及其關係,所以通常用簡化的類圖來描述。

序列圖

  

  序列圖描述類之間的關係,描述參與者自己的動態調用關係,每個參與者有一條垂直向下的生命線,用虛線表示,而參與者之間的消息,也從上到下表示其調用的前後順序關係。

  每個生命線都有個結果,只有在參與者活動的時候纔是激活的,序列圖通常用於描述對象之間的交互,這個對象可以是類對象,也可以是更大粒度的參與者,比如組件,比如服務器,比如子系統。總之,只要描述不同參與者之間的交互的,都可以使用序列圖,也就是說,在軟件設計的各個階段,都可以畫序列圖。

組件圖

  

  組件是更大粒度的設計元素,一個組件中通常包含多個類,組件圖有時候和包的用途比較接近,組件可以描述邏輯上的組件,也可以描述物理上的組件,比如一個 JAR,一個 DLL 的,因此組件圖更靈活一點,實踐中,用組件圖而不是包圖進行模塊設計更常見一些。

  組件圖描述中間之間的靜態關係,主要是依賴關係,如果想要描述組件之間的動態調用關係,可以使用組件序列圖,以組建作爲參與者,描述組件之間的消息調用關係,因爲組件的力度比較粗,通常用於描述設計軟件的模塊及其之間的關係,需要在設計早期階段就畫出來。

部署圖

  

  他是描述軟件系統的最終部署情況,需要部署多少臺服務器?關鍵組件都部署在哪些服務器上?部署圖呈現的是系統最終物理呈現的藍圖。

  因此,部署圖是整個軟件設計模型中比較宏觀的一張圖,在設計早期就需要畫的一張模型圖。根據部署,各方可以討論是否對這個方案認可,只有對部署圖達成共識,才能夠繼續後面的細節設計,部署圖主要用在概要設計階段。

用例圖

  

  主要在需求分析階段,通過反映用戶和軟件系統之間的交互,描述軟件的功能需求,圖中小人物被稱爲角色,角色可以是人,也可以是其他的系統,系統的功能可能會很複雜,所以一個用例圖,可能只包含其中一小部分功能,這些功能被一個巨型框框起來,這個巨型框被稱爲用力的邊界,框裏的橢圓,表示一個一個的功能,功能之間可以調用依賴,也可以進行功能擴展,因爲用例圖中功能描述比較簡單,通常還需要對用例圖配以文字說明,形成需求文檔。

狀態圖

  

  用來展示單個對象生命週期的狀態變更,業務系統中,很多重要的領域對象對於比較複雜的狀態變遷,比如賬號,有創業狀態,激活狀態,凍結狀態,欠費狀態等等各種狀態,因此,用戶訂單商品紅包這些常見的領域模型,都有多種狀態,這些狀態的變遷描述,可以在用例圖中用文字描述,隨着角色的各種操作而改變,但是這種描述方式,狀態散落在各處,做開發的時候容易搞錯,就是產品經理自己在設計的時候,也容易搞錯對象的狀態變遷,狀態圖可以很好的解決這一問題。

  一張狀態圖描述一個對象生命週期的各種狀態及其變遷的關係。

活動圖

  

  主要用來描述過程邏輯,業務流程。UML 中沒有流程圖,很多時候人們用活動圖代替流程圖,活動圖和早期流程圖的圖形元素也很接近.

  實心圓代表流程開始,空心圓代表流程結束,圓角矩形表示活動,菱形表示分支判斷,此外,引入了一個重要的概念,泳道。可以根據活動的範圍,將活動根據領域,系統角色的,劃分到不同的泳道中,使流程邊界更加清晰明瞭。

總結

  模型圖本身並不複雜,幾分鐘的時間就可以學習一個模型圖的畫法。難的是如何在合適的場合下用正確的 UML 模型,表達自己的設計意圖,從而形成一套完整的軟件模型,進而組織起一個言之有物,層次分明,可以指導開發,在團隊內部達成共識的設計文檔。

  我們從軟件設計的不同階段這一維度重新梳理一下,如何使用正確的模型進行軟件建模。

需求分析

  在需求分析階段,主要是通過用例圖描述系統的功能與使用場景;對於關鍵的業務流程,可以通過活動圖描述。如果在需求階段,就提出要和現有的某些子系統整合,可以通過時序圖,描述新系統和原來的子系統的調用關係。

  核心領域對象,可以通過簡化的類圖進行模型領域抽象,並描述核心領域對象之間的關係。

  如果某些對象內部有複雜的狀態變化,比如用戶,訂單這些,可以用狀態圖進行描述。

概要設計

  在概要設計階段,通過部署圖,描述系統最終的物理藍圖,通過組件圖以及組件時序圖,設計軟件主要模塊及其關係,還可以通過組建活動圖,描述組件之間的流程邏輯。

詳細設計

  在詳細設計階段,主要輸出的就是類圖和類的時序圖,直到最終的代碼開發,如果某個類方法內部,有比較複雜的邏輯,那麼可以畫方法的活動圖進行描述,UML 的工具可以是很複雜的,收費的,比如 EA 這樣的大型軟件工具。也可以使用 processon 在線的免費的工具。對於一般的開發者,建議從簡單的用起,因爲那個建模可以很複雜,也可以很簡單,簡單掌握類圖,時序圖,組件圖,部署圖,用例圖,狀態圖,活動圖。在 7 種模型圖,靈活的在需求分析,概要設計詳細設計階段,根據場景的不同,繪製對應的模型圖,可以實實在在的做好軟件建模,搞好系統設計,作爲一個掌控局面,引領技術團隊的架構師。

本文由 Readfog 進行 AMP 轉碼,版權歸原作者所有。
來源https://mp.weixin.qq.com/s/tqQdxPR9zKmOYUupNSsm6A