如何進行成功的架構設計

2021-09-05 19:20:50 字數 1489 閱讀 3623

通過對架構進行的5種檢視的角度來看,乙個優秀的架構應該具有以下特點:

1.從開發角度,應該有良好的模組化,每個模組職責清晰,模組之間松耦合。模組內部高聚合。

2.從邏輯角度,適應了功能需求的變化,適應了技術的變化。

3.從執行角度,對系統的動態執行有良好的規劃,可以標識出哪些是主動模組,哪些是被動模組。

4.從資料角度,對資料進行了良好的規劃,不僅包括資料的持久化儲存方案,還可能包括資料傳遞、資料複製、資料同步等。

5.從物理角度,可以進行明確、靈活的部署規劃。

乙個成功的架構設計所需要的關鍵因素

1.是否遺漏了至關重要的非功能性需求。

客戶不僅關心功能的實現,更關心功能實現的好壞,5秒開啟乙個網頁和10秒開啟乙個網頁對客戶來說意義有時是完全不一樣的。很多專案甚至產品功能性的需求都實現了,最後卻栽倒在非功能性的需求上。

非功能性需求從**來?

來自使用者。例如效能、易用性。為使用者而設計,不僅要滿足使用者要求的功能,也有達到使用者期望的質量。

來自開發人員和維護人員。例如可擴充套件性、可重用性、可移植性。乙個拙劣的設計,會使開發和維護變成一場噩夢。

來自客戶組織。例如預算限制、上線時間。

非功能性需求分為質量屬性和約束兩種,質量屬性是軟體系統的整體質量品質,往往與大多數功能有關,例如易用性、效能、可伸縮性、持續可用性、魯棒性、安全性、可擴充套件性、可重用性、可移植性、易理解性、易測試性等。至於約束,要麼是架構設計中必須遵守的原則,例如一些硬體或者軟體的限制,要麼轉化為質量性需求或者功能需求。

2.能否適應頻繁的需求變更。

分離變化點。架構應該能夠支援業務功能在一定範圍內變化。

3.不同的檢視是否一致、同步。

架構師應該掌握趨於系統化的方法,在分而治之的大前提下,也要注意綜合考慮,注意各個檢視之間的同步。

4.架構是否及時得到驗證。

原型測試。

制定架構設計策略

1.全面認識需求。

2.關鍵需求決定架構。

3.多檢視探索。

4.盡早驗證。

全面認識需求

一方面,需求是應該分層的,同乙個專案,在客戶眼中和在開發人員眼中的意義完全是不一樣的。一般可以分為組織級(客戶)、使用者級(最後使用系統的人)和開發級。

另一方面,需求應該被分為不同的型別。包括功能性需求和非功能性需求,非功能性需求分為質量屬性和約束。

關鍵需求決定架構

架構師沒有必要對所有需求都深入了解,這是策略。

1.功能需求數量眾多,應該控制架構設計時需要詳細分析的用例的個數。

2.不同質量屬性之間往往是相互制約的,這時需要乙個權衡。

關鍵需求決定架構有利於集中精力深入分析最重要的需求。

多檢視探索架構

分而治之。這樣可以在每種檢視時專注系統的某一方面。

盡快驗證

一般有兩種驗證方式

1.原型方式。通過開發乙個垂直演進原型,來實現軟體架構。

2.框架方式。或者說框架 + 垂直拋棄原型。

參考文獻

《軟體架構設計》   溫昱

如何進行成功的架構設計

通過對架構進行的5種檢視的角度來看,乙個優秀的架構應該具有以下特點 1.從開發角度,應該有良好的模組化,每個模組職責清晰,模組之間松耦合。模組內部高聚合。2.從邏輯角度,適應了功能需求的變化,適應了技術的變化。3.從執行角度,對系統的動態執行有良好的規劃,可以標識出哪些是主動模組,哪些是被動模組。4...

如何進行軟體架構設計3 如何成為架構師

架構師是具有技術發言權,方向決策權,和團隊人員開發資源調配權的開發團隊的teamlear,也是這個程式的設計者,當然他是這個程式團隊的靈魂!因此,不想當teamleader的程式設計師,絕對不可能成為真正意義上的架構師!同時,不是teamleader的架構師,也是乙個被架空的,蒼白無力的架構師!架構...

大資料之訊息佇列 7 如何進行架構設計

1 面試題 如果讓你寫乙個訊息佇列,該如何進行架構設計啊?說一下你的思路 2 面試官心裡分析 其實聊到這個問題,一般面試官要考察兩塊 1 你有沒有對某乙個訊息佇列做過較為深入的原理的了解,或者從整體了解把握住乙個mq的架構原理 2 看看你的設計能力,給你乙個常見的系統,就是訊息佇列系統,看看你能不能...