軟件的體系結構可以類比建築中的結構
建築:蓋房子需要磚瓦石頭,窗戶,門還需要水泥,釘子,螺絲,砌磚牆需要水泥將其粘合起來,安窗戶,門需要用釘子吧門窗固定到牆裏,顯然不能使用釘子將磚釘成牆,用水泥把窗戶糊在牆裏
構件={磚瓦石頭,窗戶,門};
連接件={水泥,釘子,螺絲};
約束={事物的普遍規律,比如牆需要水泥和磚砌,門窗需要釘子和螺絲固定在牆裏};
軟件體系結構=構件+連接件+約束
我眼中的:
構件:一些基本的構成元素
連接件:構件之間的連接關係,是粘合劑實現構件交互
約束:作用於這些要素或連接關係上的限制條件—— 一種規則或者規格
**軟件體系結構(架構):**可預製和可重構的軟件框架結構
**構件:**可預製和可重用的軟件元素,是組成體系結構的基本計算單元和數據存儲單元
**連接件:**可預製和可重用的軟件元素,是構件之間的連接單元
**約束:**構件和連接件之間的關係用約束來表示
構件的形式:
**基本實現形式:**對象。
**不同設計環境和運行環境:**控件、組件、庫、表、實體、包、設計模式、框架等。
**構件的表達形式:**對外部提供操作方法的集合,內部數據結構及其操作
構件分類:
**構成的概念層次:**基礎構件、中層構件、高層構件。
**應用:**通用構件、專用構件。
**功能:**數據服務構件、功能服務構件、邏輯/處理構件、界面構件、控制構件、連接構件、體系結構構件
**連接件:**實現構件與構件之間聯繫的特殊機制或特殊構件;如何聯繫的:
消息和信號的傳遞,功能和方法的請求或調用,數據的轉換和傳送,特定關系
**與普通構件的區別:**構成系統的時候的作用不同
一般構件是軟件功能設計和實現的承載體
連接件的種類:
-
ü操作/過程調用(caller和callee)
-
ü管道(reading和writing)
-
ü消息傳遞(sender和receiver)
-
ü事件廣播(事件發佈者角色和任意多個事件接收者角色)
連接件是負責完成構件之間信息交換和行爲聯繫的承載體
約束
反映了構件和連接件如何連接在一起的。例如
- 上層構件可要求下層構件的服務,反之不行;
- 兩對象不得遞歸地發消息;
- 代碼複製遷移的一致性約束;在何條件下此種連接無效等