架構是系統運行時的高層抽象。數組
架構是系統設計的一部分。它突出了某些細節,並經過抽象省略掉另一些細節。因此,架構是設計的一個子集。關注實現系統組件的開發者可能不會特別關心全部組件如何裝配在一塊兒,而是關注少數組件的設計和開發,包括他們必須遵照的架構約束和能夠應用的規則。開發者和架構師面對的是系統設計的不一樣方面。架構
一、架構原則與特性架構設計
原則或特性 可以......設計
功能多樣性 ...提供「足夠好」的機制,利用簡潔的表達來處理各類問題接口
概念完整性 ...提供單一的、最優的、無冗餘的方式來表示一組相似問題的解決方案進程
修改獨立性 ...保持他的元素的獨立性,這樣就可以讓須要的修改最少,從而適應變化開發
自動傳播 ...經過在模塊間傳播數據或行爲,保持一致性和正確性基礎
可構建性 ...指導軟件進行一致、正確的構建軟件
增加適應性 ...考慮到可能的增加權限
熵增抵抗性 ...經過適應、限制和隔離變化的影響來保持有序
二、架構結構
結構 結構可以
模塊 ...將設計或實現決定隱藏在一個穩定的接口以後
依賴關係 ...按照一個模塊使用另外一個模塊的功能的方式來組織模塊
進程 ...封裝並隔離一個模塊的運行時狀態
數據訪問 ...隔離數據。設置數據訪問權限
三、架構設計的方法
Roy Thomas Fielding 在他的博士論文裏介紹了兩個架構設計的方法。
另外還有 RUP 的 4+1 的視圖方法。或者《軟件架構設計》上說的五視圖方法。