系統(tǒng)架構(gòu)可以說是程序設(shè)計過程當(dāng)中非常重要的組成部分,中培偉業(yè)《詳細設(shè)計與系統(tǒng)架構(gòu)最佳實踐》培訓(xùn)專家張老師就系統(tǒng)構(gòu)架的相關(guān)概念進行了詳細介紹。 1、 模塊(module):一組完成指定功能的語句,包括:輸入、輸出、邏輯處理功能、內(nèi)部信息、運行環(huán)境(與功能對應(yīng)但不是一對一關(guān)系)。
2、 組件(component):系統(tǒng)中相當(dāng)重要的、幾乎是獨立的可替換部分,它在明確定義的構(gòu)架環(huán)境中實現(xiàn)確切的功能。
3、 模式(pattern):指經(jīng)過驗證,至少適用于一種實用環(huán)境(更多時候是好幾種環(huán)境)的解決方案模板(用于結(jié)構(gòu)和行為。在 UML 中:模式由參數(shù)化的協(xié)作來表示,但 UML 不直接對模式的其他方面(如使用結(jié)果列表、使用示例等,它們可由文本來表示)進行建模。存在各種范圍和抽象程度的模式,例如,構(gòu)架模式、分析模式、設(shè)計模式和代碼模式或?qū)嵤┠J健DJ綄⒖梢詭椭覀冏プ≈攸c。構(gòu)架也是存在模式的。比如,對于系統(tǒng)結(jié)構(gòu)設(shè)計,我們使用層模式;對于分布式系統(tǒng),我們使用代理模式(通過使用代理來替代實際的對象,使程序能夠控制對該對象的訪問);對于交互系統(tǒng),我們使用MVC(M模型(對象)/V視圖(輸出管理)/C控制器(輸入處理))模式。模式是針對特定問題的解,因此,我們也可以針對需求的特點采用相應(yīng)的模式來設(shè)計構(gòu)架。
4、 構(gòu)架模式(architectural pattern):表示軟件系統(tǒng)的基本結(jié)構(gòu)組織方案。它提供了一組預(yù)定義的子系統(tǒng)、指定它們的職責(zé),并且包括用于組織其間關(guān)系的規(guī)則和指導(dǎo)。
5、 層(layer):對模型中同一抽象層次上的包進行分組的一種特定方式。通過分層,從邏輯上將子系統(tǒng)劃分成許多集合,而層間關(guān)系的形成要遵循一定的規(guī)則。通過分層,可以限制子系統(tǒng)間的依賴關(guān)系,使系統(tǒng)以更松散的方式耦合,從而更易于維護。(層是對構(gòu)架的橫向劃分,分區(qū)是對構(gòu)架的縱向劃分)。
6、 系統(tǒng)分層的幾種常用方法:
1)常用三層服務(wù):用戶層、業(yè)務(wù)邏輯層、數(shù)據(jù)層;
2)多層結(jié)構(gòu)的技術(shù)組成模型:表現(xiàn)層、中間層、數(shù)據(jù)層;
3)網(wǎng)絡(luò)系統(tǒng)常用三層結(jié)構(gòu):核心層、匯聚層和接入層;
4)RUP典型分層方法:應(yīng)用層、專業(yè)業(yè)務(wù)層、中間件層、系統(tǒng)軟件層;
5)基于Java的B/S模式系統(tǒng)結(jié)構(gòu):瀏覽器端、服務(wù)器端、請求接收層、請求處理層;
6)某六層結(jié)構(gòu):功能層(用戶界面)、模塊層、組裝層(軟件總線)、服務(wù)層(數(shù)據(jù)處理)、數(shù)據(jù)層、核心層;
7)構(gòu)架(Architecture,愿意為建筑學(xué)設(shè)計和建筑物建造的藝術(shù)與科學(xué)): 在RUP中的定義:軟件系統(tǒng)的構(gòu)架(在某一給定點)是指系統(tǒng)重要構(gòu)件的組織或結(jié)構(gòu),這些重要構(gòu)件通過接口與不斷減小的構(gòu)件與接口所組成的構(gòu)件進行交互;《軟件構(gòu)架實踐》中的定義:某個軟件或者計算系統(tǒng)的軟件構(gòu)架即組成該系統(tǒng)的一個或者多個結(jié)構(gòu),他們組成軟件的各個部分,形成這些組件的外部可見屬性及相互間的聯(lián)系;IEEE 1471-2000中的定義:the fundamental organization of a system emboided in its components,their relationships to each other,and to the enviroment and the principles guiding its design and evolution,構(gòu)架是系統(tǒng)在其所處環(huán)境中的最高層次的概念。軟件系統(tǒng)的構(gòu)架是通過接口交互的重要構(gòu)件(在特定時間點)的組織或結(jié)構(gòu),這些構(gòu)件又由一些更小的構(gòu)件和接口組成。(“構(gòu)架”可以作為名詞,也可作為動詞,作為動詞的“構(gòu)架”相當(dāng)于“構(gòu)架設(shè)計”)
8)構(gòu)架的描述方式:“4+1”視圖(用例視圖、設(shè)計視圖、實現(xiàn)視圖、過程視圖、配置視圖)是一個被廣為使用的構(gòu)架描述的模型;RUP過程的構(gòu)架描述模板在“4+1”視圖的基礎(chǔ)上增加了可選的數(shù)據(jù)視圖(從永久性數(shù)據(jù)存儲方面來對系統(tǒng)進行說明);HP公司的軟件描述模板也是基于“4+1”視圖。
9)結(jié)構(gòu):軟件構(gòu)架是多種結(jié)構(gòu)的體現(xiàn),結(jié)構(gòu)是系統(tǒng)構(gòu)架從不同角度觀察所產(chǎn)生的視圖。就像建筑物的結(jié)構(gòu)會隨著觀察動機和出發(fā)點的不同而有多種含義一樣,軟件構(gòu)架也表表現(xiàn)為多種結(jié)構(gòu)。常見的軟件結(jié)構(gòu)有:模塊結(jié)構(gòu)、邏輯或概念結(jié)構(gòu)、進程或協(xié)調(diào)結(jié)構(gòu)、物理結(jié)構(gòu)、使用結(jié)構(gòu)、調(diào)用結(jié)構(gòu)、數(shù)據(jù)流、控制流、類結(jié)構(gòu)等等。