中國(guó)三大門戶網(wǎng)站是哪三個(gè)開源cms建站系統(tǒng)
軟件體系結(jié)構(gòu)(Software Architecture)
軟件體系結(jié)構(gòu)(Software Architecture)包括構(gòu)成系統(tǒng)的設(shè)計(jì)元素的描述、 設(shè)計(jì)元素
之間的交互、 設(shè)計(jì)元素的組合模式以及在這些模式中的約束。
定義
軟件體系結(jié)構(gòu)表示系統(tǒng)的框架結(jié)構(gòu),用于從較高的層次上來描述各部分之間的關(guān)系和接口,主要包括構(gòu)件、構(gòu)件性質(zhì)和構(gòu)件之間的關(guān)系。
通過使用軟件體系結(jié)構(gòu),可以有效地分析用戶需求,方便系統(tǒng)的修改,以及減小程序構(gòu)造風(fēng)險(xiǎn)。
隨著軟件規(guī)模不斷地增大和復(fù)雜程度日益增高,系統(tǒng)框架架構(gòu)的設(shè)計(jì)變得越來越關(guān)鍵。軟件框架設(shè)計(jì)的核心問題是能否復(fù)用已經(jīng)成型的體系結(jié)構(gòu)方案。由此,產(chǎn)生了軟件體系結(jié)構(gòu)風(fēng)格的概念。** 軟件體系結(jié)構(gòu)風(fēng)格是** 軟件結(jié)構(gòu)風(fēng)格是描述某一特定應(yīng)用領(lǐng)域中系統(tǒng)組織方式的慣用模式
(idiomatic paradigm)
。體系結(jié)構(gòu)風(fēng)格定義了一個(gè)系統(tǒng)家族,即一個(gè)體系結(jié)構(gòu)定義一個(gè)詞匯表和一組約束。詞匯表中包含一些構(gòu)件和連接件組合起來的。體系結(jié)構(gòu)風(fēng)格反映了領(lǐng)域中眾多系統(tǒng)所共有的結(jié)構(gòu)和語義特性,并指導(dǎo)如何將各個(gè)模塊和子系統(tǒng)有效地組織成一租個(gè)完整的系統(tǒng)。按這種方式理解,軟件體系結(jié)構(gòu)風(fēng)格定義了用于描述系統(tǒng)的術(shù)語表和一組指導(dǎo)構(gòu)件系統(tǒng)的規(guī)則。
軟件體系結(jié)構(gòu)風(fēng)格(Architectural Styles)是描述特定系統(tǒng)組織方式的慣用范例,強(qiáng)調(diào)了軟件系統(tǒng)中通用的組織結(jié)構(gòu)。
風(fēng)格這個(gè)詞是個(gè)模糊的概念,不同的人有不同的理解,這有時(shí)候就讓人很困惑。這時(shí)候?yàn)榱嗣鞔_這個(gè)概念,通過數(shù)學(xué)集合的方式來定義風(fēng)格,如此一來,我們更能認(rèn)清風(fēng)格的內(nèi)部結(jié)構(gòu)及本質(zhì)。
為了幫助理解體系結(jié)構(gòu)風(fēng)格,這里我們舉一個(gè)現(xiàn)實(shí)生活中簡(jiǎn)單的例子。
小明和小紅是同班同學(xué),他們?cè)诳荚嚂r(shí)有不同的表現(xiàn),小明一般先做解答題,然后做選擇題。小紅則先做選擇題,隨后做解答題。這就成了兩個(gè)人的做題風(fēng)格的一部分。同樣的構(gòu)件(解答題,選擇題),次序結(jié)構(gòu)的不同,導(dǎo)致了兩人不同的風(fēng)格。
事實(shí)上,不同的風(fēng)格有不同的適用場(chǎng)景。假設(shè)人的習(xí)慣是先解決簡(jiǎn)單的問題,再解決復(fù)雜的問題。那么(1)選擇題難、解答題簡(jiǎn)單時(shí),可以采取先解答題后選擇題的做題風(fēng)格;(2)選擇題簡(jiǎn)單、解答題難時(shí),可以采取先選擇題后解答題的做題風(fēng)格。
同樣,針對(duì)某種軟件應(yīng)用場(chǎng)景,應(yīng)該選擇與其相適應(yīng)的構(gòu)件,以及合理安排構(gòu)件間的關(guān)系。在后面的具體體系結(jié)構(gòu)風(fēng)格中,可以重點(diǎn)查看構(gòu)件、連接件、結(jié)構(gòu)安排的不同(這些區(qū)分了不同的風(fēng)格,適用于不同的場(chǎng)景)
作用
對(duì)于一些高質(zhì)量的軟件,一般要選擇合適的體系結(jié)構(gòu)風(fēng)格,以便重用現(xiàn)有的設(shè)計(jì)方案和實(shí)現(xiàn)方案,加快開發(fā)的進(jìn)度。
目的
軟件體系結(jié)構(gòu)風(fēng)格為大粒度的軟件重用提供了可能
。
構(gòu)件定義
構(gòu)件是具有某種功能的可重用的軟件模板單元,表示了系統(tǒng)中主要的計(jì)算元素和數(shù)據(jù)存儲(chǔ)。構(gòu)件有兩種:復(fù)合構(gòu)件和原子構(gòu)件,復(fù)合構(gòu)件由其他復(fù)合構(gòu)件和原子構(gòu)件通過連接而成;原子構(gòu)件是不可再分的構(gòu)件,底層由實(shí)現(xiàn)該構(gòu)件的類組成,這種構(gòu)件的劃分提供了體系結(jié)構(gòu)的分層表示能力,有助于簡(jiǎn)化體系結(jié)構(gòu)的設(shè)計(jì)。
接件定義
連接件表示了構(gòu)件之間的交互,簡(jiǎn)單的連接件如管道(pipe)、過程調(diào)用(proceduce call)、事件廣播(event broadcast)等,更為復(fù)雜的交互如客戶-服務(wù)器(client-server)通信協(xié)議,數(shù)據(jù)庫和應(yīng)用之間的SQL連接等。
四要素
- 提供一個(gè)詞匯表;
- 定義一套配置規(guī)則;
- 定義一套語義解釋規(guī)則;
- 定義對(duì)基于這種風(fēng)格的系統(tǒng)所進(jìn)行的分析。