版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第十講軟件架構(gòu)設(shè)計(jì)第十講軟件架構(gòu)設(shè)計(jì)目標(biāo)管窺架構(gòu)設(shè)計(jì)現(xiàn)狀架構(gòu)設(shè)計(jì)方法如何確定架構(gòu)驅(qū)動(dòng)因素非功能需求設(shè)計(jì)方法論目標(biāo)
通用過(guò)程太籠統(tǒng)
通用過(guò)程太籠統(tǒng)架構(gòu)分析架構(gòu)分析可以被視為需求分析的規(guī)格化,其關(guān)注強(qiáng)烈影響”架構(gòu)“的需求。例如,為系統(tǒng)識(shí)別高度安全方面的需求。架構(gòu)分析的本質(zhì)是要識(shí)別影響架構(gòu)的因素,理解這些因素的可變性和優(yōu)先級(jí),并且解決這些問(wèn)題為什么架構(gòu)分析如此重要?因?yàn)樗兄冢航档驮谙到y(tǒng)設(shè)計(jì)中丟失某些重要因素的風(fēng)險(xiǎn)。避免在低優(yōu)先級(jí)的問(wèn)題上花費(fèi)過(guò)多的精力有助于產(chǎn)品與業(yè)務(wù)目標(biāo)的一致架構(gòu)分析架構(gòu)分析可以被視為需求分析的規(guī)格化,其關(guān)注強(qiáng)烈影響”架構(gòu)分析架構(gòu)分析(architectureanalysis)是在功能性需求(例如處理銷售等)的語(yǔ)境中,識(shí)別和處理系統(tǒng)非功能性需求(例如安全需求等)的活動(dòng)。其包括識(shí)別變化點(diǎn)和最具有可能性的進(jìn)化點(diǎn)。例:可靠性和容錯(cuò)需求如何影響設(shè)計(jì)?采購(gòu)子構(gòu)建的許可費(fèi)用如何影響收益率?可適應(yīng)性和可配置性需求如何影響設(shè)計(jì)?商標(biāo)名稱的選擇如何影響架構(gòu)?架構(gòu)分析架構(gòu)分析(architectureanalysis架構(gòu)分析識(shí)別和分析對(duì)架構(gòu)有影響的非功能性需求。雖然與功能性需求也有關(guān)系(特別是可變性方面),但是應(yīng)該對(duì)非功能性需求給予非常徹底的關(guān)注。通常,這些都被稱為架構(gòu)因素(或者稱為架構(gòu)驅(qū)動(dòng)者)對(duì)于這些在架構(gòu)方面具有重要影響的因素,需求分析可供選擇的辦法并創(chuàng)建解決這些影響的解決方案。這就是架構(gòu)決策。架構(gòu)分析識(shí)別和分析對(duì)架構(gòu)有影響的非功能性需求。雖然與功能性需架構(gòu)分析軟件系統(tǒng)的架構(gòu)將系統(tǒng)描述為計(jì)算組件及組件之間的交互”組件“可以指子系統(tǒng)、框架(Framework)、模塊、類等不同程度的軟件單元,它們可以擔(dān)負(fù)不同的計(jì)算職責(zé)。架構(gòu)分析軟件系統(tǒng)的架構(gòu)將系統(tǒng)描述為計(jì)算組件及組件之間的交互軟件架構(gòu)的要素:組件及組件之間的交互組件交互軟件架構(gòu)的要素:組件及組件之間的交互組件交互MVC架構(gòu)作為”組件+交互“的例子
ViewControllerModel創(chuàng)建讀取通知調(diào)用服務(wù)MVC架構(gòu)作為”組件+交互“的例子ViewControll關(guān)注點(diǎn)分離之道好的架構(gòu)設(shè)計(jì)必須把變化點(diǎn)錯(cuò)落有致地封裝到軟件系統(tǒng)的不同部分,為此,必須進(jìn)行關(guān)注點(diǎn)分離好的架構(gòu)必須使每個(gè)關(guān)注點(diǎn)相互分離,也就是說(shuō)系統(tǒng)中的一部分發(fā)生了改變,不會(huì)影響其他部分。即使需要改變,也能夠清晰地識(shí)別出哪些部分需要改變。如果需要擴(kuò)展架構(gòu),影響將會(huì)最小化。已經(jīng)可以工作的每個(gè)部分都將繼續(xù)工作。關(guān)注點(diǎn)分離之道好的架構(gòu)設(shè)計(jì)必須把變化點(diǎn)錯(cuò)落有致地封裝到軟件系P19圖2-4P19圖2-4P20圖2-5P20圖2-5P20圖2-6對(duì)于面向?qū)ο蟮能浖_(kāi)發(fā)而言,經(jīng)常有下列軟件單元:粒度最小的單元通常是“類”幾個(gè)類緊密協(xié)作形成“模塊”完成相對(duì)獨(dú)立的功能的多個(gè)模塊構(gòu)成了“子系統(tǒng)”多個(gè)子系統(tǒng)相互配合才能滿足一個(gè)完整應(yīng)用的需求,從而構(gòu)成了軟件“系統(tǒng)”一個(gè)大型企業(yè)往往使用多套系統(tǒng),多套系統(tǒng)通過(guò)互操作形成“集成系統(tǒng)”類、模塊、子系統(tǒng)、系統(tǒng)、集成系統(tǒng),都是軟件單元的具體形態(tài),只不過(guò)粒度不同罷了P20圖2-6P21圖2-7P21圖2-7P22圖2-8P22圖2-8框架是軟件,架構(gòu)不是軟件框架是一種特殊的軟件,它并不能提供完整無(wú)缺的解決方案,而是為你構(gòu)建解決方案提供良好的基礎(chǔ)??蚣苁前氤善贰5湫偷?,框架是系統(tǒng)或子系統(tǒng)的半成品;框架中的服務(wù)可以被最終應(yīng)用系統(tǒng)直接調(diào)用,而框架中的擴(kuò)展點(diǎn)是供應(yīng)用開(kāi)發(fā)人員定制的“可變化點(diǎn)”。P24圖2-9框架是軟件,架構(gòu)不是軟件框架和架構(gòu)的關(guān)系P25圖2-10框架和架構(gòu)的關(guān)系P25圖2-10理解架構(gòu)真實(shí)的軟件其實(shí)是“由組件遞歸組合而成”的:組件的粒度可以很小,也可以很大;任何粒度的組件都可以組合成粒度更大的整體。即所謂的粒度多樣性問(wèn)題組件粒度的界定,必須在具體的實(shí)踐上下文中才有意義;你的大粒度組件,對(duì)我而言可能是原子組件。即所謂的粒度相對(duì)性問(wèn)題P27圖2-11圖2-12作為復(fù)合整體的軟件單元才有架構(gòu),架構(gòu)規(guī)定了它如何被設(shè)計(jì)的重要決策理解架構(gòu)真實(shí)的軟件其實(shí)是“由組件遞歸組合而成”的:回到實(shí)踐P28圖2-13回到實(shí)踐P28圖2-13框架VS.類庫(kù)P29圖2-14框架VS.類庫(kù)P29圖2-14框架的分類P31圖2-16框架的分類P31圖2-16框架的開(kāi)發(fā)過(guò)程框架的整個(gè)開(kāi)發(fā)過(guò)程,包括四個(gè)主要的階段,即分析階段、設(shè)計(jì)階段、實(shí)現(xiàn)階段和穩(wěn)定階段。P32圖2-17框架的開(kāi)發(fā)過(guò)程框架的整個(gè)開(kāi)發(fā)過(guò)程,包括四個(gè)主要的階段,即分析架構(gòu)設(shè)計(jì)的5視圖法好的方法如路標(biāo),對(duì)實(shí)踐者有啟發(fā)和指引作用。軟件架構(gòu)師的工作:要滿足性能、持續(xù)可用性等方面的需求,架構(gòu)師必須深入研究軟件系統(tǒng)運(yùn)行期間的情況、制定相應(yīng)的設(shè)計(jì)決策,這些需求被稱為軟件的“運(yùn)行期質(zhì)量屬性”;而要滿足可擴(kuò)展性、可重用性等方面的需求,則要求架構(gòu)師深入研究軟件系統(tǒng)開(kāi)發(fā)期間的情況,制定相應(yīng)的設(shè)計(jì)決策,這些需求被稱為軟件的“開(kāi)發(fā)期質(zhì)量屬性”;約束是一類特殊的需求,帶有一定強(qiáng)制性,架構(gòu)師制定的架構(gòu)決策必須滿足這些限制;為了滿足功能需求,架構(gòu)師必須規(guī)劃組成軟件系統(tǒng)的所有模塊,為他們分配不同職責(zé),使這些模塊可以通過(guò)協(xié)作完成功能需求架構(gòu)設(shè)計(jì)的5視圖法好的方法如路標(biāo),對(duì)實(shí)踐者有啟發(fā)和指引作用。架構(gòu)設(shè)計(jì)的5視圖法軟件架構(gòu)師必須明確區(qū)分功能需求、約束、運(yùn)行期質(zhì)量屬性和開(kāi)發(fā)期質(zhì)量屬性等不同種類的需求,基于多視圖的架構(gòu)設(shè)計(jì)方法在一定程度上將各類需求分別對(duì)待,通過(guò)不同的架構(gòu)設(shè)計(jì)視圖分別滿足它們,從而確保重要的需求一一被滿足。架構(gòu)設(shè)計(jì)5視圖,包含了邏輯架構(gòu)、開(kāi)發(fā)架構(gòu)、運(yùn)行架構(gòu)、物理架構(gòu)、數(shù)據(jù)架構(gòu)等5個(gè)架構(gòu)設(shè)計(jì)視圖P64圖5-1架構(gòu)設(shè)計(jì)的5視圖法軟件架構(gòu)師必須明確區(qū)分功能需求、約束、運(yùn)行架構(gòu)設(shè)計(jì)的5視圖法邏輯架構(gòu):邏輯架構(gòu)關(guān)注功能,不僅包括用戶可見(jiàn)的功能,還包括為實(shí)現(xiàn)用戶功能而必須提供的“輔助功能模塊”;它們可能是邏輯層、功能模塊和類等開(kāi)發(fā)架構(gòu):開(kāi)發(fā)架構(gòu)關(guān)注程序包,不僅包括要編寫的源程序,還包括可以直接使用的第三方SDK和現(xiàn)成框架、類庫(kù),以及開(kāi)發(fā)的系統(tǒng)將運(yùn)行于其上的系統(tǒng)軟件或中間件。開(kāi)發(fā)架構(gòu)和邏輯架構(gòu)之間可能存在一定的映射關(guān)系:比如邏輯架構(gòu)中的邏輯層一般會(huì)映射到開(kāi)發(fā)結(jié)構(gòu)中的多個(gè)程序包;再比如開(kāi)發(fā)架構(gòu)中的源碼文件可以包含邏輯架構(gòu)中的一到多個(gè)類(在C++里一個(gè)源碼文件可以包含多個(gè)類,即使在Java里一個(gè)源碼文件也可以同時(shí)包含一個(gè)類和幾個(gè)內(nèi)部類運(yùn)行架構(gòu):運(yùn)行架構(gòu)關(guān)注進(jìn)程、線程、對(duì)象等運(yùn)行時(shí)概念,以及相關(guān)的并發(fā)、同步、通信等問(wèn)題。運(yùn)行架構(gòu)和開(kāi)發(fā)架構(gòu)的關(guān)系:開(kāi)發(fā)架構(gòu)一般偏重程序包在編譯使其的靜態(tài)依賴關(guān)系,而這些程序運(yùn)行起來(lái)之后會(huì)表現(xiàn)為對(duì)象、線程、進(jìn)程,運(yùn)行架構(gòu)比較關(guān)注的是這些運(yùn)行時(shí)單元的交互問(wèn)題物理架構(gòu):物理架構(gòu)關(guān)注“目標(biāo)程序及其依賴的運(yùn)行庫(kù)和系統(tǒng)軟件”最終如何安裝或部署到物理機(jī)器,以及如何部署機(jī)器和網(wǎng)絡(luò)來(lái)配合軟件系統(tǒng)的可靠性、可伸縮性等要求。物理架構(gòu)和運(yùn)行架構(gòu)的關(guān)系:運(yùn)行架構(gòu)特別關(guān)注目標(biāo)程序的動(dòng)態(tài)執(zhí)行情況,而物理架構(gòu)重視目標(biāo)程序的靜態(tài)位置問(wèn)題:物理架構(gòu)還要考慮軟件系統(tǒng)和包括硬件在內(nèi)的整個(gè)IT系統(tǒng)之間是如何相互影響的數(shù)據(jù)架構(gòu):數(shù)據(jù)架構(gòu)關(guān)注持久化數(shù)據(jù)的存儲(chǔ)方案,不僅包括實(shí)體及實(shí)體關(guān)系的數(shù)據(jù)存儲(chǔ)格式,還可能包括數(shù)據(jù)傳遞、數(shù)據(jù)復(fù)制和數(shù)據(jù)同步等策略。數(shù)據(jù)架構(gòu)和物理架構(gòu)的關(guān)系:對(duì)于很多集成系統(tǒng),數(shù)據(jù)需要在不同系統(tǒng)之間傳遞、復(fù)制和暫存,這往往要涉及到不同的物理機(jī)器;也就是說(shuō),如果需要,可以把數(shù)據(jù)放在物理架構(gòu)之中考慮,以便體現(xiàn)集成系統(tǒng)的數(shù)據(jù)分布與傳遞特征。架構(gòu)設(shè)計(jì)的5視圖法邏輯架構(gòu):邏輯架構(gòu)關(guān)注功能,不僅包括用戶可架構(gòu)設(shè)計(jì)的5視圖法P65圖5-2架構(gòu)設(shè)計(jì)的5視圖法P65圖5-2MySql的概念性架構(gòu)QueryEngineTransactionControlBufferManagerTransactionControlTransactionControlDepends-onLegendMySql的概念性架構(gòu)QueryTransactionBuf軟件架構(gòu)設(shè)計(jì)課件界面設(shè)計(jì)需求分析時(shí)間工作內(nèi)容需求分析期間開(kāi)始界面設(shè)計(jì)啟發(fā)需求界面設(shè)計(jì)需求分析時(shí)間工作內(nèi)容需求分析期間開(kāi)始需求分析領(lǐng)域建模為交流提供公共的領(lǐng)域詞匯提供探索問(wèn)題領(lǐng)域的語(yǔ)境需求分析領(lǐng)域建模為交流提供公共的領(lǐng)域詞匯提供探索問(wèn)題領(lǐng)域的語(yǔ)項(xiàng)目啟動(dòng)領(lǐng)域建模需求分析架構(gòu)設(shè)計(jì)詳細(xì)設(shè)計(jì)詳細(xì)設(shè)計(jì)詳細(xì)設(shè)計(jì)項(xiàng)目啟動(dòng)領(lǐng)域建模需求分析架構(gòu)設(shè)計(jì)詳細(xì)設(shè)計(jì)詳細(xì)設(shè)計(jì)詳細(xì)設(shè)計(jì)需求捕獲重新認(rèn)識(shí)需求詳述設(shè)計(jì)引起變更促成設(shè)計(jì)決策變更沖擊設(shè)計(jì)需求捕獲重新認(rèn)識(shí)關(guān)鍵需求其余需求設(shè)計(jì)變更性小變更性大決定架構(gòu)驗(yàn)證架構(gòu)需求捕獲重新認(rèn)識(shí)需求詳述設(shè)計(jì)引起變更促成設(shè)計(jì)決策變更沖擊設(shè)計(jì)P200表14-2P200表14-2概念性架構(gòu)實(shí)際架構(gòu)開(kāi)發(fā)實(shí)現(xiàn)關(guān)鍵設(shè)計(jì)元素關(guān)鍵交互機(jī)制邏輯架構(gòu)數(shù)據(jù)架構(gòu)開(kāi)發(fā)架構(gòu)運(yùn)行架構(gòu)物理架構(gòu)詳細(xì)設(shè)計(jì)編碼實(shí)現(xiàn)概念性架構(gòu)實(shí)際架構(gòu)開(kāi)發(fā)實(shí)現(xiàn)關(guān)鍵設(shè)計(jì)元素邏輯架構(gòu)數(shù)據(jù)架構(gòu)開(kāi)發(fā)基于5視力方法進(jìn)行架構(gòu)細(xì)化領(lǐng)域模型關(guān)鍵需求概念架構(gòu)約束架構(gòu)方案經(jīng)驗(yàn)基于5視力方法領(lǐng)域模型關(guān)鍵需求概念架構(gòu)約束架構(gòu)方案經(jīng)驗(yàn)分析模型問(wèn)題空間解空間設(shè)計(jì)模型系統(tǒng)分析員系統(tǒng)設(shè)計(jì)師《描述》《描述》《描述》《描述》分析模型問(wèn)題空間解空間設(shè)計(jì)模型系統(tǒng)分析員系統(tǒng)設(shè)計(jì)師《描述》《
方法缺少針對(duì)性
方法缺少針對(duì)性
設(shè)計(jì)層次論
設(shè)計(jì)層次論
架構(gòu)設(shè)計(jì)方法
在OO過(guò)程中的位置
在OO過(guò)程中的位置
什么是對(duì)架構(gòu)關(guān)鍵的需求包括功能需求、質(zhì)量(屬性)需求、商業(yè)需求三類任何功能需求,都是由一條特定的“模塊協(xié)作鏈”完成的。對(duì)軟件架構(gòu)關(guān)鍵的功能需求,就是它涉及(或串起)的模塊最多、最典型的功能需求。對(duì)架構(gòu)至關(guān)重要的質(zhì)量屬性需求是那些經(jīng)過(guò)權(quán)衡取舍、最終決定重點(diǎn)支持的質(zhì)量屬性需求。商業(yè)需求又稱業(yè)務(wù)需求(其實(shí)對(duì)應(yīng)的英文都為BusinessRequirement)。它關(guān)注:客戶群、企業(yè)現(xiàn)狀、未來(lái)發(fā)展預(yù)算、立項(xiàng)包括開(kāi)發(fā)、運(yùn)營(yíng)、維護(hù)在內(nèi)的整個(gè)軟件生命周期因素商業(yè)層面的目標(biāo)、期望和限制等
什么是對(duì)架構(gòu)關(guān)鍵的需求
什么是對(duì)架構(gòu)關(guān)鍵的需求
什么是對(duì)架構(gòu)關(guān)鍵的需求
具體步驟
具體步驟
第一步:全面整理需求研究《愿景和范圍文檔》研究《軟件需求規(guī)格說(shuō)明書》參加需求討論會(huì)詢問(wèn)客戶、用戶、領(lǐng)域?qū)<?、系統(tǒng)分析員突破字面意思分析遺漏需求
第一步:全面整理需求研究《愿景和范圍文檔》
第二步:分析約束性需求
第二步:分析約束性需求
商業(yè)需求因素(第二步)
商業(yè)需求因素(第二步)
商業(yè)需求因素(第二步)
商業(yè)需求因素(第二步)
案例:銀行系統(tǒng)(第二步)
案例:銀行系統(tǒng)(第二步)
第三步:確定關(guān)鍵功能需求核心功能–標(biāo)志:業(yè)務(wù)層的接口要反映這些功能必須實(shí)現(xiàn)的功能–往往來(lái)自甲方的要求。覆蓋了系統(tǒng)架構(gòu)的一些方面,而其他功能沒(méi)有例如……實(shí)現(xiàn)風(fēng)險(xiǎn)高的功能例如……
第三步:確定關(guān)鍵功能需求核心功能
第四步:確定關(guān)鍵質(zhì)量屬性需求考慮為了提高要開(kāi)發(fā)的軟件系統(tǒng)受認(rèn)可的程度,應(yīng)著重提高哪些方面的質(zhì)量屬性要求;接下來(lái),充分考慮這些質(zhì)量屬性之間的相互制約、或相互促進(jìn)關(guān)系,以調(diào)整不同質(zhì)量屬性的要求標(biāo)準(zhǔn)——例如,你可能會(huì)決定高性能要求最最重要,而可
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 循環(huán)系統(tǒng)疾病的康復(fù)護(hù)理
- 2026銀行半結(jié)構(gòu)化面試試題及答案
- 制作Excel培訓(xùn)教學(xué)課件
- 2026年化工企業(yè)設(shè)備安全員實(shí)操考核試題及答案
- 自粘聚合物改性瀝青防水卷材技術(shù)交底
- 導(dǎo)管內(nèi)穿線和槽盒內(nèi)敷線安裝施工技術(shù)交底
- 2026年保潔公司用工合同二篇
- 卷煙陳列培訓(xùn)
- 企業(yè)風(fēng)險(xiǎn)管理應(yīng)對(duì)手冊(cè)
- 行業(yè)報(bào)告標(biāo)準(zhǔn)化制作模板
- 新工會(huì)考試試題題庫(kù)工會(huì)考試試題題庫(kù)及答案解析
- 2025-2030中國(guó)道路標(biāo)志漆市場(chǎng)運(yùn)營(yíng)態(tài)勢(shì)分析與全面深度解析研究報(bào)告
- 佛山市離婚協(xié)議書范本
- HG+20231-2014化學(xué)工業(yè)建設(shè)項(xiàng)目試車規(guī)范
- 工地春節(jié)停工復(fù)工計(jì)劃安排方案
- 連接員題庫(kù)(全)題庫(kù)(855道)
- 單元學(xué)習(xí)項(xiàng)目序列化-選擇性必修下冊(cè)第三單元為例(主題匯報(bào)課件)-統(tǒng)編高中語(yǔ)文教材單元項(xiàng)目式序列化研究
- 黑布林英語(yǔ)漁夫和他的靈魂
- 初三畢業(yè)班寒假家長(zhǎng)會(huì)課件
- 電站組件清洗措施及方案
- 冀教版五年級(jí)英語(yǔ)下冊(cè)全冊(cè)同步練習(xí)一課一練
評(píng)論
0/150
提交評(píng)論