【正文】
proaches. 軟件體系結(jié)構(gòu)是一組具有特定形式的體系結(jié)構(gòu)元素 (elements)。 其中: 3) 約束 (constrain):約束一般為對象連接時(shí)的規(guī)則 , 或指明構(gòu)件連接的勢態(tài)和條件 。 它一般表現(xiàn)為框架式對象或轉(zhuǎn)換式對象 (調(diào)用遠(yuǎn)程構(gòu)件資源 ), 例如 “ 樁 ” , “ 代理 ” 對象等 。 連接件是構(gòu)件的粘合劑 , 它把不同的構(gòu)件連接起來構(gòu)成體系結(jié)構(gòu)的一部分 。 25 2021/11/10 SA的定義 定義 4: (Garlan& Shaw 模型 ) 軟件體系結(jié)構(gòu) ={構(gòu)件,連接件,約束 }。 構(gòu)件相對獨(dú)立 , 僅通過接口與外部相互作用 , 可作為獨(dú)立單元嵌入到不同應(yīng)用系統(tǒng)中 。 構(gòu)件是相關(guān)對象的集合 , 運(yùn)行后實(shí)現(xiàn)某計(jì)算邏輯 。 24 2021/11/10 SA的定義 定義 4: (Garlan& Shaw 模型 ) 軟件體系結(jié)構(gòu) ={構(gòu)件,連接件,約束 }。 and selection among design alternatives.“ Mary Shaw和 David Garlan認(rèn)為 , 軟件體系結(jié)構(gòu)是軟件設(shè)計(jì)過程中 ,超越計(jì)算中的算法設(shè)計(jì)和數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)的一個(gè)層次 。 position of design elements。 assignment of functionality to design elements。 designing and specifying the overall system structure emerges as a new kind of problem. Structural issues include gross anization and global control structure。 在這一觀點(diǎn)下 ,體系結(jié)構(gòu)是所進(jìn)行的一系列過程的結(jié)果 。它可以是指整個(gè)系統(tǒng)配置的變化也可以是指禁止預(yù)先激活了的通信或交互,還可以是指計(jì)算中表現(xiàn)中的動(dòng)態(tài)特性,如改變數(shù)據(jù)的值。 22 2021/11/10 SA的定義 (3)動(dòng)態(tài)模型 動(dòng)態(tài)模型強(qiáng)調(diào)系統(tǒng)的行為質(zhì)量。 (2)框架模型 框架模型的觀點(diǎn)與結(jié)構(gòu)模型相似,但其重點(diǎn)在于整個(gè)系統(tǒng)的連貫結(jié)構(gòu) (這種結(jié)構(gòu)通常是唯一的 ),這與重視其組成恰好相反。 ● 分析 , 屬性 。 這些方面包括如下幾類: ● 配置 , 風(fēng)格 。 從會(huì)議論文中 , Shaw整理出他們的定義和觀點(diǎn) , 并對當(dāng)時(shí)的各種觀點(diǎn)作了如下的分類 : 結(jié)構(gòu)模型;框架模型;動(dòng)態(tài)模型;過程模型 。構(gòu)件既可以是對象,也可以是進(jìn)程,還可以是函數(shù)庫,或是數(shù)據(jù)庫。 這里的外部可視屬性,是指其他構(gòu)件認(rèn)為該構(gòu)件所具備的特征,如所提供的服務(wù)、具有的性能特點(diǎn)、錯(cuò)誤處理機(jī)制、共享資源的用法等。 17 2021/11/10 SA的定義 ? Booch, Rumbaugh, and Jacobson, 1999: An architecture is the set of significant decisions about the anization of a software system, the selection of the structural elements and their interfaces by which the system is posed, together with their behavior as specified in the collaborations among those elements, the position of these structural and behavioral elements into progressively larger subsystems, and the architectural style that guides this anizationthese elements and their interfaces, their collaborations, and their position (The UML Modeling Language User Guide, AddisonWesley, 1999). ? 體系結(jié)構(gòu)是一系列重要決策的集合,這些決策與以下內(nèi)容相關(guān):軟件的組織,構(gòu)成系統(tǒng)的結(jié)構(gòu)元素及其接口的選擇,這些元素在相互協(xié)作中明確表現(xiàn)出的行為,這些結(jié)構(gòu)元素和行為元素進(jìn)一步組合構(gòu)成的更大規(guī)模的子系統(tǒng),和引導(dǎo)這一組織 —— 包括這些元素及其接口、它們的協(xié)作、它們的組合 —— 的體系結(jié)構(gòu)風(fēng)格。在軟件產(chǎn)品族之間共享體系結(jié)構(gòu)和一組可重用的構(gòu)件,可以降低開發(fā)和維護(hù)的成本。 15 2021/11/10 ( 8)軟件產(chǎn)品線體系結(jié)構(gòu) 軟件體系結(jié)構(gòu)的開發(fā)是大型軟件系統(tǒng)開發(fā)的關(guān)鍵環(huán)節(jié),對于軟件產(chǎn)品線的開發(fā)來說更是具有至關(guān)重要的作用。除了軟件體系結(jié)構(gòu)描述語言的支持工具外,還有一些基于軟件體系結(jié)構(gòu)的開發(fā)方法的支持工具,例如ABC( architecturebased ponent position)是一種基于軟件體系結(jié)構(gòu)面向構(gòu)件的軟件開發(fā)方法, ABCTool就是 ABC方法的支持工具。通過特定領(lǐng)域的軟件體系結(jié)構(gòu),可以實(shí)現(xiàn)解決方法在某個(gè)領(lǐng)域內(nèi)的重用。 13 2021/11/10 ( 6)特定領(lǐng)域的軟件體系結(jié)構(gòu) 特定領(lǐng)域的軟件體系結(jié)構(gòu)( Domain Specific Software Architecture,簡稱為 DSSA)是一門以軟件重用為核心,研究軟件應(yīng)用框架的獲