【正文】
169。 169。 專有特性用于限制軟件體系結(jié)構(gòu)元素的選擇 , 關(guān)系用于限制軟件體系結(jié)構(gòu)元素組合的拓撲結(jié)構(gòu) 。 28 2022/2/16 SA的定義 定義 5: (Perry& Wolf模型 ) 軟件體系結(jié)構(gòu) ={元素,形式,準(zhǔn)則 }。連接元素用于把體系結(jié)構(gòu)的不同部分組合連接到一起。 27 2022/2/16 SA的定義 ? Perry and Wolf, 1992: A set of architectural (or, if you will, design) elements that have a particular form. Perry and Wolf distinguish between processing elements, data elements, and connecting elements, and this taxonomy by and large persists through most other definitions and approaches. 軟件體系結(jié)構(gòu)是一組具有特定形式的體系結(jié)構(gòu)元素 (elements)。 例如 , 上層構(gòu)件可要求下層構(gòu)件的服務(wù) , 反之不行:兩對象不得遞歸地發(fā)消息;代碼復(fù)制遷移的一致性約束 ; 在什么條件下此種連接無效等 。 26 2022/2/16 SA的定義 定義 4: (Garlan& Shaw 模型 ) 軟件體系結(jié)構(gòu) ={構(gòu)件,連接件,約束 }。 它一般表現(xiàn)為框架式對象或轉(zhuǎn)換式對象 (調(diào)用遠程構(gòu)件資源 ), 例如 “ 樁 ” , “ 代理 ” 對象等 。 連接件是構(gòu)件的粘合劑 , 它把不同的構(gòu)件連接起來構(gòu)成體系結(jié)構(gòu)的一部分 。 25 2022/2/16 SA的定義 定義 4: (Garlan& Shaw 模型 ) 軟件體系結(jié)構(gòu) ={構(gòu)件,連接件,約束 }。 構(gòu)件的定制和規(guī)范化對于實現(xiàn)構(gòu)件的復(fù)用有重要意義 。 它們或是結(jié)構(gòu)相關(guān) (如嵌套對象 , 其中的被嵌對象是嵌套對象的一部分 )或是邏輯相關(guān) (若干聚集對象完成某功能 )。 其中: 1) 構(gòu)件 (ponent) : 可以是一組代碼 , 如程序的模塊;也可以是一個獨立的程序 , 如數(shù)據(jù)庫服務(wù)器 。 169。 and selection among design alternatives.“ Mary Shaw和 David Garlan認為 , 軟件體系結(jié)構(gòu)是軟件設(shè)計過程中 ,超越計算中的算法設(shè)計和數(shù)據(jù)結(jié)構(gòu)設(shè)計的一個層次 。 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。 169。 (4)過程模型 過程模型關(guān)注系統(tǒng)結(jié)構(gòu)的構(gòu)建及其步驟和過程 。 “ 動態(tài) ” 可以有多種含意。 169。 (2)框架模型 框架模型的觀點與結(jié)構(gòu)模型相似,但其重點在于整個系統(tǒng)的連貫結(jié)構(gòu) (這種結(jié)構(gòu)通常是唯一的 ),這與重視其組成恰好相反。 ● 分析 , 屬性 。 這些方面包括如下幾類: ● 配置 , 風(fēng)格 。 169。 20 2022/2/16 SA的定義 定義 3: (Shaw定義 ) 在第一屆軟件系統(tǒng)體系結(jié)構(gòu)國際討論會上 ,Mary Shaw對于當(dāng)時術(shù)語使用的混亂情況予以了澄清 。構(gòu)件既可以是對象,也可以是進程,還可以是函數(shù)庫,或是數(shù)據(jù)庫。 這里的外部可視屬性,是指其他構(gòu)件認為該構(gòu)件所具備的特征,如所提供的服務(wù)、具有的性能特點、錯誤處理機制、共享資源的用法等。 18 2022/2/16 SA的定義 定義 1: (Booch& Rumbaugh& Jacobson定義 ) 軟件體系結(jié)構(gòu)= {組織,元素,子系統(tǒng),風(fēng)格 } 169。 17 2022/2/16 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)元素和行為元素進一步組合構(gòu)成的更大規(guī)模的子系統(tǒng),和引導(dǎo)這一組織 —— 包括這些元素及其接口、它們的協(xié)作、它們的組合 —— 的體系結(jié)構(gòu)風(fēng)格。 16 2022/2/16 2 SA的定義 ? “There is no standard, universallyaccepted definition of the term, for software architecture is a field in its infancy, although its roots run deep in