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

字號:

為闡明其含義,下面將詳述其中的兩個;完整說明請參見 [BUS96]。模式以下列廣泛使用的形式來表示:
    模式名
    環(huán)境
    問題
    影響,描述應(yīng)考慮的不同問題方面
    解決方案
    基本原理
    結(jié)果環(huán)境
    示例
    模式名
    層
    環(huán)境
    需要進行結(jié)構(gòu)分解的大系統(tǒng)。
    問題
    必須處理不同抽象層次的問題的系統(tǒng)。例如:硬件控制問題、常見服務(wù)問題和針對于不同領(lǐng)域的問題。不要編寫垂直構(gòu)件來處理所有抽象層次的問題。否則要在不同的構(gòu)件中多次處理相同的問題(可能會不一致)。來源:www.examda.com
    影響
    系統(tǒng)的某些部分應(yīng)當是可替換的
    構(gòu)件中的變化不應(yīng)波動
    相似的責任應(yīng)歸為一組
    構(gòu)件大小 -- 復(fù)雜構(gòu)件可能要進行分解
    解決辦法
    將系統(tǒng)分成構(gòu)件組,并使構(gòu)件組形成層疊結(jié)構(gòu)。使上層只使用下層(決不使用上層)提供的服務(wù)。盡量不使用非緊鄰下層提供的服務(wù)(不跳層使用服務(wù),除非中間層只添加通過構(gòu)件)。
    示例:
      1. 通用層
     
    嚴格的分層構(gòu)架規(guī)定設(shè)計元素(類、構(gòu)件、包、子系統(tǒng))只能使用下層提供的服務(wù), 服務(wù)可以包括事件處理、錯誤處理、數(shù)據(jù)庫訪問等等。 相對于記錄在底層的原始操作系統(tǒng)級調(diào)用,它包括更明顯的機制。
      2. 業(yè)務(wù)系統(tǒng)層
    上圖顯示了另一個分層示例,其中有垂直特定應(yīng)用層、水平層和基礎(chǔ)設(shè)施層。注意:此處的目標是采用非常短的業(yè)務(wù)“煙囪”并實現(xiàn)各種應(yīng)用程序間的通用性。 否則,就可能有多個人解決同一問題,從而導(dǎo)致潛在的分歧。
    有關(guān)該模式的深入討論,請參見指南:分層。
    模式名
    黑板
    環(huán)境
    沒有解決問題的確定方法(算法)或方法不可行的領(lǐng)域。例如 AI 系統(tǒng)、語音識別和監(jiān)視系統(tǒng)。