2020国产成人精品视频,性做久久久久久久久,亚洲国产成人久久综合一区,亚洲影院天堂中文av色

分享

軟件系統(tǒng)架構(gòu)

 jllu_7 2006-10-30
軟件系統(tǒng)架構(gòu)軟件系統(tǒng)架構(gòu) 軟件架構(gòu)(software architecture)是一系列相關(guān)的抽象模式,用于指導(dǎo)大型軟件系統(tǒng)各個(gè)方面的設(shè)計(jì)。 軟件架構(gòu)是一個(gè)系統(tǒng)的草圖。軟件架構(gòu)描述的對(duì)象是直接構(gòu)成系統(tǒng)的抽象組件。各個(gè)組件之間的連接則明確和相對(duì)細(xì)致地描述組件之間的通訊。在實(shí)現(xiàn)階段,這些抽象組件被細(xì)化為實(shí)際的組件,比如具體某個(gè)類(lèi)或者對(duì)象。在面向?qū)ο箢I(lǐng)域中,組件之間的連接通常用接口_(計(jì)算機(jī)科學(xué))來(lái)實(shí)現(xiàn)。 軟件體系結(jié)構(gòu)是構(gòu)建計(jì)算機(jī)軟件實(shí)踐的基礎(chǔ)。與建筑師設(shè)定建筑項(xiàng)目的設(shè)計(jì)原則和目標(biāo),作為繪圖員畫(huà)圖的基礎(chǔ)一樣,一個(gè)軟件架構(gòu)師或者系統(tǒng)架構(gòu)師陳述軟件構(gòu)架以作為滿(mǎn)足不同客戶(hù)需求的實(shí)際系統(tǒng)設(shè)計(jì)方案的基礎(chǔ)。 軟件構(gòu)架是一個(gè)容易理解的概念,多數(shù)工程師(尤其是經(jīng)驗(yàn)不多的工程師)會(huì)從直覺(jué)上來(lái)認(rèn)識(shí)它,但要給出精確的定義很困難。特別是,很難明確地區(qū)分設(shè)計(jì)和構(gòu)架:構(gòu)架屬于設(shè)計(jì)的一方面,它集中于某些具體的特征。 在“軟件構(gòu)架簡(jiǎn)介”中,David GArlan 和 Mary Shaw 認(rèn)為軟件構(gòu)架是有關(guān)如下問(wèn)題的設(shè)計(jì)層次:“在計(jì)算的算法和數(shù)據(jù)結(jié)構(gòu)之外,設(shè)計(jì)并確定系統(tǒng)整體結(jié)構(gòu)成為了新的問(wèn)題。結(jié)構(gòu)問(wèn)題包括總體組織結(jié)構(gòu)和全局控制結(jié)構(gòu);通信、同步和數(shù)據(jù)訪問(wèn)的協(xié)議;設(shè)計(jì)元素的功能分配;物理分布;設(shè)計(jì)元素的組成;定標(biāo)與性能;備選設(shè)計(jì)的選擇?!盵GS93] 但構(gòu)架不僅是結(jié)構(gòu);IEEE Working Group on Architecture 把其定義為“系統(tǒng)在其環(huán)境中的最高層概念”[IEEE98]。構(gòu)架還包括“符合”系統(tǒng)完整性、經(jīng)濟(jì)約束條件、審美需求和樣式。它并不僅注重對(duì)內(nèi)部的考慮,而且還在系統(tǒng)的用戶(hù)環(huán)境和開(kāi)發(fā)環(huán)境中對(duì)系統(tǒng)進(jìn)行整體考慮,即同時(shí)注重對(duì)外部的考慮。 在 Rational Unified ProcESs 中,軟件系統(tǒng)的構(gòu)架(在某一給定點(diǎn))是指系統(tǒng)重要構(gòu)件的組織或結(jié)構(gòu),這些重要構(gòu)件通過(guò)接口與不斷減小的構(gòu)件與接口所組成的構(gòu)件進(jìn)行交互。 從和目的、主題、材料和結(jié)構(gòu)的聯(lián)系上來(lái)說(shuō),軟件架構(gòu)可以和建筑物的架構(gòu)相比擬。一個(gè)軟件架構(gòu)師需要有廣泛的軟件理論知識(shí)和相應(yīng)的經(jīng)驗(yàn)來(lái)事實(shí)和管理軟件產(chǎn)品的高級(jí)設(shè)計(jì)。軟件架構(gòu)師定義和設(shè)計(jì)軟件的模塊化,模塊之間的交互,用戶(hù)界面風(fēng)格,對(duì)外接口方法,創(chuàng)新的設(shè)計(jì)特性,以及高層事物的對(duì)象操作、邏輯和流程。   是一般而言,軟件系統(tǒng)的架構(gòu)(ArchitECture)有兩個(gè)要素:   ·它是一個(gè)軟件系統(tǒng)從整體到部分的最高層次的劃分。   一個(gè)系統(tǒng)通常是由元件組成的,而這些元件如何形成、相互之間如何發(fā)生作用,則是關(guān)于這個(gè)系統(tǒng)本身結(jié)構(gòu)的重要信息。   詳細(xì)地說(shuō),就是要包括架構(gòu)元件(Architecture Component)、聯(lián)結(jié)器(Connector)、任務(wù)流(TASk-flow)。所謂架構(gòu)元素,也就是組成系統(tǒng)的核心"磚瓦",而聯(lián)結(jié)器則描述這些元件之間通訊的路徑、通訊的機(jī)制、通訊的預(yù)期結(jié)果,任務(wù)流則描述系統(tǒng)如何使用這些元件和聯(lián)結(jié)器完成某一項(xiàng)需求。   ·建造一個(gè)系統(tǒng)所作出的最高層次的、以后難以更改的,商業(yè)的和技術(shù)的決定。   在建造一個(gè)系統(tǒng)之前會(huì)有很多的重要決定需要事先作出,而一旦系統(tǒng)開(kāi)始進(jìn)行詳細(xì)設(shè)計(jì)甚至建造,這些決定就很難更改甚至無(wú)法更改。顯然,這樣的決定必定是有關(guān)系統(tǒng)設(shè)計(jì)成敗的最重要決定,必須經(jīng)過(guò)非常慎重的研究和考察。 歷史 早在1960年代,諸如E·W·戴克斯特拉就已經(jīng)涉及軟件架構(gòu)這個(gè)概念了。自1990年代以來(lái),部分由于在 Rational Software Corporation 和MiCROSoft內(nèi)部的相關(guān)活動(dòng),軟件架構(gòu)這個(gè)概念開(kāi)始越來(lái)越流行起來(lái)。 卡內(nèi)基梅隆大學(xué)和加州大學(xué)埃爾文分校在這個(gè)領(lǐng)域作了很多研究??▋?nèi)基·梅隆大學(xué)的Mary Shaw和David Garlan于1996年寫(xiě)了一本叫做 Software Architecture perspective on an emerging DIscipline的書(shū),提出了軟件架構(gòu)中的很多概念,例如軟件組件、連接器、風(fēng)格等等。 加州大學(xué)埃爾文分校的軟件研究院所做的工作則主要集中于架構(gòu)風(fēng)格、架構(gòu)描述語(yǔ)言以及動(dòng)態(tài)架構(gòu)。   計(jì)算機(jī)軟件的歷史開(kāi)始于五十年代,歷史非常短暫,而相比之下建筑工程則從石器時(shí)代就開(kāi)始了,人類(lèi)在幾千年的建筑設(shè)計(jì)實(shí)踐中積累了大量的經(jīng)驗(yàn)和教訓(xùn)。建筑設(shè)計(jì)基本上包含兩點(diǎn),一是建筑風(fēng)格,二是建筑模式。獨(dú)特的建筑風(fēng)格和恰當(dāng)選擇的建筑模式,可以使一個(gè)獨(dú)一無(wú)二。   下面的照片顯示了中美洲古代瑪雅建筑,Chichen-Itza大金字塔,九個(gè)巨大的石級(jí)堆壘而上,九十一級(jí)臺(tái)階(象征著四季的天數(shù))奪路而出,塔頂?shù)纳竦盥柸朐铺?。所有的?shù)字都如日歷般嚴(yán)謹(jǐn),風(fēng)格雄渾。難以想象這是石器時(shí)代的建筑物。 圖1、位于墨西哥Chichen-Itza(在瑪雅語(yǔ)中chi意為嘴chen意為井)的古瑪雅建筑。(攝影:作者)   軟件與人類(lèi)的關(guān)系是架構(gòu)師必須面對(duì)的核心問(wèn)題,也是自從軟件進(jìn)入歷史舞臺(tái)之后就出現(xiàn)的問(wèn)題。與此類(lèi)似地,自從有了建筑以來(lái),建筑與人類(lèi)的關(guān)系就一直是建筑設(shè)計(jì)師必須面對(duì)的核心問(wèn)題。英國(guó)首相丘吉爾說(shuō),我們構(gòu)造建筑物,然后建筑物構(gòu)造我們(We shape our buildings, and afterwaRDS our buildings shape us)。英國(guó)下議院的會(huì)議廳較狹窄,無(wú)法使所有的下議院議員面向同一個(gè)方向入座,而必須分成兩側(cè)入座。丘吉爾認(rèn)為,議員們?nèi)胱臅r(shí)候自然會(huì)選擇與自己政見(jiàn)相同的人同時(shí)入座,而這就是英國(guó)政黨制的起源。Party這個(gè)詞的原意就是"方"、"面"。政黨起源的關(guān)鍵就是建筑物對(duì)人的影響。   在軟件設(shè)計(jì)界曾經(jīng)有很多人認(rèn)為功能是最為重要的,形式必須服從功能。與此類(lèi)似地,在建筑學(xué)界,現(xiàn)代主義建筑流派的開(kāi)創(chuàng)人之一Louis Sullivan也認(rèn)為形式應(yīng)當(dāng)服從于功能(FORMs follows function)。   幾乎所有的軟件設(shè)計(jì)理念都可以在浩如煙海的建筑學(xué)歷史中找到更為遙遠(yuǎn)的歷史回響。最為著名的,當(dāng)然就是模式理論和XP理論。   架構(gòu)的目標(biāo)是什么   正如同軟件本身有其要達(dá)到的目標(biāo)一樣,架構(gòu)設(shè)計(jì)要達(dá)到的目標(biāo)是什么呢?一般而言,軟件架構(gòu)設(shè)計(jì)要達(dá)到如下的目標(biāo):   ·可靠性(Reliable)。軟件系統(tǒng)對(duì)于用戶(hù)的商業(yè)經(jīng)營(yíng)和管理來(lái)說(shuō)極為重要,因此軟件系統(tǒng)必須非常可靠。   ·安全行(Secure)。軟件系統(tǒng)所承擔(dān)的交易的商業(yè)價(jià)值極高,系統(tǒng)的安全性非常重要。   ·可擴(kuò)展性(SCAlable)。軟件必須能夠在用戶(hù)的使用率、用戶(hù)的數(shù)目增加很快的情況下,保持合理的性能。只有這樣,才能適應(yīng)用戶(hù)的市場(chǎng)擴(kuò)展得可能性。   ·可定制化(CuSTomizable)。同樣的一套軟件,可以根據(jù)客戶(hù)群的不同和市場(chǎng)需求的變化進(jìn)行調(diào)整。   ·可擴(kuò)展性(Extensible)。在新技術(shù)出現(xiàn)的時(shí)候,一個(gè)軟件系統(tǒng)應(yīng)當(dāng)允許導(dǎo)入新技術(shù),從而對(duì)現(xiàn)有系統(tǒng)進(jìn)行功能和性能的擴(kuò)展   ·可維護(hù)性(MAIntainable)。軟件系統(tǒng)的維護(hù)包括兩方面,一是排除現(xiàn)有的錯(cuò)誤,二是將新的軟件需求反映到現(xiàn)有系統(tǒng)中去。一個(gè)易于維護(hù)的系統(tǒng)可以有效地降低技術(shù)支持的花費(fèi)   ·客戶(hù)體驗(yàn)(Customer Experience)。軟件系統(tǒng)必須易于使用。   ·市場(chǎng)時(shí)機(jī)(Time to Market)。軟件用戶(hù)要面臨同業(yè)競(jìng)爭(zhēng),軟件提供商也要面臨同業(yè)競(jìng)爭(zhēng)。以最快的速度爭(zhēng)奪市場(chǎng)先機(jī)非常重要。   架構(gòu)的種類(lèi)   根據(jù)我們關(guān)注的角度不同,可以將架構(gòu)分成三種:   ·邏輯架構(gòu)、軟件系統(tǒng)中元件之間的關(guān)系,比如用戶(hù)界面,數(shù)據(jù)庫(kù),外部系統(tǒng)接口,商業(yè)邏輯元件,等等。   比如下面就是筆者親身經(jīng)歷過(guò)的一個(gè)軟件系統(tǒng)的邏輯架構(gòu)圖 圖2、一個(gè)邏輯架構(gòu)的例子   從上面這張圖中可以看出,此系統(tǒng)被劃分成三個(gè)邏輯層次,即表象層次,商業(yè)層次和數(shù)據(jù)持久層次。每一個(gè)層次都含有多個(gè)邏輯元件。比如WEB服務(wù)器層次中有HTML服務(wù)元件、Session服務(wù)元件、安全服務(wù)元件、系統(tǒng)管理元件等。   ·物理架構(gòu)、軟件元件是怎樣放到硬件上的。   比如下面這張物理架構(gòu)圖描述了一個(gè)分布于北京和上海的分布式系統(tǒng)的物理架構(gòu),圖中所有的元件都是物理設(shè)備,包括網(wǎng)絡(luò)分流器、代理服務(wù)器、WEB服務(wù)器、應(yīng)用服務(wù)器、報(bào)表服務(wù)器、整合服務(wù)器、存儲(chǔ)服務(wù)器、主機(jī)等等。 圖3、一個(gè)物理架構(gòu)的例子   ·系統(tǒng)架構(gòu)、系統(tǒng)的非功能性特征,如可擴(kuò)展性、可靠性、強(qiáng)壯性、靈活性、性能等。   系統(tǒng)架構(gòu)的設(shè)計(jì)要求架構(gòu)師具備軟件和硬件的功能和性能的過(guò)硬知識(shí),這一工作無(wú)疑是架構(gòu)設(shè)計(jì)工作中最為困難的工作。   此外,從每一個(gè)角度上看,都可以看到架構(gòu)的兩要素:元件劃分和設(shè)計(jì)決定。   首先,一個(gè)軟件系統(tǒng)中的元件首先是邏輯元件。這些邏輯元件如何放到硬件上,以及這些元件如何為整個(gè)系統(tǒng)的可擴(kuò)展性、可靠性、強(qiáng)壯性、靈活性、性能等做出貢獻(xiàn),是非常重要的信息。   其次,進(jìn)行軟件設(shè)計(jì)需要做出的決定中,必然會(huì)包括邏輯結(jié)構(gòu)、物理結(jié)構(gòu),以及它們?nèi)绾斡绊懙较到y(tǒng)的所有非功能性特征。這些決定中會(huì)有很多是一旦作出,就很難更改的。   根據(jù)作者的經(jīng)驗(yàn),一個(gè)基于數(shù)據(jù)庫(kù)的系統(tǒng)架構(gòu),有多少個(gè)數(shù)據(jù)表,就會(huì)有多少頁(yè)的架構(gòu)設(shè)計(jì)文檔。比如一個(gè)中等的數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)通常含有一百個(gè)左右的數(shù)據(jù)表,這樣的一個(gè)系統(tǒng)設(shè)計(jì)通常需要有一百頁(yè)左右的架構(gòu)設(shè)計(jì)文檔。 構(gòu)架描述 為了討論和分析軟件構(gòu)架,必須首先定義構(gòu)架表示方式,即描述構(gòu)架重要方面的方式。在 Rational Unified Process 中,軟件構(gòu)架文檔記錄有這種描述。 構(gòu)架視圖 我們決定以多種構(gòu)架視圖來(lái)表示軟件構(gòu)架。每種構(gòu)架視圖針對(duì)于開(kāi)發(fā)流程中的涉眾(例如最終用戶(hù)、設(shè)計(jì)人員、管理人員、系統(tǒng)工程師、維護(hù)人員等)所關(guān)注的特定方面。 構(gòu)架視圖顯示了軟件構(gòu)架如何分解為構(gòu)件,以及構(gòu)件如何由連接器連接來(lái)產(chǎn)生有用的形式 [PW92],由此記錄主要的結(jié)構(gòu)設(shè)計(jì)決策。這些設(shè)計(jì)決策必須基于需求以及功能、補(bǔ)充和其他方面的約束。而這些決策又會(huì)在較低層次上為需求和將來(lái)的設(shè)計(jì)決策施加進(jìn)一步的約束。 典型的構(gòu)架視圖集 構(gòu)架由許多不同的構(gòu)架視圖來(lái)表示,這些視圖本質(zhì)上是以圖形方式來(lái)摘要說(shuō)明“在構(gòu)架方面具有重要意義”的模型元素。在 Rational Unified Process 中,您將從一個(gè)典型的視圖集開(kāi)始,該視圖集稱(chēng)為“4+1 視圖模型”[KRU95]。它包括: 用例視圖:包括用例和場(chǎng)景,這些用例和場(chǎng)景包括在構(gòu)架方面具有重要意義的行為、類(lèi)或技術(shù)風(fēng)險(xiǎn)。它是用例模型的子集。 邏輯視圖:包括最重要的設(shè)計(jì)類(lèi)、從這些設(shè)計(jì)類(lèi)到包和子系統(tǒng)的組織形式,以及從這些包和子系統(tǒng)到層的組織形式。它還包括一些用例實(shí)現(xiàn)。它是設(shè)計(jì)模型的子集。 實(shí)施視圖:包括實(shí)施模型及其從模塊到包和層的組織形式的概覽。 同時(shí)還描述了將邏輯視圖中的包和類(lèi)向?qū)嵤┮晥D中的包和模塊分配的情況。它是實(shí)施模型的子集。 進(jìn)程視圖:包括所涉及任務(wù)(進(jìn)程和線程)的描述,它們的交互和配置,以及將設(shè)計(jì)對(duì)象和類(lèi)向任務(wù)的分配情況。只有在系統(tǒng)具有很高程度的并行時(shí),才需要該視圖。在 Rational Unified Process 中,它是設(shè)計(jì)模型的子集。 配置視圖:包括對(duì)最典型的平臺(tái)配置的各種物理節(jié)點(diǎn)的描述以及將任務(wù)(來(lái)自進(jìn)程視圖)向物理節(jié)點(diǎn)分配的情況。只有在分布式系統(tǒng)中才需要該視圖。它是部署模型的一個(gè)子集。 構(gòu)架視圖記錄在軟件構(gòu)架文檔中。您可以構(gòu)建其他視圖來(lái)表達(dá)需要特別關(guān)注的不同方面:用戶(hù)界面視圖、安全視圖、數(shù)據(jù)視圖等等。對(duì)于簡(jiǎn)單系統(tǒng),可以省略 4+1 視圖模型中的一些視圖。 構(gòu)架重點(diǎn) 雖然以上視圖可以表示系統(tǒng)的整體設(shè)計(jì),但構(gòu)架只同以下幾個(gè)具體方面相關(guān): 模型的結(jié)構(gòu),即組織模式,例如分層。 基本元素,即關(guān)鍵用例、主類(lèi)、常用機(jī)制等,它們與模型中的各元素相對(duì)。 幾個(gè)關(guān)鍵場(chǎng)景,它們表示了整個(gè)系統(tǒng)的主要控制流程。 記錄模塊度、可選特征、產(chǎn)品線狀況的服務(wù)。 構(gòu)架視圖在本質(zhì)上是整體設(shè)計(jì)的抽象或簡(jiǎn)化,它們通過(guò)舍棄具體細(xì)節(jié)來(lái)突出重要的特征。在考慮以下方面時(shí),這些特征非常重要: 系統(tǒng)演進(jìn),即進(jìn)入下一個(gè)開(kāi)發(fā)周期。 在產(chǎn)品線環(huán)境下復(fù)用構(gòu)架或構(gòu)架的一部分。 評(píng)估補(bǔ)充質(zhì)量,例如性能、可用性、可移植性和安全性。 向團(tuán)隊(duì)或分包商分配開(kāi)發(fā)工作。 決定是否包括市售構(gòu)件。 插入范圍更廣的系統(tǒng)。 構(gòu)架模式 構(gòu)架模式是解決復(fù)發(fā)構(gòu)架問(wèn)題的現(xiàn)成形式。構(gòu)架框架或構(gòu)架基礎(chǔ)設(shè)施(中間件)是可以在其上構(gòu)建某種構(gòu)架的構(gòu)件集。許多主要的構(gòu)架困難應(yīng)在框架或基礎(chǔ)設(shè)施中進(jìn)行解決,而且通常針對(duì)于特定的領(lǐng)域:命令和控制、MIS、控制系統(tǒng)等等。 構(gòu)架模式示例 [BUS96] 根據(jù)構(gòu)架模式最適用的系統(tǒng)的特征將其分類(lèi),其中一個(gè)類(lèi)別處理更普遍的結(jié)構(gòu)問(wèn)題。下表顯示了 [BUS96] 中所提供的類(lèi)別和這些類(lèi)別所包含的模式。 類(lèi)別 模式 結(jié)構(gòu) 層 管道和過(guò)濾器 黑板 分布式系統(tǒng) 代理 交互系統(tǒng) 模型-視圖-控制器 表示-抽象-控制 自適應(yīng)系統(tǒng) 反射 微核 軟件構(gòu)架是一個(gè)容易理解的概念,多數(shù)工程師(尤其是經(jīng)驗(yàn)不多的工程師)會(huì)從直覺(jué)上來(lái)認(rèn)識(shí)它,但要給出精確的定義很困難。特別是,很難明確地區(qū)分設(shè)計(jì)和構(gòu)架:構(gòu)架屬于設(shè)計(jì)的一方面,它集中于某些具體的特征。 在“軟件構(gòu)架簡(jiǎn)介”中,David Garlan 和 Mary Shaw 認(rèn)為軟件構(gòu)架是有關(guān)如下問(wèn)題的設(shè)計(jì)層次:“在計(jì)算的算法和數(shù)據(jù)結(jié)構(gòu)之外,設(shè)計(jì)并確定系統(tǒng)整體結(jié)構(gòu)成為了新的問(wèn)題。結(jié)構(gòu)問(wèn)題包括總體組織結(jié)構(gòu)和全局控制結(jié)構(gòu);通信、同步和數(shù)據(jù)訪問(wèn)的協(xié)議;設(shè)計(jì)元素的功能分配;物理分布;設(shè)計(jì)元素的組成;定標(biāo)與性能;備選設(shè)計(jì)的選擇。”[GS93] 但構(gòu)架不僅是結(jié)構(gòu);IEEE Working Group on Architecture 把其定義為“系統(tǒng)在其環(huán)境中的最高層概念”[IEEE98]。構(gòu)架還包括“符合”系統(tǒng)完整性、經(jīng)濟(jì)約束條件、審美需求和樣式。它并不僅注重對(duì)內(nèi)部的考慮,而且還在系統(tǒng)的用戶(hù)環(huán)境和開(kāi)發(fā)環(huán)境中對(duì)系統(tǒng)進(jìn)行整體考慮,即同時(shí)注重對(duì)外部的考慮。 在 Rational Unified Process 中,軟件系統(tǒng)的構(gòu)架(在某一給定點(diǎn))是指系統(tǒng)重要構(gòu)件的組織或結(jié)構(gòu),這些重要構(gòu)件通過(guò)接口與不斷減小的構(gòu)件與接口所組成的構(gòu)件進(jìn)行交互。 為闡明其含義,下面將詳述其中的兩個(gè);完整說(shuō)明請(qǐng)參見(jiàn) [BUS96]。模式以下列廣泛使用的形式來(lái)表示: 模式名 環(huán)境 問(wèn)題 影響,描述應(yīng)考慮的不同問(wèn)題方面 解決方案 基本原理 結(jié)果環(huán)境 示例 模式名 層 環(huán)境 需要進(jìn)行結(jié)構(gòu)分解的大系統(tǒng)。 問(wèn)題 必須處理不同抽象層次的問(wèn)題的系統(tǒng)。例如:硬件控制問(wèn)題、常見(jiàn)服務(wù)問(wèn)題和針對(duì)于不同領(lǐng)域的問(wèn)題。最好不要編寫(xiě)垂直構(gòu)件來(lái)處理所有抽象層次的問(wèn)題。否則要在不同的構(gòu)件中多次處理相同的問(wèn)題(可能會(huì)不一致)。 影響 系統(tǒng)的某些部分應(yīng)當(dāng)是可替換的 構(gòu)件中的變化不應(yīng)波動(dòng) 相似的責(zé)任應(yīng)歸為一組 構(gòu)件大小 -- 復(fù)雜構(gòu)件可能要進(jìn)行分解 解決辦法 將系統(tǒng)分成構(gòu)件組,并使構(gòu)件組形成層疊結(jié)構(gòu)。使上層只使用下層(決不使用上層)提供的服務(wù)。盡量不使用非緊鄰下層提供的服務(wù)(不跳層使用服務(wù),除非中間層只添加通過(guò)構(gòu)件)。 示例: 1. 通用層 嚴(yán)格的分層構(gòu)架規(guī)定設(shè)計(jì)元素(類(lèi)、構(gòu)件、包、子系統(tǒng))只能使用下層提供的服務(wù), 服務(wù)可以包括事件處理、錯(cuò)誤處理、數(shù)據(jù)庫(kù)訪問(wèn)等等。 相對(duì)于記錄在底層的原始操作系統(tǒng)級(jí)調(diào)用,它包括更明顯的機(jī)制。 2. 業(yè)務(wù)系統(tǒng)層 上圖顯示了另一個(gè)分層示例,其中有垂直特定應(yīng)用層、水平層和基礎(chǔ)設(shè)施層。注意:此處的目標(biāo)是采用非常短的業(yè)務(wù)“煙囪”并實(shí)現(xiàn)各種應(yīng)用程序間的通用性。 否則,就可能有多個(gè)人解決同一問(wèn)題,從而導(dǎo)致潛在的分歧。 有關(guān)該模式的深入討論,請(qǐng)參見(jiàn)指南:分層。 模式名 黑板 環(huán)境 沒(méi)有解決問(wèn)題的確定方法(算法)或方法不可行的領(lǐng)域。例如 AI 系統(tǒng)、語(yǔ)音識(shí)別和監(jiān)視系統(tǒng)。 問(wèn)題 多個(gè)問(wèn)題解決顧問(wèn)(知識(shí)顧問(wèn))必須通過(guò)協(xié)作來(lái)解決他們無(wú)法單獨(dú)解決的問(wèn)題。各顧問(wèn)的工作結(jié)果必須可以供所有其他顧問(wèn)訪問(wèn),使他們可以評(píng)估自己是否可以參與解決方案的查找并發(fā)布其工作結(jié)果。 影響 知識(shí)顧問(wèn)參與解決問(wèn)題的順序不是確定的,這可能取決于問(wèn)題解決策略 不同顧問(wèn)的輸入(結(jié)果或部分解決方案)可能有不同的表示方式 各顧問(wèn)并不直接知道對(duì)方的存在,但可以評(píng)估對(duì)方發(fā)布的工作 解決辦法 多名知識(shí)顧問(wèn)都可訪問(wèn)一個(gè)稱(chēng)為“黑板”的共享數(shù)據(jù)庫(kù)。黑板提供監(jiān)測(cè)和更新其內(nèi)容的接口??刂颇K/對(duì)象激活遵循某種策略的顧問(wèn)。激活后,顧問(wèn)查看黑板,以確定它是否能參與解決問(wèn)題。如果顧問(wèn)決定它可以參與,控制對(duì)象就可以允許顧問(wèn)將其部分(或最終)解決方案放置于黑板上。 示例: 以上顯示了使用 UML 建模的結(jié)構(gòu)或靜態(tài)視圖。 它將成為參數(shù)化協(xié)作的一部分,然后會(huì)綁定到實(shí)參上對(duì)模式進(jìn)行實(shí)例化。 構(gòu)架風(fēng)格 軟件構(gòu)架(或僅是構(gòu)架視圖)可以具有名為構(gòu)架風(fēng)格的屬性,該屬性減少了可選的形式,并使構(gòu)架具有一定程度的一致性。樣式可以通過(guò)一組模式或通過(guò)選擇特定構(gòu)件或連接器作為基本構(gòu)件來(lái)定義。對(duì)給定系統(tǒng),某些樣式可作為構(gòu)架描述的一部分記錄在構(gòu)架風(fēng)格指南(Rational Unified Process 中設(shè)計(jì)指南文檔的一部分)中。樣式在構(gòu)架的可理解性與完整性方面起著主要的作用。 構(gòu)架設(shè)計(jì)圖 構(gòu)架視圖的圖形描述稱(chēng)為構(gòu)架設(shè)計(jì)圖。對(duì)于以上描述的各種視圖,設(shè)計(jì)圖由以下統(tǒng)一建模語(yǔ)言圖組成 [UML99]: 邏輯視圖:類(lèi)圖、狀態(tài)機(jī)和對(duì)象圖。 進(jìn)程視圖:類(lèi)圖與對(duì)象圖(包括任務(wù) - 進(jìn)程與線程)。 實(shí)施視圖:構(gòu)件圖。 部署視圖:配置圖。 用例視圖:用例圖描述用例、主角和普通設(shè)計(jì)類(lèi);順序圖描述設(shè)計(jì)對(duì)象及其協(xié)作關(guān)系。 構(gòu)架設(shè)計(jì)流程 在 Rational Unified Process 中,構(gòu)架主要是分析設(shè)計(jì)工作流程的結(jié)果。當(dāng)項(xiàng)目再次進(jìn)行此工作流程時(shí),構(gòu)架將在一次又一次迭代中不斷演化、改進(jìn)、精煉。由于每次迭代都包括集成和測(cè)試,所以在交付產(chǎn)品時(shí),構(gòu)架就相當(dāng)強(qiáng)壯了。構(gòu)架是精化階段各次迭代的重點(diǎn),構(gòu)架的基線通常會(huì)在此階段結(jié)束時(shí)確定。   架構(gòu)師   軟體設(shè)計(jì)師中有一些技術(shù)水平較高、經(jīng)驗(yàn)較為豐富的人,他們需要承擔(dān)軟件系統(tǒng)的架構(gòu)設(shè)計(jì),也就是需要設(shè)計(jì)系統(tǒng)的元件如何劃分、元件之間如何發(fā)生相互作用,以及系統(tǒng)中邏輯的、物理的、系統(tǒng)的重要決定的作出。   這樣的人就是所謂的架構(gòu)師(Architect)。在很多公司中,架構(gòu)師不是一個(gè)專(zhuān)門(mén)的和正式的職務(wù)。通常在一個(gè)開(kāi)發(fā)小組中,最有經(jīng)驗(yàn)的程序員會(huì)負(fù)責(zé)一些架構(gòu)方面的工作。在一個(gè)部門(mén)中,最有經(jīng)驗(yàn)的項(xiàng)目經(jīng)理會(huì)負(fù)責(zé)一些架構(gòu)方面的工作。   但是,越來(lái)越多的公司體認(rèn)到架構(gòu)工作的重要性,并且在不同的組織層次上設(shè)置專(zhuān)門(mén)的架構(gòu)師位置,由他們負(fù)責(zé)不同層次上的邏輯架構(gòu)、物理架構(gòu)、系統(tǒng)架構(gòu)的設(shè)計(jì)、配置、維護(hù)等工作。

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶(hù)發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買(mǎi)等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶(hù) 評(píng)論公約

    類(lèi)似文章 更多