體系結(jié)構(gòu)的一般描述課件_第1頁(yè)
體系結(jié)構(gòu)的一般描述課件_第2頁(yè)
體系結(jié)構(gòu)的一般描述課件_第3頁(yè)
體系結(jié)構(gòu)的一般描述課件_第4頁(yè)
體系結(jié)構(gòu)的一般描述課件_第5頁(yè)
已閱讀5頁(yè),還剩56頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

Noparadigmisperfect...that'swhytherearesomanyofthem.Chapter10體系結(jié)構(gòu)的一般描述目前整個(gè)軟件界對(duì)于軟件體系結(jié)構(gòu)組成要素和結(jié)構(gòu)描述在軟件理論和工程實(shí)踐中,人們已經(jīng)在采用各種表達(dá)軟件構(gòu)成的描述形式,構(gòu)成了軟件設(shè)計(jì)結(jié)構(gòu)表達(dá)的一些規(guī)范、術(shù)語(yǔ)。不統(tǒng)一、不規(guī)范依賴(lài)于設(shè)計(jì)者的知識(shí)、經(jīng)驗(yàn)和技巧研究和建立形式化、規(guī)范化體系結(jié)構(gòu)描述是必須的目前還沒(méi)有關(guān)于體系結(jié)構(gòu)的普遍接受的分類(lèi)標(biāo)準(zhǔn),也沒(méi)有完善的體系結(jié)構(gòu)理論基于目前的軟件結(jié)構(gòu)的知識(shí),仍然可以列舉出一些常見(jiàn)和正在應(yīng)用的體系結(jié)構(gòu)術(shù)語(yǔ)和概念、列舉出在現(xiàn)實(shí)設(shè)計(jì)實(shí)踐中廣泛采用的軟件結(jié)構(gòu),術(shù)語(yǔ)、概念等Chapter10體系結(jié)構(gòu)的一般描述Contents:§10.1主子程序§10.2數(shù)據(jù)抽象和面向?qū)ο蟆?0.3部件,連接和連接器§10.4層次結(jié)構(gòu)§10.5理論的形式化方法§10.6軟件體系結(jié)構(gòu)集成環(huán)境§10.7軟件工程設(shè)計(jì)方法與體系結(jié)構(gòu)描述§10.1主程序與子程序結(jié)構(gòu)化思想和概念的提出后,主程序和子程序成為主要的程序設(shè)計(jì)思想。系統(tǒng)結(jié)構(gòu)被映射為主程序和一系列具有調(diào)用關(guān)系的子過(guò)程的集合。這是軟件設(shè)計(jì)最直接、最基本的結(jié)構(gòu)關(guān)系。更復(fù)雜的設(shè)計(jì)包含了庫(kù)、包、模塊、程序覆蓋等概念?!?0.1主程序與子程序主程序與子程序之優(yōu)點(diǎn)是一切軟件結(jié)構(gòu)的最本質(zhì)、最基礎(chǔ)的形式由于該模型基于設(shè)計(jì)模型,因此只要設(shè)計(jì)得當(dāng),代碼的效率可以得到最大限度的發(fā)揮和提高。主程序與子程序之缺點(diǎn)部件的連接關(guān)系不明顯。//簡(jiǎn)單的調(diào)用的背后實(shí)際上可能較為復(fù)雜。代碼維護(hù)性差。//簡(jiǎn)單的調(diào)用關(guān)系為維護(hù)帶來(lái)了困難。代碼的復(fù)用性差。//單純的過(guò)程不能反映復(fù)雜的結(jié)構(gòu),難以成為復(fù)用的單元和基礎(chǔ)。結(jié)論該方法存在的問(wèn)題導(dǎo)致了各種軟件設(shè)計(jì)方法的研究和提出,導(dǎo)致了對(duì)軟件體系結(jié)構(gòu)的研究和發(fā)展,OO方法是最主要的突破和發(fā)展。§10.2數(shù)據(jù)抽象和面向?qū)ο蟾攀鰯?shù)據(jù)抽象和面向?qū)ο笤O(shè)計(jì)是在主程序和子過(guò)程設(shè)計(jì)基礎(chǔ)上建立和發(fā)展起來(lái)的重要的軟件描述方法。數(shù)據(jù)抽象是面向?qū)ο笤O(shè)計(jì)的理論基礎(chǔ)類(lèi)和對(duì)象是該描述方法的基礎(chǔ)粒度,而非模塊或者包。本質(zhì)上沒(méi)有逃出主子程序的思想面向?qū)ο笠呀?jīng)成為大多數(shù)軟件系統(tǒng)設(shè)計(jì)的基礎(chǔ)和出發(fā)點(diǎn)。一些重要的軟件設(shè)計(jì)思想都是在此基礎(chǔ)上提出來(lái)的§10.2數(shù)據(jù)抽象和面向?qū)ο蠡疽c(diǎn)和特征類(lèi)是數(shù)據(jù)抽象的載體,類(lèi)由數(shù)據(jù)成員和操作方法構(gòu)成。(封裝-》ADT)對(duì)象是類(lèi)的實(shí)例,是軟件系統(tǒng)的可運(yùn)行實(shí)體。類(lèi)的繼承性是一種復(fù)用機(jī)制。如果基類(lèi)的行為已經(jīng)是可證明的,那么證明導(dǎo)出類(lèi)的正確性就變得簡(jiǎn)單多了。多態(tài)性是(1)同一個(gè)行為名,作用在不同的對(duì)象上,操作細(xì)節(jié)不同的性質(zhì);(2)同名方法對(duì)不同參數(shù)的處理過(guò)程不一樣。對(duì)象天然的并發(fā)性,作為獨(dú)立可運(yùn)行的實(shí)體,對(duì)象與對(duì)象之間是相互獨(dú)立、同時(shí)存在的,各具生存狀態(tài)的。動(dòng)態(tài)連接:關(guān)聯(lián)性在運(yùn)行時(shí)刻解決的機(jī)制。軟件系統(tǒng)概念的統(tǒng)一性、單一性,軟件系統(tǒng)中的一切都是對(duì)象?!?0.2數(shù)據(jù)抽象和面向?qū)ο髮?duì)象的實(shí)現(xiàn)類(lèi)型普通數(shù)據(jù)對(duì)象持久對(duì)象界面對(duì)象組件:實(shí)現(xiàn)軟件系統(tǒng)運(yùn)行模塊組裝和連接的技術(shù)。二進(jìn)制對(duì)象對(duì)象庫(kù):MFC、JFCetc.§10.2數(shù)據(jù)抽象和面向?qū)ο笤O(shè)計(jì)時(shí)的考慮在以下情況下可以考慮使用面向?qū)ο蟮脑O(shè)計(jì)方法設(shè)計(jì)問(wèn)題允許被分解成經(jīng)過(guò)封裝而獨(dú)立運(yùn)行,而又相互關(guān)聯(lián)的對(duì)象集合。相同的部件在系統(tǒng)中運(yùn)行可能出現(xiàn)多次。相同的部件可能在不同的系統(tǒng)中獲得應(yīng)用。系統(tǒng)開(kāi)發(fā)工作需要團(tuán)隊(duì)完成時(shí)候,把系統(tǒng)分割為對(duì)象的集合特別有利于工作的劃分和實(shí)施,有利于保證開(kāi)發(fā)的質(zhì)量。系統(tǒng)元素之間的關(guān)聯(lián)錯(cuò)綜復(fù)雜以至于妨礙了系統(tǒng)的清晰結(jié)構(gòu)和劃分。這時(shí)候嘗試以對(duì)象的觀點(diǎn)對(duì)系統(tǒng)進(jìn)行重新分解以期獲得突破?!?0.2數(shù)據(jù)抽象和面向?qū)ο髮?duì)象的運(yùn)行機(jī)制對(duì)象的生存表現(xiàn)在它所占用的存儲(chǔ)空間和狀態(tài)的變化,對(duì)象的運(yùn)行機(jī)制表現(xiàn)在:在發(fā)生方法調(diào)用和獲得處理器控制權(quán)之前,對(duì)象是處在生存的凍結(jié)狀態(tài)。激發(fā)對(duì)象處于活躍狀態(tài)的唯一方法就是調(diào)用其操作方法(消息機(jī)制)。在復(fù)雜系統(tǒng)中,對(duì)象不僅起到信息保存和傳遞的作用。它更是構(gòu)成系統(tǒng)存在和生命力表現(xiàn)的部件和連接關(guān)系的基礎(chǔ)形式。系統(tǒng)的各種部件都是對(duì)象,他們?cè)谙到y(tǒng)中起到的作用不同、發(fā)揮的效用的時(shí)刻不同、受到的控制不同,但在計(jì)算機(jī)系統(tǒng)中運(yùn)行都會(huì)受到操作系統(tǒng)的調(diào)用、外來(lái)事件的激發(fā)、其他部件的服務(wù)請(qǐng)求。§10.2數(shù)據(jù)抽象和面向?qū)ο竺嫦驅(qū)ο蟮膬?yōu)缺點(diǎn)優(yōu)點(diǎn)信息隱藏保證了對(duì)象行為的可靠性,CalledByMethods。受封裝的獨(dú)立運(yùn)行對(duì)象把數(shù)據(jù)和操作捆綁在一起,提高了對(duì)象作為一種模塊的內(nèi)聚力,使系統(tǒng)更容易分解成相互作用又相互獨(dú)立的對(duì)象集合。將操作請(qǐng)求和實(shí)現(xiàn)細(xì)節(jié)的分離使得可能在不影響調(diào)用者情況下改變操作的實(shí)現(xiàn),為系統(tǒng)的維護(hù)和升級(jí)提供了良好的條件。繼承性和封裝性提高了復(fù)用的可能性和方便性。缺點(diǎn)對(duì)象之間方法的調(diào)用必須知道被調(diào)用者的標(biāo)識(shí),造成系統(tǒng)維護(hù)上的困難如果系統(tǒng)分析初期就使用面向?qū)ο蟮姆椒▌t可能大大加劇系統(tǒng)分析的復(fù)雜性§10.3部件和連接器部件和連接器被公認(rèn)為體系結(jié)構(gòu)的兩大類(lèi)構(gòu)成部分部件是軟件功能設(shè)計(jì)和實(shí)現(xiàn)的載體連接器是專(zhuān)門(mén)承擔(dān)連接作用的特殊部件Contents部件連接連接器§10.3.1部件部件及其作用部件的實(shí)現(xiàn)形式部件的表達(dá)形式部件的類(lèi)別部件的特性§10.3.1部件部件及其作用部件是軟件系統(tǒng)的結(jié)構(gòu)塊單元,是軟件功能設(shè)計(jì)和實(shí)現(xiàn)的承載體。系統(tǒng)是部件及其關(guān)聯(lián)的集合。使用的時(shí)候:一個(gè)部件至少有一個(gè)接口,每一個(gè)接口代表對(duì)外聯(lián)系的一種角色,這是部件與外界發(fā)生聯(lián)系的窗口。設(shè)計(jì)系統(tǒng)時(shí)候:需要根據(jù)對(duì)部件的功能、與其他部件的關(guān)聯(lián)、對(duì)部件的特殊性要求,建立內(nèi)部處理和控制結(jié)構(gòu)。§10.3.1部件部件的實(shí)現(xiàn)形式簡(jiǎn)單的部件和復(fù)雜的部件軟件體系結(jié)構(gòu)層次模型的每個(gè)層次中都有關(guān)于部件的概念,他們是在基本的部件形式上經(jīng)過(guò)復(fù)合和概念提升而產(chǎn)生的§10.3.1部件部件的表達(dá)形式任何具有獨(dú)立結(jié)構(gòu)和行為特性的軟件體都可以成為部件不同軟件設(shè)計(jì)環(huán)境下服務(wù)于不同目的,部件具有不同的類(lèi)型或名稱(chēng)部件的一般表達(dá)形式部件接口1接口2接口3接口4接口N§10.3.1部件部件的類(lèi)別按照層次劃分:基礎(chǔ)部件、中層部件、高層部件按照應(yīng)用范圍分:專(zhuān)用部件、通用部件按照功能分:數(shù)據(jù)服務(wù)部件、功能服務(wù)部件、邏輯處理部件、界面部件etc.§10.3.1部件部件的特性部件的接口特性:完備性:使用者可以用它來(lái)完成部件應(yīng)該能夠完成的一切工作最小化:部件的接口或界面中任一操作,都不能由其他操作組合而實(shí)現(xiàn)正交性方便性效率部件的運(yùn)行特性中斷處理并行調(diào)度多用戶服務(wù)§10.3.1部件部件的特性部件的遠(yuǎn)程服務(wù)特性(服務(wù)部件)多源性請(qǐng)求代理機(jī)制部件的概念等級(jí)或?qū)哟胃邔哟尾考拍钪袑哟尾考拍畹蛯哟尾考拍罨陬I(lǐng)域的需求基于軟件發(fā)展技術(shù)基于硬件和軟件基礎(chǔ)面向應(yīng)用領(lǐng)域面向一般應(yīng)用共性面向?qū)崿F(xiàn)的基礎(chǔ)§10.3.2連接連接是部件間建立和維持行為關(guān)聯(lián)和信息傳遞的途徑。簡(jiǎn)單連接和復(fù)雜連接機(jī)制和協(xié)議機(jī)制:連接得以發(fā)生和維持的機(jī)制協(xié)議:連接能夠正確、無(wú)二義性、無(wú)沖突的進(jìn)行§10.3.2連接Contents:連接的種類(lèi)連接的實(shí)現(xiàn)機(jī)制連接的協(xié)議連接的特性連接的不匹配及其解決方法§10.3.2連接連接的種類(lèi)操作/過(guò)程調(diào)用、控制/事件/消息發(fā)送、數(shù)據(jù)傳送有無(wú)連接的返回信息和返回時(shí)間物理實(shí)現(xiàn)的難易程度同步異步§10.3.2連接連接的實(shí)現(xiàn)機(jī)制計(jì)算機(jī)硬件提供了實(shí)現(xiàn)一切連接的基礎(chǔ)高層次的連接建立在低層次的連接之上,實(shí)現(xiàn)連接在不同的層次上有不同的概念或方法無(wú)論多么復(fù)雜的連接關(guān)系,其實(shí)現(xiàn)都是基于以下基本連接機(jī)制:過(guò)程調(diào)用、中斷、I/O、DMA、事件、進(jìn)程、線程、共享、同步、并/串行、事件、并發(fā)etc.§10.3.2連接連接的協(xié)議協(xié)議是連接的規(guī)約,是實(shí)現(xiàn)有意義連接的保證。連接的規(guī)約是建立在物理層之上的有意義信息形式的表達(dá)規(guī)定。即使是簡(jiǎn)單的連接,也有協(xié)議在起作用?!?0.3.2連接連接的特性連接的方向性控制的渠道(主控、被控)和信息的傳送(傳送方、接收方)雙向性(復(fù)雜連接的雙工通訊)連接的角色角色是對(duì)連接的雙方所處地位不同的表達(dá)(調(diào)用者、被調(diào)用者;C/S;對(duì)等網(wǎng)的連接;中斷源、中斷處理者;)角色和地位的不同在連接的實(shí)施中表現(xiàn)為所進(jìn)行的操作不同、期望獲得的信息不同§10.3.2連接連接的特性連接的激發(fā)激發(fā)是指引起連接行為的方式連接的響應(yīng)特性響應(yīng)特性包括從動(dòng)方對(duì)連接請(qǐng)求處理的實(shí)時(shí)性、方式(同步、異步)、并發(fā)處理能力響應(yīng)特性大大增加了實(shí)現(xiàn)的復(fù)雜性主動(dòng)方的行為激發(fā):操作調(diào)用、事件觸發(fā)從動(dòng)方:狀態(tài)查詢(xún)、中斷§10.3.2連接連接的特性連接的不匹配和解決方法連接是使多個(gè)部件實(shí)現(xiàn)互聯(lián)和協(xié)同工作的機(jī)制產(chǎn)生連接沖突和不匹配的原因有多個(gè)方面:實(shí)現(xiàn)機(jī)制、協(xié)議、特性、硬件。解決方法:A與B部件的修改(直接修改A或者B、轉(zhuǎn)換器、代理、版本的一致)§10.3.3連接器任何部件都不是孤立存在的只有部件間的聯(lián)系才能發(fā)揮和實(shí)現(xiàn)部件設(shè)計(jì)的功能連接器是實(shí)現(xiàn)部件與部件之間聯(lián)系的特殊機(jī)制或特殊部件§10.3.3連接器連接器及其作用連接器是實(shí)現(xiàn)部件與部件之間聯(lián)系(調(diào)用、消息傳遞、數(shù)據(jù)轉(zhuǎn)換傳送、部件間實(shí)時(shí)并行的協(xié)調(diào)控制等)的特殊機(jī)制或特殊部件簡(jiǎn)單的連接器從結(jié)構(gòu)上退化為部件之間的直接連接,復(fù)雜的連接器需要專(zhuān)門(mén)的機(jī)構(gòu)來(lái)完成,所以連接器也是部件連接器承擔(dān)了實(shí)現(xiàn)部件間信息和行為關(guān)聯(lián)的作用,是系統(tǒng)復(fù)雜性的來(lái)源,對(duì)系統(tǒng)的各種性能有著重要的影響連接器作為特殊的部件與普通部件之間的區(qū)別§10.3.3連接器連接器的層次性連接器的最基本形式是由計(jì)算機(jī)硬件提供的。描述層次太低,使用這些基礎(chǔ)原始的連接形式直接描述系統(tǒng)上層復(fù)雜的聯(lián)系是不恰當(dāng)?shù)能浖w系結(jié)構(gòu)層次模型的每個(gè)層次中都有關(guān)于連接的概念,他們都是在基本的連接形式上經(jīng)過(guò)復(fù)合和概念提升而產(chǎn)生的,并且成為了復(fù)雜系統(tǒng)不同層次連接設(shè)計(jì)的出發(fā)點(diǎn)§10.3.3連接器連接器的表達(dá)形式部件A部件B最簡(jiǎn)單的連接器表現(xiàn)為部件間直接連接關(guān)系§10.3.3連接器連接器的表達(dá)形式部件A部件B連接器轉(zhuǎn)換/運(yùn)算§10.3.3連接器連接器的表達(dá)形式部件A部件BA端接收發(fā)送計(jì)算兩端連接硬件和傳送介質(zhì)B端接收發(fā)送計(jì)算§10.3.3連接器連接器的表達(dá)形式多端連接器端口之間的連同關(guān)系§10.3.3連接器連接器的特性連接的關(guān)系1:1、1:n、n:1、m:n連接的角色和方向連接的交互方式(信號(hào)、語(yǔ)言式)連接的可擴(kuò)展性連接的互操作性連接請(qǐng)求響應(yīng)特性連接請(qǐng)求的處理策略連接的代價(jià)、處理速度或能力§10.4層次結(jié)構(gòu)概述Layeringisoneofthemostcommontechniquesthatsoftwaredesignersusetobreakapartacomplicatedsoftwaresystem.Youseeitinmachinearchitectureswherelayersdescendfromaprogramminglanguagewithoperatingsystemcalls,intodevicedriversandCPUinstructionsets,intologicgatesinsidechips.NetworkinghasFTPlayeredontopofTCP,ontopofIP,ontopofEthernet.

