系統構架,是對已確定的需求的技術實現構架、作好規劃,運用成套、完整的工具,在規劃的步驟下去完成任務。中培偉業《詳細設計與系統架構最佳實踐》培訓專家曾老師在這里就系統架構的相關概念進行了詳細介紹。
1.模塊(module):一組完成指定功能的語句,包括:輸入、輸出、邏輯處理功能、內部信息、運行環境(與功能對應但不是一對一關系)。
2.組件(component):系統中相當重要的、幾乎是獨立的可替換部分,它在明確定義的構架環境中實現確切的功能。
3.模式(pattern):指經過驗證,至少適用于一種實用環境(更多時候是好幾種環境)的解決方案模板(用于結構和行為。在 UML 中:模式由參數化的協作來表示,但 UML 不直接對模式的其他方面(如使用結果列表、使用示例等,它們可由文本來表示)進行建模。存在各種范圍和抽象程度的模式,例如,構架模式、分析模式、設計模式和代碼模式或實施模式。模式將可以幫助我們抓住重點。構架也是存在模式的。
比如,對于系統結構設計,我們使用層模式;對于分布式系統,我們使用代理模式(通過使用代理來替代實際的對象,使程序能夠控制對該對象的訪問);對于交互系統,我們使用MVC(M模型(對象)/V視圖(輸出管理)/C控制器(輸入處理))模式。模式是針對特定問題的解,因此,我們也可以針對需求的特點采用相應的模式來設計構架。
4.構架模式(architectural pattern):表示軟件系統的基本結構組織方案。它提供了一組預定義的子系統、指定它們的職責,并且包括用于組織其間關系的規則和指導。
5.層(layer):對模型中同一抽象層次上的包進行分組的一種特定方式。通過分層,從邏輯上將子系統劃分成許多集合,而層間關系的形成要遵循一定的規則。通過分層,可以限制子系統間的依賴關系,使系統以更松散的方式耦合,從而更易于維護。(層是對構架的橫向劃分,分區是對構架的縱向劃分)。
6.系統分層的幾種常用方法:
1) 常用三層服務:用戶層、業務邏輯層、數據層;
2) 多層結構的技術組成模型:表現層、中間層、數據層;
3) 網絡系統常用三層結構:核心層、匯聚層和接入層;
4) RUP典型分層方法:應用層、專業業務層、中間件層、系統軟件層;
5) 基于Java的B/S模式系統結構:瀏覽器端、服務器端、請求接收層、請求處理層;
6) 某六層結構:功能層(用戶界面)、模塊層、組裝層(軟件總線)、服務層(數據處理)、數據層、核心層;
7) 構架(Architecture,愿意為建筑學設計和建筑物建造的藝術與科學): 在RUP中的定義:軟件系統的構架(在某一給定點)是指系統重要構件的組織或結構,這些重要構件通過接口與不斷減小的構件與接口所組成的構件進行交互;《軟件構架實踐》中的定義:某個軟件或者計算系統的軟件構架即組成該系統的一個或者多個結構,他們組成軟件的各個部分,形成這些組件的外部可見屬性及相互間的聯系;構架是系統在其所處環境中的最高層次的概念。軟件系統的構架是通過接口交互的重要構件(在特定時間點)的組織或結構,這些構件又由一些更小的構件和接口組成。(“構架”可以作為名詞,也可作為動詞,作為動詞的“構架”相當于“構架設計”)
8) 構架的描述方式:“4+1”視圖(用例視圖、設計視圖、實現視圖、過程視圖、配置視圖)是一個被廣為使用的構架描述的模型;RUP過程的構架描述模板在“4+1”視圖的基礎上增加了可選的數據視圖(從永久性數據存儲方面來對系統進行說明);HP公司的軟件描述模板也是基于“4+1”視圖。
9) 結構:軟件構架是多種結構的體現,結構是系統構架從不同角度觀察所產生的視圖。就像建筑物的結構會隨著觀察動機和出發點的不同而有多種含義一樣,軟件構架也表現為多種結構。常見的軟件結構有:模塊結構、邏輯或概念結構、進程或協調結構、物理結構、使用結構、調用結構、數據流、控制流、類結構等等