軟體架構設計通常會考慮業務功能(客戶需求)和非功能性需求(易用性、可靠性、移植性、效能、擴充套件等),容易忽略開發人員的自我感受。架構/框架解決不了所有問題,開發人員的主觀能動性極為重要。實際上軟體框架的使用者是開發人員而不是終端使用者,保證開發人員穩定性、積極性、好招聘是乙個框架的非功能性需求。
框架最終形態最好為:
1、提供了基礎框架(方便使用,規格一致)。定下系統基本基調,實現基本功能,考慮擴充套件和效能等非功能性問題。
2、不過度封裝(靈活,自主;不易受控)。不易受控是雙刃劍,可以發現/提公升開發人員能力(有潛質的開發人員)、可以降低產品質量,需要和產品管理結合起來解決此問題。
3、自動化機制(元資料,自動**生成,單元測試,併發測試等)。自動和智慧型是節省時間和保證質量的利器,可靠性方面計算機比人可靠。
4、配置和約定(配置和約定並存,細節走約定、框架走配置)。配置可以解耦,依賴配置的系統擴充套件性比較好。大量配置會讓人不滿,開發人員介入的部分最好走約定。
5、使用主流技術(依賴其他框架並可低成本替換)。
如何把握度:哪些封裝哪些人為處理?
1、站在開發人員的角度思考,設身處地替別人著想是一種素質。開發人員注重自我成長、成就感、不愛受約束。
2、個性化少部分比較通用,框架處理;開發人員參與部分最靈活,需要區分可變性與不變性,不變性做成庫,可變性自由發揮。before_do/框架do/after_do方式對於大專案不好,容易限制個人發揮,也不利於擴充套件。
3、引入主流技術,讓開發人員接觸使用。使用主流技術/新技術是開發人員所注重的。在框架級別需要確保主流技術可框架級替換和細節級自動化替換,除了計算機,誰也不想做第二遍。
軟體架構設計
首先我們應該了解什麼是軟體架構設計?架構大體分為以下幾種 邏輯架構 模組劃分 介面定義 領域模型 開發架構 技術選型 檔案劃分 編譯關係 物理架構 硬體分布 軟體部署 方案優化 執行架構 技術選型 控制流劃分 同步關係 資料架構 技術選型 儲存格式 資料分布 程式設計師向架構師轉型的關鍵突破 學會系...
軟體架構設計
在嵌入式軟體開發的專案中,很少見到有專案架構師這一工作職稱,但是大型專案的總是會有架構師一說。1 為什麼嵌入式開發很少會出現架構師這一職責。嵌入式開發的專案,一般有兩種模式 一類是 完全由開發人員自己設計 排除庫函式 另一類是基於固有的作業系統進行開發。前者一般都是針對特定應用,所有 的規模不會很大...
軟體架構設計
本章考點主要集中在 基於構件的開發模型,架構風格,架構評估,架構與質量屬性,設計模式。縱觀軟體架構技術的發展過程,可以認為經歷了4個階段 無架構設計階段 以組合語言進行小規模應用程式開發為特徵 萌芽階段 出現了程式結構設計主題,以控制流圖和資料流圖構成軟體結構為特徵。初級階段 出現了從不同側面描述系...