1. 程式人生 > >【轉】軟件架構設計-五視圖方法論

【轉】軟件架構設計-五視圖方法論

存儲 文檔 ieee 不同 配置 網站 源文件 sha 領域

1.每個人都可以做成為架構設計師

不懂軟件的和剛入行的人們一聽到架構設計,都認為是非常的高大上課題,是一個遙不可及的領域,一般人是不能做的。聽起來雲裏霧裏的,第一印象除了來自微軟,阿裏這些NB的公司裏面的人其余的都不能做出架構似的,這是一種先入為主的思想,因為大家都在強調架構師的重要性,他的薪資有多麽的高,在整個社會對他的認定導致很多人對架構設計望而生畏。放正自己的心態其實架構設計並沒有多麽的復雜。我們是從編碼入行的,在編碼實現功能的過程中我們或多或少的設計了屬於自己的軟件架構了。

為什麽說軟件架構師需要多少年的工作經驗,因為軟件架構就是系統的草圖,不僅是代


碼編寫而且包括部署,運行、開發等這些方面進行設計,目的是為了保證軟件開發、運行、擴展、性能、安全、伸縮等等質量的一個保證。只要在編碼過程中不僅僅要提升編碼的質量而且要留心其他方面的知識積累與學習,用不了多久你也能成為一位優秀的架構設計師。

2.什麽是架構設計

我們要成為架構設計師我們需要了解什麽是架構設計。簡單一點,架構設計就是一個系統的草圖,描述了構成系統的抽象組件,以及各個組件之間的是如何進行通訊的,這些組件在實現過程中可以被細化為實際的組件比如類或者對象。在面向對象領域中,組件之間的聯通通常面向於接口實現的。

在“軟件架構簡介”中David Garlan 和Mary Shaw 認為軟件架構師有關如下問題進行設計的:“計算的算法和數據結構之外,設計並確定系統整體結構,結構問題包括總體組織結構和全局控制結構;通信、同步和數據訪問的協議;設計元素功能分配;物理分布;設計元素的組成;定標與性能;備選設計的選擇。”

架構和結構會難以區分,明確一點架構不是結構,IEEE把架構定義為“系統在其環境中的最高層概念”架構還包括系統完整性、經濟約束條件、審美需求和樣式等。在Rational Unified Process 中對軟件架構的解釋:軟件架構指系統重要構建的組織或結構,這些重要的構建通過接口與其他構建進行交互。

總體來說軟件架構對軟件從整體到部分的描述,從開發到運行再到後期擴展的描述,從性能和安全可靠性進行描述。

3.架構設計為了解決什麽問題

開發之初邏輯設計階段要確定系統如何開發,整個系統融合為一個系統開發還是從業務角度將系統拆分為幾個獨立的子系統。

在即將進入開發的時候關註了數據是如何持久化的,以及數據庫選型、以及非數據庫文件的存儲格式,等這些存儲方案的確定。

在開發過程中我們要關註如何保證開發質量,如何分層,代碼可擴展性,使用的設計模式,依賴了那些框架,開發語言這些方向的確定。

開發完成之後進入運行階段,如何在架構設計的時候保證運行期間的質量屬性、性能、可伸展性等,主要是系統運行進程的劃分,以及進程之間通過線程來通信。

同時如果系統並非是單機運行,還需考慮系統的物理部署,系統部署在那個服務器上,這些服務器配置性能怎樣能否勝任系統的運行,操作系統選型,以及系統部署的網絡拓撲圖,還有就是保證數據安全的數據備份怎樣設計的。

以上五個問題是從五個角度來確定架構以及架構設計需要解決的問題。

4.架構設計的五視圖法

我們剛才從五個不同的角度知道架構設計需要解決的問題,那麽使用五視圖法就更加系統的分析設計我們架構了

技術分享

技術分享

從這幅圖裏面我們可以看出架構設計五視圖中各個角度需要解決的問題了,並且可以看出他們之間的聯系了。

5.後期如何使用使用架構設計

無論多麽好的架構如果只是為了設計完成任務都是毫無意義的,我們設計出來的架構無論是好或不好我們首先需要按照架構設計來完成系統的開發,作為項目的Leader就需要嚴格按照架構設計出來的標準進行檢查,無論我們的開發模式敏不敏捷,到一定時間都有一個裏程碑的階段,到了這個階段Leader牽頭嚴格按照架構設計文檔中相應的章節對開發出來的系統進行檢查,及早發現問題及早解決,不要把問題向後面推。

1)物理架構

物理架構的目的是確定物理節點和物理節點的拓撲結構;其中物理節點包括服務器、PC機、專用機、軟件安裝部署燒寫以及系統軟件的選型;拓撲結構明確物理節點的關系。

2)運行架構
運行架構的目的是確定控制流和控制流的組織;其中控制流包括進程、線程、服務程序;控制流組織包括系統的啟動與停機、控制流通訊、同步與加鎖。

3)開發架構
開發架構的目的是確定程序單元以及程序單元的組織結構;其中程序單元包括源文件、配置文件、程序庫、框架、目標單元;程序單元組織包括project劃分、project目錄結構、編譯依賴關系。

4)邏輯架構
邏輯架構的目的是職責的劃分,並明確其與協作關系;其中職責的劃分註意邏輯的分層、子系統以及關鍵類的定義;協作的定義關註接口的定義與協作關系的明確。

5)數據模型
數據架構的目的是確定要存儲的數據以及存儲格式;其中存儲的數據可以是文件、關系數據庫、實時數據庫;存儲格式包括文件格式、數據庫圖表。

【轉】軟件架構設計-五視圖方法論