在上篇文章《軟體架構設計之思想篇》中,Relax君通過蓋房子做了一個類比,聊到了在進行架構設計中我們該從哪些方面去考慮,文中提到了系統、子系統、層次結構、組件、模塊、介面和部署等等這樣一些抽象的字眼,那大家有沒有再深層次的考慮這樣的一個問題,就是我們如何將我們考慮的這些點展現出來呢?作為一名架構師,你設計的架構其實是要給很多人看的,包括公司領導、產品、開發、測試和運維,那麼你該如何把你設計的架構展示給別人呢? 這就是Relax君今天想跟大家聊的內容。大家還是不妨先花個兩三分鐘好好想一想這個問題。

相信很多小夥伴都已經知道了,答案就是圖。所以今天Relax君其實聊的主要就是架構設計中的那些圖。

架構設計理論上一般劃分五種視圖,即邏輯架構視圖、開發架構視圖、運行架構視圖、物理架構視圖和運行架構視圖。5種架構視圖的內容和關係可以看下面兩張圖:

從圖中可以看到,五種視圖涵蓋了邏輯層次劃分、介面定義、開發代碼組織結構、運行性能設計、運維部署以及數據存儲等方方面面。

在Relax君的實際架構設計工作中,邏輯架構視圖和物理架構視圖考慮得最多,開發架構視圖中的代碼組織結構,運行架構視圖的多線程高並發以及數據架構視圖中的數據持久化和存儲,主要是作為關鍵技術點進行分析的,這一點其實是跟所處行業有關。

除了上面的五種視圖以外,Relax君還想跟大家聊一下另外一種圖,就是UML圖,UML包含很多種圖,Relax君就不在這裡一一介紹了,Relax君只談一下自己實際工作中經常用到的五種UML圖---類圖、構件圖、部署圖、用例圖和序列圖

類圖主要是描述一個類的結構,類是面向對象一個概念,在c語言這種面向過程的語言中,其實也可以按模塊的不同功能使用類圖來描述這個模塊的.c文件和.h文件。

構件圖也可以叫組件圖,個人覺得跟上面5圖中的邏輯架構視圖有點像,主要就是描述系統可以劃分的邏輯層次,每個層次包含哪些組件以及子系統包含哪些邏輯層次等等這些內容。

部署圖其實跟上面5圖中的物理架構視圖有點像,描述的是系統的位置跟硬體形態。

用例圖描述的是系統的輸入活動以及系統的自身任務,比如用戶會對系統進行什麼樣的配置操作等等。

序列圖其實就是針對用例圖的輸入活動,系統中的各個組件針對這個輸入如何協同工作,相關組件的一個處理流程的描述。

好了,軟體架構設計中的那些圖,Relax君今天就聊到這兒,由於都是理論知識,所以可能不是很好理解,不過不要著急,理論是用於指導具體實踐的,所以後面Relax君會結合今天聊的這些理論知識來談一個具體的架構設計的案例,相信大家就能很好的理解了。

我是Relax君,一個專註於以輕鬆方式聊技術乾貨的公眾號---Relax聊技術,如果你喜歡這篇文章,請關注我的公眾號。

推薦閱讀:

相关文章