層次化是一種復(fù)雜系統(tǒng)設(shè)計(jì)的帶普遍性的設(shè)計(jì)原則。層次化設(shè)計(jì)來(lái)源于2個(gè)原因事物總是從最簡(jiǎn)單的、帶基礎(chǔ)的層次開(kāi)始發(fā)生的來(lái)自眾多復(fù)雜軟件設(shè)計(jì)的實(shí)踐,幾乎所有的系統(tǒng)都是從層次化結(jié)構(gòu)建立起來(lái)的§10.4層次結(jié)構(gòu)Breakingdownasystemintolayershasanumberofimportantbenefits:Youcanunderstandasinglelayerasacoherentwholewithoutknowingmuchabouttheotherlayers.YoucanunderstandhowtobuildanFTPserviceontopofTCPwithoutknowingthedetailsofhowEthernetworksYoucansubstitutelayerswithalternativeimplementationsofthesamebasicservices.AnFTPservicecanrunoverEthernet,PPP,orwhateveracablecompanyuseswithoutchange.Youminimizedependenciesbetweenthelayers.Ifthecablecompanychangesitsphysicaltransmissionsystem,providingtheymakeIPworkwedon'thavetoalterourFTPservice.Layersmakegoodplacesforstandardization.TCPandIParestandardsbecausetheydefinehowtheirlayersshouldoperate.Onceyouhavealayerbuiltyoucanuseitformanyhigherlevelservices.SoTCP/IPisusedbyFTP,telnet,SSH,http.Otherwiseallofthesehigherlevelprotocolswouldhavetowritetheirownlowerlevelprotocols

