



下載本文檔
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、精選優(yōu)質(zhì)文檔-傾情為你奉上在不同的架構(gòu)設(shè)計(jì)方法中出現(xiàn)的軟件架構(gòu)視圖種類(lèi)很多,本文介紹最常用的兩種架構(gòu)視圖邏輯架構(gòu)視圖和物理架構(gòu)視圖,并通過(guò)具體案例的分析說(shuō)明如何運(yùn)用它們進(jìn)行架構(gòu)設(shè)計(jì)。當(dāng)觀察和描述事物大局的時(shí)候,邏輯架構(gòu)和物理架構(gòu)是最常用的角度。比如,以我們辦公室里的局域網(wǎng)為例:從物理角度看,所有計(jì)算機(jī)“毫無(wú)區(qū)別”地連接到路由器上;而從邏輯角度看呢,就發(fā)現(xiàn)這些計(jì)算機(jī)是有區(qū)別的一臺(tái)計(jì)算機(jī)充當(dāng)文件服務(wù)器,而其它計(jì)算機(jī)是可以訪問(wèn)服務(wù)器的客戶機(jī)。如圖1所示。圖1 區(qū)分物理視角與邏輯視角同樣,在軟件架構(gòu)設(shè)計(jì)過(guò)程中,也可以通過(guò)區(qū)分軟件的邏輯架構(gòu)和物理架構(gòu),分別從不同的角度設(shè)計(jì)和描述軟件架構(gòu)。所謂
2、軟件架構(gòu)試圖,是指設(shè)計(jì)和看待整個(gè)軟件系統(tǒng)的特定視角。每個(gè)軟件架構(gòu)視圖關(guān)注系統(tǒng)架構(gòu)的不同方面,針對(duì)不同的目標(biāo)和用途。也就是說(shuō),架構(gòu)要蘊(yùn)涵的內(nèi)容和決策太多,超過(guò)了人腦的能力范圍,因此采用“分而治之”的辦法從不同視角分別設(shè)計(jì);同時(shí),也為軟件架構(gòu)的理解、交流和歸檔提供了方便邏輯架構(gòu) 軟件的邏輯架構(gòu)規(guī)定了軟件系統(tǒng)由哪些邏輯元素組成、以及這些邏輯元素之間的關(guān)系。軟件的邏輯元素一般指某種級(jí)別的功能模塊,大到我們熟悉的邏輯層,以及子系統(tǒng)、模塊,小到一個(gè)個(gè)的類(lèi)。至于具體要分解到何種大小的功能模塊才可結(jié)束軟件架構(gòu)設(shè)計(jì),并不存在一個(gè)“一刀切”的標(biāo)準(zhǔn)- 只要足夠明確簡(jiǎn)單,能夠分頭開(kāi)發(fā)就可以了。于是,在實(shí)踐中
3、我們往往將關(guān)鍵機(jī)制相關(guān)的架構(gòu)設(shè)計(jì)部分明確到類(lèi),而一般功能則到模塊甚至子系統(tǒng)的接口定義即可。值得說(shuō)明的是,功能模塊有時(shí)容易識(shí)別,有時(shí)卻比較隱含。而比較全面地識(shí)別功能塊、規(guī)劃功能塊的接口、明確功能塊之間的使用關(guān)系和使用機(jī)制,正是軟件邏輯架構(gòu)設(shè)計(jì)的核心任務(wù)所在。對(duì)此,Ivar Jackbson曾有過(guò)極為形象的說(shuō)法,“軟件系統(tǒng)的架構(gòu)涵蓋了整個(gè)系統(tǒng),盡管架構(gòu)的有些部分可能只有一寸深圖2展示了一個(gè)網(wǎng)絡(luò)設(shè)備管理系統(tǒng)邏輯架構(gòu)設(shè)計(jì)的一部分,我們借此來(lái)舉例說(shuō)明軟件邏輯架構(gòu)設(shè)計(jì)的3大核心任務(wù)識(shí)別功能塊規(guī)劃功能塊的接口明確功能塊之間的使用關(guān)系和使用機(jī)制軟件的邏輯架構(gòu)師架構(gòu)設(shè)計(jì)思維的重要方法。在用例技術(shù)已經(jīng)成為捕獲功能
4、需求的事實(shí)標(biāo)準(zhǔn)的今天,邏輯架構(gòu)的設(shè)計(jì)往往是從用例分析開(kāi)始的。基于用例的分析方法是邏輯架構(gòu)設(shè)計(jì)變得比較有序-通過(guò)對(duì)每個(gè)關(guān)鍵用例的分析,從邏輯上將用例實(shí)現(xiàn)為一組功能塊的特定組合,最后綜合這些用例分析成果,將一個(gè)個(gè)獨(dú)立的協(xié)作歸納合并成整個(gè)軟件系統(tǒng)的邏輯架構(gòu)。而在用例分析產(chǎn)生之前,功能模塊的確定多多少少帶有些”硬“想出來(lái)的味道,特別是并不直接承載業(yè)務(wù)功能的模塊有時(shí)比較容易遺漏,直到大規(guī)模編程實(shí)現(xiàn)階段才發(fā)現(xiàn)。物理架構(gòu)軟件的物理架構(gòu)規(guī)定了組成軟件系統(tǒng)的物理元素、這些物理元素之間的關(guān)系、以及它們部署到硬件上的策略。物理架構(gòu)可以反映出軟件系統(tǒng)動(dòng)態(tài)運(yùn)行時(shí)的組織情況。此時(shí),上述物理架構(gòu)定義中所提及的”物理元素“就
5、是進(jìn)程、線程、以及作為類(lèi)的運(yùn)行時(shí)實(shí)例的對(duì)象等,而進(jìn)程調(diào)度、線程同步、進(jìn)程或線程通信等則進(jìn)一步反映物理架構(gòu)的動(dòng)態(tài)行為隨著分布式系統(tǒng)的流行,”物理層“的概念大家早已耳熟能詳。物理層和分布有關(guān),通過(guò)將一個(gè)整體的軟件系統(tǒng)劃分為不同的物理層,可以把它部署到分布在不同位置的多臺(tái)計(jì)算機(jī)上,從而為遠(yuǎn)程訪問(wèn)和負(fù)載均衡等問(wèn)題提供了手段。當(dāng)然,物理層是大粒度的物理單元,它最終是由粒度更小的組件、模塊、進(jìn)程等單元組成的。 物理架構(gòu)的應(yīng)用很廣泛。例如。架構(gòu)設(shè)計(jì)可能需要專(zhuān)門(mén)說(shuō)明數(shù)據(jù)是如何產(chǎn)生、存儲(chǔ)、共享和復(fù)制的,這時(shí)可以利于物理架構(gòu),展示軟件系統(tǒng)在運(yùn)行期間數(shù)據(jù)是由哪些運(yùn)行時(shí)單元如何產(chǎn)生的,數(shù)據(jù)又如何被使用、如何
6、被存儲(chǔ),哪些數(shù)據(jù)需要跨網(wǎng)絡(luò)復(fù)制和共享等方面的設(shè)計(jì)決策。由于人們對(duì)組成軟件系統(tǒng)的”物理元素“存在不同看法(如圖3所示),所以在實(shí)踐中物理架構(gòu)的用法比較寬泛,不同的人認(rèn)為的物理架構(gòu)也可能不盡相同。因此,我們?cè)诮涣骱蛯?shí)踐的過(guò)程中,應(yīng)注意區(qū)分物理架構(gòu)所指為何(也正是這個(gè)原因,實(shí)踐中所采用的基于多視圖的架構(gòu)設(shè)計(jì)方法往往包含更多的視圖,從而使每個(gè)架構(gòu)視圖的職責(zé)更加明確)從邏輯架構(gòu)和物理架構(gòu)到設(shè)計(jì)實(shí)現(xiàn)邏輯架構(gòu)和物理架構(gòu)師軟件架構(gòu)設(shè)計(jì)的重要方面。邏輯架構(gòu)致力于將軟件系統(tǒng)分解成不同的邏輯單元,并規(guī)定這些邏輯單元之間的交互接口和交互機(jī)制。物理架構(gòu)則更重視軟件系統(tǒng)運(yùn)行時(shí)的動(dòng)態(tài)結(jié)構(gòu),以及組成軟件系統(tǒng)的目標(biāo)程序如何部署
7、到硬件上。在后續(xù)的詳細(xì)設(shè)計(jì)和編程實(shí)現(xiàn)中,將貫徹和利用邏輯架構(gòu)和物理架構(gòu)設(shè)計(jì)中制定的架構(gòu)決策,如圖4所示。邏輯架構(gòu)中關(guān)于職責(zé)劃分的決策,體現(xiàn)為層、子系統(tǒng)、模塊等的劃分決定,從靜態(tài)視角為詳細(xì)設(shè)計(jì)和編程實(shí)現(xiàn)提供切實(shí)的指導(dǎo);有了分解就必然產(chǎn)生協(xié)作,邏輯架構(gòu)還規(guī)定了不同邏輯單元之間的交互接口和交互機(jī)制,而編程工作必須實(shí)現(xiàn)這些接口和機(jī)制。 所謂交互機(jī)制,是指不同軟件單元之間交互的手段。交互機(jī)制的例子有:方法調(diào)用、基于RMI的遠(yuǎn)程方法調(diào)用、發(fā)送消息等。至于物理架構(gòu),它關(guān)注的是軟件系統(tǒng)在計(jì)算機(jī)中運(yùn)行期間的情況。物理架構(gòu)設(shè)計(jì)方案中規(guī)定了軟件系統(tǒng)如何使用進(jìn)程和線程完成期望的并發(fā)處理、進(jìn)程線程這些主動(dòng)對(duì)象(Acti
8、ve Object)會(huì)調(diào)用哪些被動(dòng)對(duì)象(Passive Object)參與處理、交互機(jī)制(如消息)為何等等問(wèn)題,從而為詳細(xì)設(shè)計(jì)和編程實(shí)現(xiàn)提供了工作目標(biāo)的動(dòng)態(tài)視圖。設(shè)備調(diào)試系統(tǒng)案例簡(jiǎn)介下面通過(guò)一個(gè)實(shí)際案例的分析,來(lái)幫助領(lǐng)會(huì)邏輯架構(gòu)和物理架構(gòu)這兩種架構(gòu)視圖對(duì)架構(gòu)設(shè)計(jì)的指導(dǎo)作用。該案例是某型號(hào)設(shè)備調(diào)試系統(tǒng)。設(shè)備調(diào)試員通過(guò)使用該系統(tǒng),可以察看設(shè)備狀態(tài)(設(shè)備的狀態(tài)信息由專(zhuān)用的數(shù)據(jù)采集器實(shí)時(shí)采集)、發(fā)送調(diào)試命令。該系統(tǒng)的用例圖如圖5所示。邏輯架構(gòu)設(shè)計(jì)首先根據(jù)功能需求進(jìn)行初步設(shè)計(jì),進(jìn)行大粒度的職責(zé)劃分。如圖6所示。之后,還有很多與邏輯架構(gòu)設(shè)計(jì)相關(guān)的工作要做。例如,圖7所示的CRC卡描述了上面的三層架構(gòu)每一層
9、的職責(zé)與協(xié)作者:應(yīng)用層負(fù)責(zé)設(shè)備狀態(tài)的顯示,并提供模擬控制臺(tái)供用戶發(fā)送調(diào)試命令。應(yīng)用層使用通訊層和設(shè)備控制層進(jìn)行交互,但應(yīng)用層不知道通訊的細(xì)節(jié)。通訊層負(fù)責(zé)在RS232協(xié)議之上實(shí)現(xiàn)一套專(zhuān)用的“應(yīng)用協(xié)議”。當(dāng)應(yīng)用層發(fā)送來(lái)包含調(diào)試指令的協(xié)議包,由通訊層負(fù)責(zé)按RS232協(xié)議將之傳遞給設(shè)備控制層。當(dāng)設(shè)備控制層發(fā)送來(lái)原始數(shù)據(jù),由通訊層將之解釋成應(yīng)用協(xié)議包發(fā)送給應(yīng)用層。設(shè)備控制層負(fù)責(zé)對(duì)調(diào)試設(shè)備的具體控制,以及高頻度地從數(shù)據(jù)采集器讀取設(shè)備狀態(tài)數(shù)據(jù)。設(shè)備控制指令的物理規(guī)格被封裝在設(shè)備控制層內(nèi)部,讀取數(shù)采器的具體細(xì)節(jié)也被封裝在設(shè)備控制層內(nèi)部。圖7 用CRC卡描述每層的職責(zé)和協(xié)作者
10、物理架構(gòu)設(shè)計(jì)軟件最終要駐留、安裝或部署到硬件才能運(yùn)行。軟件的物理架構(gòu)關(guān)注“目標(biāo)程序及其依賴的運(yùn)行庫(kù)和系統(tǒng)軟件”最終如何安裝或部署到物理機(jī)器,以及如何部署機(jī)器和網(wǎng)絡(luò)來(lái)配合軟件系統(tǒng)的可靠性、可伸縮性等要求。多個(gè)邏輯層(Layer)可以映射到一個(gè)物理層(Tier),這是很多從事分布式開(kāi)發(fā)的讀者都了解的。在進(jìn)行設(shè)備調(diào)試系統(tǒng)的物理架構(gòu)設(shè)計(jì)之時(shí),也體現(xiàn)了這一點(diǎn)。如圖8所示,設(shè)備調(diào)試系統(tǒng)共包含2個(gè)物理層:桌面部分和嵌入部分。作為邏輯層的應(yīng)用層和通訊層最終將成為桌面部分,而設(shè)備控制層最終成為嵌入部分。圖8 邏輯層(Layer)到物理層(Tier)的映射物理層作為組成軟件系統(tǒng)
11、的物理單元,最終又要映射到具體的硬件,這也是物理架構(gòu)設(shè)計(jì)要考慮的,對(duì)于分布式軟件系統(tǒng)的設(shè)計(jì)而言尤其不可或缺。圖9展示了這一點(diǎn)。可以看出,設(shè)備控制部分駐留在調(diào)試機(jī)中(調(diào)試機(jī)是專(zhuān)用單板機(jī)),而桌面部分以常見(jiàn)的“Windows可執(zhí)行程序”的形式運(yùn)用于PC機(jī)之上。我們還可能根據(jù)具體情況的需要,通過(guò)物理架構(gòu)視圖更明確地表達(dá)具體目標(biāo)模塊及其通訊結(jié)構(gòu),如圖10所示。圖10 設(shè)備調(diào)試系統(tǒng)的物理架構(gòu)總結(jié)從簡(jiǎn)單系統(tǒng)到復(fù)雜系統(tǒng)的變化,對(duì)架構(gòu)設(shè)計(jì)的沖擊決不僅僅是量變的問(wèn)題。通過(guò)引入了軟件架構(gòu)視圖的概念,有助于軟件架構(gòu)師控制架構(gòu)設(shè)計(jì)的復(fù)雜性。軟件架構(gòu)視圖的概念和軟件架構(gòu)基本概念是完全相容的,后者針對(duì)軟件系統(tǒng)的整體目標(biāo),而前者針對(duì)特定目標(biāo)子集,這樣一來(lái),
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 礦石浮選工藝優(yōu)化-石墨滑石選礦考核試卷
- 畜禽繁殖力與遺傳改良研究考核試卷
- 紡織材料與纖維的研究與發(fā)展考核試卷
- 電腦系統(tǒng)優(yōu)化與提速技巧考核試卷
- 筆的制造生產(chǎn)計(jì)劃編制與執(zhí)行考核試卷
- 嘉興南湖學(xué)院《Python數(shù)據(jù)分析與應(yīng)用》2023-2024學(xué)年第二學(xué)期期末試卷
- 昆明理工大學(xué)津橋?qū)W院《CAD制圖》2023-2024學(xué)年第二學(xué)期期末試卷
- 咸陽(yáng)市2025年三年級(jí)數(shù)學(xué)第二學(xué)期期末學(xué)業(yè)水平測(cè)試試題含解析
- 日照職業(yè)技術(shù)學(xué)院《國(guó)際商務(wù)創(chuàng)業(yè)策劃案例分析》2023-2024學(xué)年第二學(xué)期期末試卷
- 寧德市周寧縣2024-2025學(xué)年數(shù)學(xué)四年級(jí)第二學(xué)期期末考試試題含解析
- “皖南八校”2024-2025學(xué)年高一第二學(xué)期期中考試-生物(乙)及答案
- 血站安全與衛(wèi)生培訓(xùn)課件
- 人教版四年級(jí)數(shù)學(xué)下冊(cè)期中期中測(cè)試卷(提優(yōu)卷)(含答案)
- 巖土真實(shí)考試題及答案
- 高考前的“加速度”高三下學(xué)期期中家長(zhǎng)會(huì)
- 畢業(yè)設(shè)計(jì)(論文)-板材碼垛機(jī)器人機(jī)械結(jié)構(gòu)設(shè)計(jì)
- 銷(xiāo)售人員合同范文
- 網(wǎng)絡(luò)安全教育主題班會(huì)
- 福建省泉州市2023年第29屆WMO競(jìng)賽六年級(jí)數(shù)學(xué)下學(xué)期競(jìng)賽試卷
- 各國(guó)貨幣知識(shí)
評(píng)論
0/150
提交評(píng)論