软件架构是什么
軟件架構是什么
概述
本文從不同角度闡述什么是軟件架構,軟件架構在做什么,在進行軟件架構設計時需要考慮哪些方面。
基本概念
開發
運行
部署
維護
在軟件系統所有方面中,維護所需要的成本是最高的。需求的變更,新功能的添加,以及系統缺陷這些工作將會占去大部分人力資源。
系統維護的主要成本,包括兩個方面:
- 新增功能:確定新增功能或修復問題的最佳位置。
- 風險成本:在進行系統代碼修改時,可能衍生出新的問題。
通過優良的架構設計,可以減少維護成本:
- 將系統切分成各個組件(模塊)。
- 使用穩定的接口把各個組件之間進行隔離。這樣讓各個組件之間保持正交性,各個組件之間解耦。
- 將未來需要添加新功能的添加方式明確出來,可以大大降低對系統其他部分造成的傷害的可能性。
如何提前考慮新功能的添加方式?
- 比如支持數據庫:可以編寫數據服務層,并設計成接口;當需要支持新的數據庫時,只需要按新的數據庫的驅動實現接口,其他模塊或業務上層代碼保持不變。
保持可選項:
- 讓軟件盡可能長時間地保留盡可能多的可選項。
- 所有的軟件系統,可以分解為:策略和細節;策略:軟件中的業務核心,它是系統真正價值所在;細節:是指操作該系統的人,其他系統與策略進行交互,但又不影響策略本身的行為。
- 軟件架構師的目標:創建一種系統形態,以策略為基本元素,并讓細節與策略脫離關系,允許在具體決策過程中,推遲或延遲與細節相關的內容。
- 比如:在開發早期,開發高層策略時,應該無須選擇數據庫系統,不用確定使用的web服務,不用確定是否使用REST接口。就是說:軟件的高層,與這些東西沒有關系。
設備無關:
- 不同硬件上都能直接部署,而且得到的結果是相同的。
- 這個原則,對軟件開發和部署非常重要。
參考書籍
- 《架構整潔之道》
總結
- 上一篇: 高中教资信息技术Flash动画软件分享
- 下一篇: Norton PartitionMagi