卡內(nèi)基梅隆大學(xué)軟件研究所關(guān)于軟件架構(gòu)的定義[3]

字號:

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