1、構架由什麼決定?
軟件構件是技術、商業和社會因素共同作用的結果。
2、構架從哪裏來?
主要包括:
-
系統涉衆
- 管理者:成本低、人人都得幹活
- 營銷人員:特性突出、投放市場快,成本低、可與同類產品匹敵
- 終端用戶:行爲、性能、安全性、可靠性、易維護性
- 維護人員:可修改性強
- 客戶:成本低,及時交付、不要頻繁修改
-
開發組織
- 對現存構架的重用
- 對某個基礎設施進行長期的商業投資以實現某些戰略目標
- 開發組織本身的結構也會影響構架的形成
-
架構師的素質和經驗
構架師先前的一些經驗、教育、培訓以及所接觸到過的成功構架模式都會影響到他們對某種構架的選擇。 -
技術環境
- 代表某個時代的構架師的普遍素質和經驗
- 比如:在當今的技術環境下,如果構架師對信息系統的設計不考慮使用基於WEB的,面向對象的和支持中間件的方法是很難想象的
3、構架的反影響力
- 構架會影響開發組織結構
- 構架會影響開發組織的目標
- 構架會影響客戶對下一個系統的要求
- 構建系統的過程豐富了整個開發團隊的經驗,從而將影響設計師對後繼系統的設計
- 一些系統會影響並實際改變軟件工程的環境,也就是系統開發人員學習或實踐的技術環境
4、構架的含義
1、構架定義了軟件元素
- 構架必須省略各元素中與其交互無關的某些信息
- 接口 VS. 內部實現
2、系統可能而且確實由多個結構組成
- 其中任何一個結構並不能與構架等同
- 結構的多重性是理解軟件架構的關鍵
3、具有軟件的每個計算系統都有一個軟件構架
- 每個軟件系統都可以看成由若干個元素及其相互聯繫構成
- 系統構架VS.構架描述
4、如果某個元素的行爲可以從其他元素的角度觀察到,這個元素的行爲就是構架的內容
- 這種行爲使各元素的交互成爲可能,是構架的一部分
5、構架的存在與構架的優劣無關
5、構架的結構
1、舉例
-
在一套房子中,我們可以觀察到不同的結構
- 房間
- 電線
- 水管
- 通風
-
每一種結構都組成了關於房子的一個"視圖"
- 爲不同的人所使用
- 用來達到房子的某種質量屬性
- 用來描述房子,進行規劃
-
在軟件中也存在類似的情況,一個結構是構架的一份"視圖",構架在某個角度上的投影
2、三種主要的軟件結構類型
- 模塊結構
系統如何被劃分爲一些更小的代碼單元 - 組件-連接器結構
系統如何被劃分爲一組有動態行爲的元素(組件)和相互家戶的元素(連接器)? - 分配結構
系統如何映射到非軟件環境?