架構(gòu),從字面上很容易聯(lián)想到建筑學(xué)中的構(gòu)建藍(lán)圖,不過他是相對穩(wěn)定的,而軟件中的架構(gòu)是需要不斷演進(jìn)的動態(tài)過程。軟件架構(gòu)是對系統(tǒng)構(gòu)件及其交互關(guān)系的高層抽象描述,是軟件系統(tǒng)的藍(lán)圖和整體結(jié)構(gòu),用于指導(dǎo)后續(xù)的設(shè)計(jì)與開發(fā),以使抽象具體化。軟件架構(gòu)一直沒有一個確切的定義,但是,普遍認(rèn)為軟件架構(gòu)是一種關(guān)注和描述軟件系統(tǒng)整體組織結(jié)構(gòu)和性能的抽象系統(tǒng)機(jī)制,為軟件系統(tǒng)提供了一個結(jié)構(gòu)、行為和屬性的高級抽象,由構(gòu)成系統(tǒng)的元素描述、這些元素的相互作用、指導(dǎo)元素集成的模式以及這些模式的約束組成
雖然軟件系結(jié)構(gòu)的概念早在20世紀(jì)80年代就已經(jīng)提出,但真正引起關(guān)注和重視是在90年代。
1992年,Ikwayne Perry和Ales Wolf定義:軟件體系結(jié)構(gòu)={元素,形式,準(zhǔn)則}。軟件體系結(jié)構(gòu)是由具有特定形式的體系結(jié)構(gòu)元素或設(shè)計(jì)元素構(gòu)成,包括處理元素、數(shù)據(jù)元素和連接元素。處理元素負(fù)責(zé)對數(shù)據(jù)進(jìn)行加工,數(shù)據(jù)元素是被加工的信息連接元素把體系結(jié)構(gòu)的不同部分組合連接起來。軟件體系結(jié)構(gòu)形式由專有特性和關(guān)系組成。而在多個體系結(jié)構(gòu)方案中選擇合適的體系結(jié)構(gòu)方案往往基于一組
準(zhǔn)則。這一定義注重區(qū)分處理元素、數(shù)據(jù)元素和連接元素,這一方法在其它的定義和方法中基本上得到保持。
1993年 DavidW an和MaryS haw提出:軟件體系結(jié)構(gòu)=}組件,連接件,約束}。組件可以是一組代
碼,如程序的模塊;也可以是一個獨(dú)立的程序,如數(shù)據(jù)庫服務(wù)器。連接件可以是過程調(diào)用、管道、遠(yuǎn)程調(diào)用等,用于表示組件之間的相互作用。一個軟件體系結(jié)構(gòu)還包括某些約束,約束一般為對象連接時的規(guī)則或指明連接的勢態(tài)和條件。軟件體系結(jié)構(gòu)是設(shè)計(jì)過程的一個層次,它處理那些超越算法和數(shù)據(jù)結(jié)構(gòu)的設(shè)計(jì),研究整體結(jié)構(gòu)設(shè)計(jì)和描述方法。
1994年 , Bass等人提出:體系結(jié)構(gòu)設(shè)計(jì)至少應(yīng)包括應(yīng)用領(lǐng)域的功能分割、系統(tǒng)結(jié)構(gòu)、結(jié)構(gòu)的領(lǐng)域功能分配三個方面。
1995年 , DavidG arlan和MaryS haw修正定義:軟件體系結(jié)構(gòu)包括系統(tǒng)組件的結(jié)構(gòu)、組件的相互關(guān)系以及控制組件設(shè)計(jì)演化的原則和指導(dǎo)三個方面。
1996 年 ,Kmchten指出,軟件體系結(jié)構(gòu)有四個角度:概念角度、模塊角度、運(yùn)行角度和代碼角度。概念角度描述系統(tǒng)的主要組件及它們之間的關(guān)系;模塊角度包含功能分解與層次結(jié)構(gòu);運(yùn)行角度描述一個系統(tǒng)的動態(tài)結(jié)構(gòu);代碼角度描述各種代碼和庫函數(shù)在開發(fā)環(huán)境中的組織。
1997年 , Bass,Cl ements和KazTnan提出:軟件體系結(jié)構(gòu)包括組件、組件的外部可見性以及相互的關(guān)系。其中軟件組件的外部可見性是指軟件組件提供的服務(wù)、性能、特性、共享資源使用等。該定義強(qiáng)調(diào)體系結(jié)構(gòu)分析需要從系統(tǒng)中抽象出用于分析、決策的信息。概括各種不同觀點(diǎn),可發(fā)現(xiàn)它們都支持這樣的觀點(diǎn),即:軟件體系結(jié)構(gòu)包括系統(tǒng)總體組織、全局控制、通信技術(shù)、同步、數(shù)據(jù)存取、設(shè)計(jì)元素的功能、組織、規(guī)模、性能、設(shè)計(jì)方案的選擇。
本博客為學(xué)習(xí)交流用,凡未注明引用的均為本人作品,轉(zhuǎn)載請注明出處,如有版權(quán)問題請及時通知。由于博客時間倉促,錯誤之處敬請諒解,有任何意見可給我留言,愿共同學(xué)習(xí)進(jìn)步。