§10.4層次結(jié)構(gòu)Layeringisanimportanttechnique,buttherearedownsides.Layersencapsulatesomethingswell,butnotall.Asaresultyousometimesgetcascadingchanges.TheclassicexampleofthisinalayeredenterpriseapplicationisaddingafieldthatneedstodisplayontheUI,beinthedatabase,andthusbeaddedtoeverylayerinbetween.Extralayerscanharmperformance.Ateverylayerthingstypicallyneedtobetransformedfromonerepresentationtoanother.Howevertheencapsulationofunderlyingfunctionoftengivesyouefficiencygainsthatmorethancompensate.Alayerthatcontrolstransactionscanbeoptimizedandwillthenmakeeverythingfaster.Butthehardestpartofalayeredarchitectureisdecidingwhatlayerstohaveandwhattheresponsibilityofeachlayershouldbe.§10.4層次結(jié)構(gòu)適應(yīng)的設(shè)計(jì)問(wèn)題一個(gè)系統(tǒng)的設(shè)計(jì)是由一系列高層和低層處理構(gòu)成的,高層操作依賴(lài)于低層,低層的操作要處理諸如硬件操作、傳感、從通信線路中讀信號(hào)等。系統(tǒng)需求描述了高層的任務(wù),高層任務(wù)不能直接映射在平臺(tái)上,因?yàn)樗麄兲珡?fù)雜不能在平臺(tái)上直接運(yùn)行。為了完成系統(tǒng)設(shè)計(jì)需要考慮的因素源代碼的修改會(huì)影響整個(gè)系統(tǒng),應(yīng)該被限定在一個(gè)部件內(nèi)部而不造成其他影響接口應(yīng)當(dāng)穩(wěn)定,甚至可以標(biāo)準(zhǔn)化系統(tǒng)的構(gòu)成應(yīng)該靈活、可更換將來(lái)有必要用當(dāng)前的低層設(shè)計(jì)來(lái)支持其他系統(tǒng)的設(shè)計(jì)穿越部件邊界的操作會(huì)降低系統(tǒng)性能系統(tǒng)的開(kāi)發(fā)需要?jiǎng)澐殖啥鄠€(gè)部分,比如由團(tuán)隊(duì)人員開(kāi)發(fā)時(shí)?!?0.4層次結(jié)構(gòu)設(shè)計(jì)結(jié)構(gòu)系統(tǒng)分成幾個(gè)層次并且他們一層層地疊加起來(lái)最下面的抽象層稱(chēng)為第一層,是系統(tǒng)的基礎(chǔ)最上面的層次一般稱(chēng)為N層這種結(jié)構(gòu)類(lèi)似于堆?;蛘哐笫[的層結(jié)構(gòu),每一獨(dú)立的層都保護(hù)著較低層次不被更高層次直接訪問(wèn)客戶N層N-1層1層層次模型的結(jié)構(gòu)關(guān)系使用§10.4層次結(jié)構(gòu)設(shè)計(jì)結(jié)構(gòu)(續(xù))3層2層1層部件3.1部件3.2部件3.3部件2.1部件2.2部件2.3部件1.1部件1.2部件1.3圖:層次模型結(jié)構(gòu)舉例通過(guò)設(shè)計(jì)統(tǒng)一的層調(diào)用接口對(duì)層進(jìn)行保護(hù)通過(guò)設(shè)計(jì)統(tǒng)一的層調(diào)用接口對(duì)層進(jìn)行保護(hù)通過(guò)設(shè)計(jì)統(tǒng)一的層調(diào)用接口對(duì)層進(jìn)行保護(hù)§10.4層次結(jié)構(gòu)層次結(jié)構(gòu)的特性調(diào)用請(qǐng)求總是將高層請(qǐng)求映射成低層的更基礎(chǔ)的操作。N

N-1……21(調(diào)用直到能完成任務(wù)為止)。自頂向下的信息和控制通常被描述成“請(qǐng)求”。從層1開(kāi)始的自底向上的操作鏈過(guò)程,通過(guò)這種方式數(shù)據(jù)穿過(guò)各層一直到達(dá)最高層(例如輸入設(shè)備檢測(cè)到輸入動(dòng)作)。自底向上的方式被描述成“通知”?!?0.4層次結(jié)構(gòu)ISO的OSI模型的通訊§10.4層次結(jié)構(gòu)層次結(jié)構(gòu)的實(shí)現(xiàn)定義為合適的分層而采取的抽象標(biāo)準(zhǔn),這種標(biāo)準(zhǔn)通常反映了與平臺(tái)概念的差距。例如,在軟件開(kāi)發(fā)中根據(jù)距硬件或應(yīng)用接近的程度建立層次。抽象標(biāo)準(zhǔn)決定模型層次的數(shù)目,層次的過(guò)少或者過(guò)多都導(dǎo)致問(wèn)題的發(fā)生。給各個(gè)層次命名和分配任務(wù)。規(guī)范服務(wù),層次之間要嚴(yán)格分開(kāi),確保沒(méi)有部件會(huì)跨越兩層以上。高層應(yīng)該擴(kuò)展以覆蓋更大的可用性,低層應(yīng)該設(shè)法保持瘦?。ǖ菇鹱炙降膹?fù)用)為每個(gè)層次定義接口(黑盒法、白盒法、灰盒法)構(gòu)建獨(dú)立的層次,工作重點(diǎn)盡可能放在層次之間的接口上。BrownFowlerPresentationPresentationController/MediatorApplicationControllerDomainDomainDataMappingDataMapperDataSourceDatasource§10.4層次結(jié)構(gòu)應(yīng)用實(shí)例TCP/IP沒(méi)有遵守ISO的OSITCP/IP及其他的通信協(xié)議的一個(gè)著名的特點(diǎn)是其標(biāo)準(zhǔn)化的功能接口的考慮被放在次要的位置,不同的實(shí)現(xiàn)廠家有意識(shí)造成的(更多的功能、靈活性能或者性能的考慮)TCP/IP的松散性對(duì)于應(yīng)用開(kāi)發(fā)者沒(méi)有影響虛擬協(xié)議得到了嚴(yán)格的遵守開(kāi)發(fā)者大多使用TCP或者UDP之上的層次,該層上有固定的接口,例如Socketetc.源于異構(gòu)Internet網(wǎng)絡(luò)的原動(dòng)力,各層的行為和在層間傳送的數(shù)據(jù)包的結(jié)構(gòu)在TCP/IP中比在功能接口中得到了更加嚴(yán)格的定義。FTPFTPTCPTCPIPIP以太網(wǎng)以太網(wǎng)FTP協(xié)議TCP協(xié)議IP協(xié)議以太網(wǎng)協(xié)議物理鏈路TCP/IP通信的層次模型§10.4層次結(jié)構(gòu)層次結(jié)構(gòu)的變種松弛的層次系統(tǒng)是分層模型的一種變種每層可以使用其下面所有層的服務(wù)而不僅僅是相鄰層的服務(wù)有些服務(wù)提供給相鄰的上一層,而其余的服務(wù)則提供給高于它的所有層靈活性和性能的提高以犧牲可維護(hù)性為代價(jià)經(jīng)常用于系統(tǒng)軟件,而不常用于應(yīng)用軟件的設(shè)計(jì)系統(tǒng)軟件比起應(yīng)用軟件來(lái)很少修改系統(tǒng)軟件對(duì)性能的要求高于可維護(hù)性的要求通過(guò)繼承的層次結(jié)構(gòu)常見(jiàn)于面向?qū)ο蟮某绦蛟O(shè)計(jì)中低層作為基類(lèi)較高層次通過(guò)繼承使用基類(lèi)提供的服務(wù)高層可根據(jù)需要改寫(xiě)低層提供的服務(wù)如果基類(lèi)改變了,則繼承該基類(lèi)的子類(lèi)都要重新編譯這種由繼承引入的依賴(lài)性稱(chēng)作脆弱的基類(lèi)問(wèn)題§10.4層次結(jié)構(gòu)層次結(jié)構(gòu)的應(yīng)用實(shí)例虛擬機(jī)JVM可以被當(dāng)成一個(gè)低層,為高層屏蔽了底層的細(xì)節(jié)和硬件的變化Java語(yǔ)言與平臺(tái)無(wú)關(guān)API接口封裝了低層頻繁使用的功能,通常是功能函數(shù)規(guī)范的簡(jiǎn)單集合例如,C語(yǔ)言中的printf()、fopen()etc.IS(信息系統(tǒng))商業(yè)軟件經(jīng)常使用兩層結(jié)構(gòu)(主框架交互系統(tǒng),C/S系統(tǒng))底層使用DB頂層完成不同的任務(wù)并進(jìn)行界面的展示由于用戶界面和數(shù)據(jù)處理模塊緊密的結(jié)合在一起帶來(lái)了一些問(wèn)題,在兩層之間引入第三層(領(lǐng)域?qū)印?wèn)題域的概念模型)§10.4層次結(jié)構(gòu)層次結(jié)構(gòu)的應(yīng)用實(shí)例(續(xù))WindowsNT根據(jù)Microkernel模式構(gòu)建的,執(zhí)行部件對(duì)應(yīng)于Microkernel的部件,是一個(gè)松弛的層析系統(tǒng),包括以下幾個(gè)層次系統(tǒng)服務(wù)層:子系統(tǒng)和NT執(zhí)行部件之間的接口層資源管理層:對(duì)象、安全、進(jìn)程、I/O、虛擬存儲(chǔ)、LPC內(nèi)核:負(fù)責(zé)基本功能,Int、E、Thread、多處理器同步HAL(硬件抽象層):隱藏了不同處理器間硬件的差異硬件層:NT松弛層模型的規(guī)則,處于效率的考慮,內(nèi)核和IO管理需要直接訪問(wèn)硬件§10.4層次結(jié)構(gòu)層次結(jié)構(gòu)的優(yōu)缺點(diǎn)優(yōu)點(diǎn)層次的復(fù)用性對(duì)標(biāo)準(zhǔn)化的支持,允許在不同層使用來(lái)自不同商家的產(chǎn)品依賴(lài)本地化,層次間的標(biāo)準(zhǔn)接口通常把代碼變化的影響限制在其所在的層次之內(nèi),這樣做便于支持系統(tǒng)的可移植性和可測(cè)試性可替換性,獨(dú)立層次的實(shí)現(xiàn)能夠被功能相同的模塊替換。(例如,硬件的可替換性)享用互操作性好處的代價(jià)是增加了程序開(kāi)銷(xiāo)。缺點(diǎn)改變行為的連鎖效應(yīng)。例如,在維護(hù)升級(jí)時(shí),如果必須在許多層次上做大量的工作。低效率。分層結(jié)構(gòu)通常比單一層次的結(jié)構(gòu)效率更低。例如,通信協(xié)議在從高層傳送信息時(shí)需要增加信息頭和尾。包含多于不必要的工作。如果低層次執(zhí)行某些高層次并不需要的設(shè)置重復(fù)的工作,對(duì)于軟件的整體性能就有消極的影響。高層請(qǐng)求通常會(huì)導(dǎo)致多次對(duì)低層次的同樣的請(qǐng)求,層次數(shù)太多還會(huì)在層次間產(chǎn)送變量和返回值時(shí)帶來(lái)額外的開(kāi)銷(xiāo)?!?0.5體系結(jié)構(gòu)的描述概述傳統(tǒng)的軟件工程大都采用圖、文本、表格和簡(jiǎn)單的符號(hào)集合來(lái)創(chuàng)建分析和設(shè)計(jì)系統(tǒng)的模型。采用形式化方法就是使用形如數(shù)學(xué)符號(hào)的形式化語(yǔ)法和語(yǔ)義來(lái)刻畫(huà)系統(tǒng)的功能行為和描述系統(tǒng)規(guī)約及設(shè)計(jì)。形式化方法是有爭(zhēng)議的。支持者:革命反對(duì)者:相當(dāng)?shù)睦щy而我們:是如此的不熟悉,以致難以判斷這些爭(zhēng)論使用形式化方法進(jìn)行體系結(jié)構(gòu)描述語(yǔ)言的描述、設(shè)計(jì)和開(kāi)發(fā)受到研究者的重視。精確復(fù)制的必然性,一如IntelCEO所言§10.5體系結(jié)構(gòu)的描述形式化基本概念定義:用于開(kāi)發(fā)計(jì)算機(jī)系統(tǒng)的形式化方法是描述系統(tǒng)性質(zhì)的基于數(shù)學(xué)的技術(shù)。如果一個(gè)方法有良好的數(shù)學(xué)基礎(chǔ),那么它就是形式化的。典型的是以形式化規(guī)約語(yǔ)言給出的。規(guī)約方法的目標(biāo):無(wú)二義性、一致性和完整性。傳統(tǒng)的軟件工程:圖形、符號(hào)、文字在系統(tǒng)實(shí)現(xiàn)的過(guò)程中存在的問(wèn)題形式的化的規(guī)約的方法§10.5體系結(jié)構(gòu)的描述體系結(jié)構(gòu)描述的分類(lèi)體系結(jié)構(gòu)的形式化方法建模、分析、驗(yàn)證體系結(jié)構(gòu)的描述語(yǔ)言ADL,建立在形式化的理論基礎(chǔ)之上Petri網(wǎng)、Z語(yǔ)言、狀態(tài)圖、CSPetc.語(yǔ)義嚴(yán)格、精確求精、驗(yàn)證、演化、分析ADL應(yīng)當(dāng)具備的特點(diǎn)嚴(yán)謹(jǐn)?shù)恼Z(yǔ)法、語(yǔ)義描述能力強(qiáng)有工具支持簡(jiǎn)單易懂不同的抽象級(jí)別靜態(tài)分析、動(dòng)態(tài)分析§10.5體系結(jié)構(gòu)的描述體系結(jié)構(gòu)的描述語(yǔ)言幾種體系結(jié)構(gòu)描述語(yǔ)言的提出組織和倡導(dǎo)者ADL語(yǔ)言提出組織倡導(dǎo)者ACMECarnegieMellonUniversityDavidGarlanAesopCarnegieMellonUniversityDavidGarlanMeta-HHoneywellTechnologyCenterStevenVestalRapide

StanfordUniversityDavidLuckhamSADLSRIMarkMoriconiUniconCarnegie

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論