軟體架構設計 擴充套件 架構特性目標

2021-08-25 21:09:05 字數 1322 閱讀 1608

建築設計通過近千年的發展在

19世紀終於確立了建築架構設計專業化理論體系,軟體行業從起步至今僅幾十年,還是乙個非常新興的行業,如果說軟體架構設計已經形成了一套放置四海皆準的專業化理論似乎還為時過早,現在關於架構設計、設計模式等方面的書籍很多,這些在都可以理解為軟體行業人員不斷嘗試、不斷總結的過程,通過對這些內容的研究,雖不能解決所有問題,但至少可以在乙個或者多個側面豐富我們的知識體系,讓系統架構人員作出的設計更加貼近軟體目標。 由於

軟體架構設計的理論和方**體系的不完善,讓我們在軟體設計和開發過程中遇到許許多多阻礙,但也正是它的不確定性,給我們這個時代的程式設計師、架構設計人員很大的想象和發揮空間。

軟體架構設計的定義很抽象,每個人都可能有自己的不同理解,在這裡,分享一些我的粗淺理解。

在目前我們做的軟體架構設計中,高可用、高可靠、高效能、高度抽象、高安全、高可擴充套件等充斥在我們的架構設計文件中。個人理解造成這種現象主要有兩個原因:

1.大家都是這麼寫的;

2.為了顯示軟體系統的架構設計水平很高。如果在你的架構設計中也是這樣描述的,我們是否應該認真思考一下,系統真的可以達到這些目標嗎?我們在設計中是否真的為這些架構所要達到的特性的保障方式及代價進行了認真的思考?我想,如果真的做了以上思考,我們會愧疚的把這些特性從我們的設計中拿掉。

不可能有乙個完美的系統(至少目前是這樣)同時滿足高可用、高可靠、高效能、高度抽象、高安全、高可擴充套件等所有的特性,軟體架構設計通常都是在有效平衡軟體目標(使用者需求或者市場定位)與技術特性的產物,如果在設計之初完全不考慮軟體目標,僅從技術上完美的表達,看到設計文件中充斥著完美的軟體特性描述也就不足為奇了。因此,在設計之初,定位系統的架構設計目標及其的重要,如果想做的是乙個開發基礎平台,我們可能更多考慮的是高效能、高度抽象以及高可擴充套件性等特性,而高可用、高可靠、高安全等可能就顯得沒那麼重要了。如果我們軟體系統是銀行業的支付系統,我們可能更多考慮的是高可靠、高安全等特性。因此,

在軟體架構設計之初,確定軟體架構的特性目標是極其重要的

,這需要綜合分析軟體目標,投入產出比(權衡資源投入與特性所帶來的軟體價值)等內容。這是軟體架構師最重要的工作之一,

不要試圖設計完美的系統

,這只會導致最終只是讓我們的設計文件中充斥著完美的軟體特性表達,讓開發人員無所適從。

制訂了系統技術架構設計目標特性後,如果只是在文件上,那也毫無意義的,它應當是整個系統技術架構設計的核心,包括後續的任何技術決策都緊緊圍繞目標開展,例如,如果我們設計的架構特性目標是高效能,那高效能的目標應當貫徹到編碼、測試等各個環節中,如果出現需要滿足高效能可能會損失其他方面的特性的矛盾時,毫不猶豫的選擇滿足高效能(例如高安全性與高效能衝突時)。這看上去似乎讓我們的系統不盡完美,但如果和軟體目標相結合,這樣的決策會讓我們的終端使用者擁有最完美的體驗。

軟體架構設計 架構師筆記,軟體架構設計

架構設計是分與合的藝術 通讀並總結了溫昱老師的 軟體架構設計 並有幸聽過李哲珠博士對架構設計的講解。對其讀後的自我領悟並提煉出核心內容分享出來,希望從思想高度上能提公升你對軟體架構設計的認知。架構設計 架構設計不等於框架設計,框架也可能有架構,所有的原子元件 被拆分的模組 都需要架構設計,所有元件可...

軟體架構設計

首先我們應該了解什麼是軟體架構設計?架構大體分為以下幾種 邏輯架構 模組劃分 介面定義 領域模型 開發架構 技術選型 檔案劃分 編譯關係 物理架構 硬體分布 軟體部署 方案優化 執行架構 技術選型 控制流劃分 同步關係 資料架構 技術選型 儲存格式 資料分布 程式設計師向架構師轉型的關鍵突破 學會系...

軟體架構設計

在嵌入式軟體開發的專案中,很少見到有專案架構師這一工作職稱,但是大型專案的總是會有架構師一說。1 為什麼嵌入式開發很少會出現架構師這一職責。嵌入式開發的專案,一般有兩種模式 一類是 完全由開發人員自己設計 排除庫函式 另一類是基於固有的作業系統進行開發。前者一般都是針對特定應用,所有 的規模不會很大...