系統(tǒng)架構(gòu)的設(shè)計(jì)要求架構(gòu)師具備軟件和硬件的功能和性能的過硬知識(shí),這一工作無疑是架構(gòu)設(shè)計(jì)工作中最為困難的工作。
此外,從每一個(gè)角度上看,都可以看到架構(gòu)的兩要素:元件劃分和設(shè)計(jì)決定。
首先,一個(gè)軟件系統(tǒng)中的元件首先是邏輯元件。這些邏輯元件如何放到硬件上,以及這些元件如何為整個(gè)系統(tǒng)的可擴(kuò)展性、可靠性、強(qiáng)壯性、靈活性、性能等做出貢獻(xiàn),是非常重要的信息。
其次,進(jìn)行軟件設(shè)計(jì)需要做出的決定中,必然會(huì)包括邏輯結(jié)構(gòu)、物理結(jié)構(gòu),以及它們?nèi)绾斡绊懙较到y(tǒng)的所有非功能性特征。這些決定中會(huì)有很多是一旦作出,就很難更改的。 mda.com 源:
根據(jù)的經(jīng)驗(yàn),一個(gè)基于數(shù)據(jù)庫的系統(tǒng)架構(gòu),有多少個(gè)數(shù)據(jù)表,就會(huì)有多少頁的架構(gòu)設(shè)計(jì)文檔。比如一個(gè)中等的數(shù)據(jù)庫應(yīng)用系統(tǒng)通常含有一百個(gè)左右的數(shù)據(jù)表,這樣的一個(gè)系統(tǒng)設(shè)計(jì)通常需要有一百頁左右的架構(gòu)設(shè)計(jì)文檔。
構(gòu)架描述
為了討論和分析軟件構(gòu)架,必須首先定義構(gòu)架表示方式,即描述構(gòu)架重要方面的方式。在 Rational Unified Process 中,軟件構(gòu)架文檔記錄有這種描述。
構(gòu)架視圖
我們決定以多種構(gòu)架視圖來表示軟件構(gòu)架。每種構(gòu)架視圖針對(duì)于開發(fā)流程中的涉眾(例如最終用戶、設(shè)計(jì)人員、管理人員、系統(tǒng)工程師、維護(hù)人員等)所關(guān)注的特定方面。
構(gòu)架視圖顯示了軟件構(gòu)架如何分解為構(gòu)件,以及構(gòu)件如何由連接器連接來產(chǎn)生有用的形式 [PW92],由此記錄主要的結(jié)構(gòu)設(shè)計(jì)決策。這些設(shè)計(jì)決策必須基于需求以及功能、補(bǔ)充和其他方面的約束。而這些決策又會(huì)在較低層次上為需求和將來的設(shè)計(jì)決策施加進(jìn)一步的約束。
典型的構(gòu)架視圖集
構(gòu)架由許多不同的構(gòu)架視圖來表示,這些視圖本質(zhì)上是以圖形方式來摘要說明“在構(gòu)架方面具有重要意義”的模型元素。在 Rational Unified Process 中,您將從一個(gè)典型的視圖集開始,該視圖集稱為“4+1 視圖模型”[KRU95]。它包括:
用例視包括用例和場(chǎng)景,這些用例和場(chǎng)景包括在構(gòu)架方面具有重要意義的行為、類或技術(shù)風(fēng)險(xiǎn)。它是用例模型的子集。
邏輯視包括最重要的設(shè)計(jì)類、從這些設(shè)計(jì)類到包和子系統(tǒng)的組織形式,以及從這些包和子系統(tǒng)到層的組織形式。它還包括一些用例實(shí)現(xiàn)。它是設(shè)計(jì)模型的子集。
實(shí)施視包括實(shí)施模型及其從模塊到包和層的組織形式的概覽。 同時(shí)還描述了將邏輯視圖中的包和類向?qū)嵤┮晥D中的包和模塊分配的情況。它是實(shí)施模型的子集。
進(jìn)程視包括所涉及任務(wù)(進(jìn)程和線程)的描述,它們的交互和配置,以及將設(shè)計(jì)對(duì)象和類向任務(wù)的分配情況。
只有在系統(tǒng)具有很高程度的并行時(shí),才需要該視圖。在 Rational Unified Process 中,它是設(shè)計(jì)模型的子集。
配置視包括對(duì)最典型的平臺(tái)配置的各種物理節(jié)點(diǎn)的描述以及將任務(wù)(來自進(jìn)程視圖)向物理節(jié)點(diǎn)分配的情況。
只有在分布式系統(tǒng)中才需要該視圖。它是部署模型的一個(gè)子集。
構(gòu)架視圖記錄在軟件構(gòu)架文檔中。您可以構(gòu)建其他視圖來表達(dá)需要特別關(guān)注的不同方面:用戶界面視圖、安全視圖、數(shù)據(jù)視圖等等。對(duì)于簡單系統(tǒng),可以省略 4+1 視圖模型中的一些視圖。
構(gòu)架重點(diǎn)
雖然以上視圖可以表示系統(tǒng)的整體設(shè)計(jì),但構(gòu)架只同以下幾個(gè)具體方面相關(guān):
模型的結(jié)構(gòu),即組織模式,例如分層。
基本元素,即關(guān)鍵用例、主類、常用機(jī)制等,它們與模型中的各元素相對(duì)。
幾個(gè)關(guān)鍵場(chǎng)景,它們表示了整個(gè)系統(tǒng)的主要控制流程。
記錄模塊度、可選特征、產(chǎn)品線狀況的服務(wù)。
構(gòu)架視圖在本質(zhì)上是整體設(shè)計(jì)的抽象或簡化,它們通過舍棄具體細(xì)節(jié)來突出重要的特征。在考慮以下方面時(shí),這些特征非常重要:
系統(tǒng)演進(jìn),即進(jìn)入下一個(gè)開發(fā)周期。
在產(chǎn)品線環(huán)境下復(fù)用構(gòu)架或構(gòu)架的一部分。
評(píng)估補(bǔ)充質(zhì)量,例如性能、可用性、可移植性和安全性。
向團(tuán)隊(duì)或分包商分配開發(fā)工作。
決定是否包括市售構(gòu)件。
插入范圍更廣的系統(tǒng)。