版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、第五章 軟件體系結(jié)構(gòu)設(shè)計 5.1 軟件體系結(jié)構(gòu)軟件體系結(jié)構(gòu)n在軟件編碼之前,進行軟件的分析和設(shè)計,已成在軟件編碼之前,進行軟件的分析和設(shè)計,已成為軟件行業(yè)的標準做法。為軟件行業(yè)的標準做法。 n軟件體系結(jié)構(gòu)軟件體系結(jié)構(gòu)僅關(guān)注大型設(shè)計僅關(guān)注大型設(shè)計,為開發(fā)團隊的設(shè),為開發(fā)團隊的設(shè)計者提供指導(dǎo)。軟件體系結(jié)構(gòu)的設(shè)計過程是一個計者提供指導(dǎo)。軟件體系結(jié)構(gòu)的設(shè)計過程是一個具有多個步驟的過程,其主要任務(wù)是從信息需求具有多個步驟的過程,其主要任務(wù)是從信息需求中綜合出數(shù)據(jù)結(jié)構(gòu)、程序結(jié)構(gòu)、接口特征和過程中綜合出數(shù)據(jù)結(jié)構(gòu)、程序結(jié)構(gòu)、接口特征和過程細節(jié)。細節(jié)。 n結(jié)構(gòu)結(jié)構(gòu) 體系結(jié)構(gòu)設(shè)計定義體系結(jié)構(gòu)設(shè)計定義系統(tǒng)的構(gòu)件系統(tǒng)
2、的構(gòu)件、構(gòu)件打構(gòu)件打包的方式包的方式和和相互交互的方式相互交互的方式n附屬的功能附屬的功能 體系結(jié)構(gòu)設(shè)計描述設(shè)計出的體系體系結(jié)構(gòu)設(shè)計描述設(shè)計出的體系結(jié)構(gòu)如何實現(xiàn)功能、性能、可靠性、安全性、結(jié)構(gòu)如何實現(xiàn)功能、性能、可靠性、安全性、適應(yīng)性,以及其它的系統(tǒng)需求。適應(yīng)性,以及其它的系統(tǒng)需求。n可復(fù)用可復(fù)用 體系結(jié)構(gòu)設(shè)計應(yīng)描述為一種體系結(jié)構(gòu)設(shè)計應(yīng)描述為一種可復(fù)用可復(fù)用的的模式,能復(fù)用已有構(gòu)造塊,并可供以后類似系模式,能復(fù)用已有構(gòu)造塊,并可供以后類似系統(tǒng)族的設(shè)計使用。統(tǒng)族的設(shè)計使用。5.1 軟件體系結(jié)構(gòu)軟件體系結(jié)構(gòu)n5.1.1 軟件體系結(jié)構(gòu)的概念軟件體系結(jié)構(gòu)的概念n體系結(jié)構(gòu):是高層的建模,它描述事物最重要
3、體系結(jié)構(gòu):是高層的建模,它描述事物最重要的性質(zhì)。的性質(zhì)。nM.Shaw:軟件體系結(jié)構(gòu)軟件體系結(jié)構(gòu)定義為程序定義為程序/系統(tǒng)各系統(tǒng)各構(gòu)件的結(jié)構(gòu)以及它們之間的內(nèi)部關(guān)系和指導(dǎo)它構(gòu)件的結(jié)構(gòu)以及它們之間的內(nèi)部關(guān)系和指導(dǎo)它們的設(shè)計并隨時間而演變的原理和方針。們的設(shè)計并隨時間而演變的原理和方針。 5.1 軟件體系結(jié)構(gòu)軟件體系結(jié)構(gòu)nM.Shaw的具體觀點如下:的具體觀點如下:n第一,從結(jié)構(gòu)模式觀點上看,軟件體系結(jié)構(gòu)包第一,從結(jié)構(gòu)模式觀點上看,軟件體系結(jié)構(gòu)包括軟件構(gòu)件、構(gòu)件之間的聯(lián)系和系統(tǒng)構(gòu)造、方括軟件構(gòu)件、構(gòu)件之間的聯(lián)系和系統(tǒng)構(gòu)造、方式、約束、語義、分析、屬性、基本原理和系式、約束、語義、分析、屬性、基本原理
4、和系統(tǒng)需求。統(tǒng)需求。 5.1 軟件體系結(jié)構(gòu)軟件體系結(jié)構(gòu)n第二,框架模式觀點雖然與結(jié)構(gòu)觀點有相似點,第二,框架模式觀點雖然與結(jié)構(gòu)觀點有相似點,但前者更加強調(diào)系統(tǒng)的整體連貫性,主要針對但前者更加強調(diào)系統(tǒng)的整體連貫性,主要針對特定領(lǐng)域和問題,而不僅僅是研究系統(tǒng)的組成。特定領(lǐng)域和問題,而不僅僅是研究系統(tǒng)的組成。n第三,動態(tài)模型包括系統(tǒng)的總體配置的變化、第三,動態(tài)模型包括系統(tǒng)的總體配置的變化、建立建立/禁止預(yù)定義的通訊、互連通道和計算進禁止預(yù)定義的通訊、互連通道和計算進程等。程等。n第四,進程模式觀點強調(diào)軟件體系結(jié)構(gòu)中的構(gòu)第四,進程模式觀點強調(diào)軟件體系結(jié)構(gòu)中的構(gòu)造過程中的步驟和進程,在這一觀點下軟件體造
5、過程中的步驟和進程,在這一觀點下軟件體系結(jié)構(gòu)是一個進程描述的結(jié)果。系結(jié)構(gòu)是一個進程描述的結(jié)果。5.1 軟件體系結(jié)構(gòu)軟件體系結(jié)構(gòu)n軟件體系結(jié)構(gòu)是一個軟件系統(tǒng)的基本組織,軟件體系結(jié)構(gòu)是一個軟件系統(tǒng)的基本組織,它它體現(xiàn)在構(gòu)件、構(gòu)件間的相互關(guān)系以及構(gòu)件與環(huán)體現(xiàn)在構(gòu)件、構(gòu)件間的相互關(guān)系以及構(gòu)件與環(huán)境的關(guān)系中;它還包括指導(dǎo)系統(tǒng)設(shè)計和進化的境的關(guān)系中;它還包括指導(dǎo)系統(tǒng)設(shè)計和進化的原則原則。 n軟件體系結(jié)構(gòu)并非是可執(zhí)行的軟件,它是一種軟件體系結(jié)構(gòu)并非是可執(zhí)行的軟件,它是一種設(shè)計表示,通過該表示使得軟件體系結(jié)構(gòu)師能設(shè)計表示,通過該表示使得軟件體系結(jié)構(gòu)師能夠分析其所完成的設(shè)計是否滿足軟件需求,以夠分析其所完成的設(shè)
6、計是否滿足軟件需求,以減少軟件構(gòu)造過程中存在的風(fēng)險。減少軟件構(gòu)造過程中存在的風(fēng)險。 n5.1.2 為什么軟件體系結(jié)構(gòu)重要為什么軟件體系結(jié)構(gòu)重要n1)軟件體系結(jié)構(gòu)可以用于各風(fēng)險承擔(dān)者之間的溝通;)軟件體系結(jié)構(gòu)可以用于各風(fēng)險承擔(dān)者之間的溝通;n2)軟件體系結(jié)構(gòu)設(shè)計突出了早期設(shè)計的選擇,這些選)軟件體系結(jié)構(gòu)設(shè)計突出了早期設(shè)計的選擇,這些選擇對隨后的設(shè)計和實現(xiàn)工作乃至最終項目的成功影響擇對隨后的設(shè)計和實現(xiàn)工作乃至最終項目的成功影響深遠;深遠;n3)軟件體系結(jié)構(gòu)建立了一個相對較小、但易于理解和)軟件體系結(jié)構(gòu)建立了一個相對較小、但易于理解和掌握的模型,該模型描述了系統(tǒng)如何構(gòu)成,以及這些掌握的模型,該模型描
7、述了系統(tǒng)如何構(gòu)成,以及這些構(gòu)件如何一起工作;構(gòu)件如何一起工作;n4)軟件體系結(jié)構(gòu)設(shè)計結(jié)論是軟件測試的基礎(chǔ)與前提,)軟件體系結(jié)構(gòu)設(shè)計結(jié)論是軟件測試的基礎(chǔ)與前提,在軟件體系結(jié)構(gòu)上考慮測試,其目的是找出體系結(jié)構(gòu)在軟件體系結(jié)構(gòu)上考慮測試,其目的是找出體系結(jié)構(gòu)設(shè)計的錯誤和缺陷,產(chǎn)生指導(dǎo)代碼測試的測試計劃和設(shè)計的錯誤和缺陷,產(chǎn)生指導(dǎo)代碼測試的測試計劃和測試用例;測試用例;n5)軟件體系結(jié)構(gòu)對新的團隊成員的培訓(xùn)是必不可少的,)軟件體系結(jié)構(gòu)對新的團隊成員的培訓(xùn)是必不可少的,這可讓新成員快速跟上開發(fā)進度;此外,軟件體系結(jié)這可讓新成員快速跟上開發(fā)進度;此外,軟件體系結(jié)構(gòu)的培訓(xùn)還對客戶、管理者、測試者和操作員有用。
8、構(gòu)的培訓(xùn)還對客戶、管理者、測試者和操作員有用。5.2數(shù)據(jù)體系結(jié)構(gòu)設(shè)計數(shù)據(jù)體系結(jié)構(gòu)設(shè)計n在軟件應(yīng)用中,數(shù)據(jù)體系結(jié)構(gòu)對軟件體系結(jié)構(gòu)的在軟件應(yīng)用中,數(shù)據(jù)體系結(jié)構(gòu)對軟件體系結(jié)構(gòu)的設(shè)計有深遠的影響,其具體表現(xiàn)在:設(shè)計有深遠的影響,其具體表現(xiàn)在:n1)在)在軟件體系結(jié)構(gòu)設(shè)計層軟件體系結(jié)構(gòu)設(shè)計層,數(shù)據(jù)的結(jié)構(gòu)設(shè)計是,數(shù)據(jù)的結(jié)構(gòu)設(shè)計是軟件體系結(jié)構(gòu)設(shè)計的一個重要方面;軟件體系結(jié)構(gòu)設(shè)計的一個重要方面;n2)在)在構(gòu)件設(shè)計層構(gòu)件設(shè)計層,數(shù)據(jù)結(jié)構(gòu)及其操縱它們的相,數(shù)據(jù)結(jié)構(gòu)及其操縱它們的相關(guān)算法的設(shè)計對創(chuàng)建高質(zhì)量的應(yīng)用是至關(guān)重要的;關(guān)算法的設(shè)計對創(chuàng)建高質(zhì)量的應(yīng)用是至關(guān)重要的;n3)在)在應(yīng)用層應(yīng)用層,數(shù)據(jù)模型到數(shù)據(jù)庫的映
9、射,是實,數(shù)據(jù)模型到數(shù)據(jù)庫的映射,是實現(xiàn)應(yīng)用系統(tǒng)業(yè)務(wù)目標的關(guān)鍵;現(xiàn)應(yīng)用系統(tǒng)業(yè)務(wù)目標的關(guān)鍵;n4)在)在業(yè)務(wù)層業(yè)務(wù)層,存在于數(shù)據(jù)庫或數(shù)據(jù)倉庫中的數(shù),存在于數(shù)據(jù)庫或數(shù)據(jù)倉庫中的數(shù)據(jù)是進行數(shù)據(jù)挖掘和知識發(fā)現(xiàn)的基礎(chǔ),該內(nèi)容對據(jù)是進行數(shù)據(jù)挖掘和知識發(fā)現(xiàn)的基礎(chǔ),該內(nèi)容對業(yè)務(wù)系統(tǒng)的成功具有舉足輕重的影響。業(yè)務(wù)系統(tǒng)的成功具有舉足輕重的影響。 5.2數(shù)據(jù)體系結(jié)構(gòu)設(shè)計數(shù)據(jù)體系結(jié)構(gòu)設(shè)計n數(shù)據(jù)體系結(jié)構(gòu)設(shè)計出現(xiàn)在高抽象層,構(gòu)建表示數(shù)據(jù)體系結(jié)構(gòu)設(shè)計出現(xiàn)在高抽象層,構(gòu)建表示數(shù)據(jù)或信息的模型。這一數(shù)據(jù)模型被逐步求精數(shù)據(jù)或信息的模型。這一數(shù)據(jù)模型被逐步求精為特定的實現(xiàn)表示,該表示可以被應(yīng)用系統(tǒng)處為特定的實現(xiàn)表示,該表示可以被應(yīng)
10、用系統(tǒng)處理。理。n構(gòu)件級的數(shù)據(jù)設(shè)計關(guān)注于被一個或多個軟件構(gòu)構(gòu)件級的數(shù)據(jù)設(shè)計關(guān)注于被一個或多個軟件構(gòu)件直接訪問的數(shù)據(jù)結(jié)構(gòu)表示,在實際應(yīng)用中,件直接訪問的數(shù)據(jù)結(jié)構(gòu)表示,在實際應(yīng)用中,數(shù)據(jù)設(shè)計在分析模型的創(chuàng)建期間就已經(jīng)開始。數(shù)據(jù)設(shè)計在分析模型的創(chuàng)建期間就已經(jīng)開始。 5.3 軟件體系結(jié)構(gòu)風(fēng)格 n軟件體系結(jié)構(gòu)風(fēng)格軟件體系結(jié)構(gòu)風(fēng)格(style)又稱軟件體系結(jié))又稱軟件體系結(jié)構(gòu)習(xí)慣模式(構(gòu)習(xí)慣模式(idiomatic paradigm)。體系)。體系結(jié)構(gòu)風(fēng)格定義了一個系統(tǒng)家族,即一個體系結(jié)結(jié)構(gòu)風(fēng)格定義了一個系統(tǒng)家族,即一個體系結(jié)構(gòu)定義一個構(gòu)定義一個詞匯表詞匯表和一組和一組約束約束:詞匯表中包含:詞匯表中包含
11、一些構(gòu)件和連接器類型,而這組約束指出系統(tǒng)一些構(gòu)件和連接器類型,而這組約束指出系統(tǒng)是如何將這些構(gòu)件和連接器組合起來的。是如何將這些構(gòu)件和連接器組合起來的。nDefine classes of software systems based on the form of the solution and which can be applied across problem domain. 5.3 軟件體系結(jié)構(gòu)風(fēng)格 常見的軟件體系結(jié)構(gòu)風(fēng)格涉及:常見的軟件體系結(jié)構(gòu)風(fēng)格涉及:n設(shè)計詞匯表是什么?或者構(gòu)件和連接器的類型設(shè)計詞匯表是什么?或者構(gòu)件和連接器的類型是什么?是什么?n可容許的結(jié)構(gòu)模式是什么?可容許
12、的結(jié)構(gòu)模式是什么?n基本的計算模型是什么?基本的計算模型是什么?n風(fēng)格的基本不變性是什么?風(fēng)格的基本不變性是什么?n其使用的常見例子是什么?其使用的常見例子是什么?n使用此風(fēng)格的優(yōu)缺點是什么?使用此風(fēng)格的優(yōu)缺點是什么?n其常見特例是什么?其常見特例是什么?5.3 軟件體系結(jié)構(gòu)風(fēng)格 n體系結(jié)構(gòu)風(fēng)格的四要素內(nèi)容體系結(jié)構(gòu)風(fēng)格的四要素內(nèi)容n詞匯表;詞匯表;n配置規(guī)則;配置規(guī)則;n語義解釋原則語義解釋原則n對基于這種風(fēng)格的系統(tǒng)所進行的分析。對基于這種風(fēng)格的系統(tǒng)所進行的分析。 5.3 軟件體系結(jié)構(gòu)風(fēng)格 對體系結(jié)構(gòu)風(fēng)格有三種不同的觀點。對體系結(jié)構(gòu)風(fēng)格有三種不同的觀點。n第一種觀點,體系結(jié)構(gòu)風(fēng)格是一種語言。第
13、一種觀點,體系結(jié)構(gòu)風(fēng)格是一種語言。n第二種觀點,體系結(jié)構(gòu)風(fēng)格是一種類型系統(tǒng)。第二種觀點,體系結(jié)構(gòu)風(fēng)格是一種類型系統(tǒng)。n第三種觀點,體系結(jié)構(gòu)風(fēng)格是一種理論。第三種觀點,體系結(jié)構(gòu)風(fēng)格是一種理論。 有原則地使用軟件體系結(jié)構(gòu)風(fēng)格具有如下意義:有原則地使用軟件體系結(jié)構(gòu)風(fēng)格具有如下意義:n它促進了設(shè)計的復(fù)用,使得一些經(jīng)過實踐證實它促進了設(shè)計的復(fù)用,使得一些經(jīng)過實踐證實的解決方案能夠可靠地解決新問題。的解決方案能夠可靠地解決新問題。n它能夠帶來顯著的代碼復(fù)用,使得體系結(jié)構(gòu)風(fēng)它能夠帶來顯著的代碼復(fù)用,使得體系結(jié)構(gòu)風(fēng)格中的不變部分可共享同一個解決方案。格中的不變部分可共享同一個解決方案。n便于設(shè)計者之間的交流與
14、理解。便于設(shè)計者之間的交流與理解。n通過對標準風(fēng)格的使用支持了互操作性,以便通過對標準風(fēng)格的使用支持了互操作性,以便于相關(guān)工具的集成。于相關(guān)工具的集成。n在限定了設(shè)計空間的情況下,能夠?qū)ο嚓P(guān)風(fēng)格在限定了設(shè)計空間的情況下,能夠?qū)ο嚓P(guān)風(fēng)格作出分析。作出分析。n能夠?qū)μ囟ǖ娘L(fēng)格提供可視化支持。能夠?qū)μ囟ǖ娘L(fēng)格提供可視化支持。n與此同時,人們目前尚不能準確回答的問題是:與此同時,人們目前尚不能準確回答的問題是:n系統(tǒng)設(shè)計的哪個要點可以用風(fēng)格來描述;系統(tǒng)設(shè)計的哪個要點可以用風(fēng)格來描述;n能否用系統(tǒng)的特性來比較不同的風(fēng)格,如何確能否用系統(tǒng)的特性來比較不同的風(fēng)格,如何確定用不同的風(fēng)格設(shè)計系統(tǒng)之間的互操作;定
15、用不同的風(fēng)格設(shè)計系統(tǒng)之間的互操作;n能否開發(fā)出通用的工具來擴展風(fēng)格;能否開發(fā)出通用的工具來擴展風(fēng)格;n如何為一個給定的問題選擇恰當(dāng)?shù)捏w系結(jié)構(gòu)風(fēng)如何為一個給定的問題選擇恰當(dāng)?shù)捏w系結(jié)構(gòu)風(fēng)格,或者如何通過組合現(xiàn)有的若干風(fēng)格來產(chǎn)生格,或者如何通過組合現(xiàn)有的若干風(fēng)格來產(chǎn)生一個新的風(fēng)格。一個新的風(fēng)格。1. 管道與過濾器(Pipes and Pipes and FiltersFilters)n基本結(jié)構(gòu)與詞匯表基本結(jié)構(gòu)與詞匯表n在此軟件體系結(jié)構(gòu)中,每一模塊都有一組輸入在此軟件體系結(jié)構(gòu)中,每一模塊都有一組輸入和輸出。每一模塊從其輸入端接收輸入輸入數(shù)和輸出。每一模塊從其輸入端接收輸入輸入數(shù)據(jù)流,在經(jīng)過其內(nèi)部處理后
16、,按標準的順序,據(jù)流,在經(jīng)過其內(nèi)部處理后,按標準的順序,將結(jié)果數(shù)據(jù)流送到輸出端,以達到傳遞一組完將結(jié)果數(shù)據(jù)流送到輸出端,以達到傳遞一組完整計算結(jié)果的目的。在此,整計算結(jié)果的目的。在此,我們將處理模塊稱我們將處理模塊稱為過濾器,而各個模塊之間的連接器稱為管道為過濾器,而各個模塊之間的連接器稱為管道。n詞匯表是詞匯表是構(gòu)件構(gòu)件=過濾器;連接器過濾器;連接器=管道管道n管道和過濾器體系架構(gòu)模式把系統(tǒng)任務(wù)分成管道和過濾器體系架構(gòu)模式把系統(tǒng)任務(wù)分成為幾個獨立的處理步驟。這些步驟采用通過為幾個獨立的處理步驟。這些步驟采用通過系統(tǒng)的數(shù)據(jù)流連接。一個步驟的輸出是下一系統(tǒng)的數(shù)據(jù)流連接。一個步驟的輸出是下一個步驟
17、的輸入。每個處理步驟由一個過濾器個步驟的輸入。每個處理步驟由一個過濾器組件實現(xiàn)組件實現(xiàn),它處理或者轉(zhuǎn)化數(shù)據(jù)它處理或者轉(zhuǎn)化數(shù)據(jù),并且系統(tǒng)的輸并且系統(tǒng)的輸入可以是多種數(shù)據(jù)源入可以是多種數(shù)據(jù)源.n這種結(jié)構(gòu)有若干不變特征:這種結(jié)構(gòu)有若干不變特征:n1. 過濾器一定是獨立的實體,即各個過濾器之過濾器一定是獨立的實體,即各個過濾器之間不能共享狀態(tài)。間不能共享狀態(tài)。n2. 過濾器與其連接的上下游過濾器相互獨立,過濾器與其連接的上下游過濾器相互獨立,即不知道,更不能假定,分別與其輸入和輸出即不知道,更不能假定,分別與其輸入和輸出相連接的其他過濾器的信息。它們的規(guī)格說明相連接的其他過濾器的信息。它們的規(guī)格說明中
18、只能涉及限制哪些數(shù)據(jù)可以出現(xiàn)在它的輸入中只能涉及限制哪些數(shù)據(jù)可以出現(xiàn)在它的輸入管道中和保證它將輸出何種類型的計算結(jié)果,管道中和保證它將輸出何種類型的計算結(jié)果,但它們不能識別在與它們相連的管道的另一邊但它們不能識別在與它們相連的管道的另一邊究竟是誰。如圖究竟是誰。如圖5.1所示。所示。 n種類種類n本類型的規(guī)格說明都包括管線、受約束的管本類型的規(guī)格說明都包括管線、受約束的管道和有名管道三類。管線限制過濾器的拓撲道和有名管道三類。管線限制過濾器的拓撲結(jié)構(gòu)只能是線性序列。受約束的管道限制在結(jié)構(gòu)只能是線性序列。受約束的管道限制在其上流通的數(shù)據(jù)量。有名管道要求在兩個過其上流通的數(shù)據(jù)量。有名管道要求在兩個
19、過濾器之間流通的數(shù)據(jù)經(jīng)過嚴格地定義。濾器之間流通的數(shù)據(jù)經(jīng)過嚴格地定義。5.3 軟件體系結(jié)構(gòu)風(fēng)格 n優(yōu)點優(yōu)點n它允許設(shè)計者將一個系統(tǒng)的整體輸入它允許設(shè)計者將一個系統(tǒng)的整體輸入/輸出行為輸出行為理解為各個獨立過濾器行為的一個簡單的合成。理解為各個獨立過濾器行為的一個簡單的合成。n該體系結(jié)構(gòu)支持重用。該體系結(jié)構(gòu)支持重用。n維護系統(tǒng)和增強功能容易。維護系統(tǒng)和增強功能容易。n缺點缺點n容易導(dǎo)致批處理方式。容易導(dǎo)致批處理方式。n在維護或者響應(yīng)兩個分離但相關(guān)的數(shù)據(jù)流時容易在維護或者響應(yīng)兩個分離但相關(guān)的數(shù)據(jù)流時容易受阻。受阻。n增加了分析與編碼的工作量,增加了復(fù)雜性,降增加了分析與編碼的工作量,增加了復(fù)雜性,
20、降低了性能。低了性能。 UNIX的的command shell是這種結(jié)構(gòu)是這種結(jié)構(gòu)n 2數(shù)據(jù)抽象和面向?qū)ο蠼M織(Data Abstraction and Object- Oriented Organization)n(1)基本結(jié)構(gòu)與詞匯表)基本結(jié)構(gòu)與詞匯表n在該結(jié)構(gòu)中,數(shù)據(jù)表示和與之相連的最基本操在該結(jié)構(gòu)中,數(shù)據(jù)表示和與之相連的最基本操作都被封裝在一個抽象數(shù)據(jù)類型或者對象中。作都被封裝在一個抽象數(shù)據(jù)類型或者對象中。n詞匯表是詞匯表是構(gòu)件構(gòu)件=對象;連接器對象;連接器=方法調(diào)用方法調(diào)用n(2)特征)特征n其特征包括兩個方面是:對象負責(zé)維持其本身其特征包括兩個方面是:對象負責(zé)維持其本身的完整性;信
21、息隱藏。的完整性;信息隱藏。 n 對象 對象 對象過程調(diào)用 對象 對象 圖2 抽象數(shù)據(jù)類型和對象n(3)優(yōu)點)優(yōu)點n封裝性。信息隱藏。抽象性。類特性。繼承性等。封裝性。信息隱藏。抽象性。類特性。繼承性等。n(4)缺點)缺點n由于對象之間的交互是通過明確的對象函數(shù)調(diào)用進行由于對象之間的交互是通過明確的對象函數(shù)調(diào)用進行的,所以當(dāng)一個對象需要實現(xiàn)一個特定功能的時候,的,所以當(dāng)一個對象需要實現(xiàn)一個特定功能的時候,必須知道哪一個對象提供這種服務(wù),這就降低了系統(tǒng)必須知道哪一個對象提供這種服務(wù),這就降低了系統(tǒng)的靈活性。管道和過濾器模型不需要明確指明數(shù)據(jù)的的靈活性。管道和過濾器模型不需要明確指明數(shù)據(jù)的來源和去
22、向。來源和去向。n3基于事件的隱式調(diào)用基于事件的隱式調(diào)用(Event-based Implicit Invocation)n(1)基本結(jié)構(gòu)與詞匯表)基本結(jié)構(gòu)與詞匯表n 該結(jié)構(gòu)中的模塊既提供一組過程,也提供一組事件。該結(jié)構(gòu)中的模塊既提供一組過程,也提供一組事件。系統(tǒng)由可以發(fā)布事件的構(gòu)件組成,另一些構(gòu)件為注冊系統(tǒng)由可以發(fā)布事件的構(gòu)件組成,另一些構(gòu)件為注冊接收這些發(fā)布的事件,這些構(gòu)件將自己的過程同一事接收這些發(fā)布的事件,這些構(gòu)件將自己的過程同一事件相關(guān)。件相關(guān)。n詞匯表是詞匯表是構(gòu)件構(gòu)件=模塊;連接器模塊;連接器=事件與過程隱式調(diào)用事件與過程隱式調(diào)用n(2)特征)特征n軟件體系結(jié)構(gòu)中的構(gòu)件可以聲明或
23、者廣播一個或者多軟件體系結(jié)構(gòu)中的構(gòu)件可以聲明或者廣播一個或者多個事件,而不是直接調(diào)用過程。系統(tǒng)中的其它成分可個事件,而不是直接調(diào)用過程。系統(tǒng)中的其它成分可以通過將一個過程連接到一個事件來表達自己對該事以通過將一個過程連接到一個事件來表達自己對該事件的興趣。當(dāng)該事件激發(fā)時會隱含地調(diào)用其它模塊。件的興趣。當(dāng)該事件激發(fā)時會隱含地調(diào)用其它模塊。n(3)優(yōu)點)優(yōu)點n支持軟件復(fù)用。容易使系統(tǒng)升級。支持軟件復(fù)用。容易使系統(tǒng)升級。n(4)缺點)缺點n軟件構(gòu)件放棄了對計算的控制,而完全由系統(tǒng)軟件構(gòu)件放棄了對計算的控制,而完全由系統(tǒng)完成。此外,在數(shù)據(jù)傳輸上關(guān)系復(fù)雜,系統(tǒng)總完成。此外,在數(shù)據(jù)傳輸上關(guān)系復(fù)雜,系統(tǒng)總體
24、功能和性能與資源管理成為一個關(guān)鍵性問題。體功能和性能與資源管理成為一個關(guān)鍵性問題。4分層系統(tǒng)(Layers)n(1)基本結(jié)構(gòu)與詞匯表)基本結(jié)構(gòu)與詞匯表n 該結(jié)構(gòu)采用層次化的組織方法,每一層向其該結(jié)構(gòu)采用層次化的組織方法,每一層向其上層提供服務(wù),并利用下層服務(wù)。下層信息可上層提供服務(wù),并利用下層服務(wù)。下層信息可以被全部隱藏起來,只有外部層次和一部分精以被全部隱藏起來,只有外部層次和一部分精心選擇的功能可以被外部所見。心選擇的功能可以被外部所見。n詞匯表是詞匯表是構(gòu)件構(gòu)件=虛擬機;連接器虛擬機;連接器=層次間協(xié)議層次間協(xié)議內(nèi)核基本工具有用的系統(tǒng)用戶軟部件:實現(xiàn)在層次結(jié)構(gòu)中的虛擬機連接件:層次與層次
25、之間交互的協(xié)議層次化組織原則:每一層向其上層提供服務(wù),并利用下層的服務(wù)。5.3 軟件體系結(jié)構(gòu)風(fēng)格 n(2)特征)特征n層次結(jié)構(gòu)虛擬機與層次間的協(xié)議。層次結(jié)構(gòu)虛擬機與層次間的協(xié)議。 n(3)優(yōu)點)優(yōu)點n首先支持抽象程度遞增的系統(tǒng)設(shè)計,使得設(shè)計者可以首先支持抽象程度遞增的系統(tǒng)設(shè)計,使得設(shè)計者可以把一個復(fù)雜系統(tǒng)按遞增的步驟分解開來。其次,功能把一個復(fù)雜系統(tǒng)按遞增的步驟分解開來。其次,功能的改變只會影響相鄰的上下層。最后,這種結(jié)構(gòu)可以的改變只會影響相鄰的上下層。最后,這種結(jié)構(gòu)可以支持重用。支持重用。n(4)缺點)缺點n層次劃分不容易,很難找到一個合適的正確的層次抽層次劃分不容易,很難找到一個合適的正確
26、的層次抽象方法。象方法。5倉庫系統(tǒng)及知識庫(Repositories)n(1)基本結(jié)構(gòu)與詞匯表)基本結(jié)構(gòu)與詞匯表n 在該結(jié)構(gòu)中,有兩種不同的軟件構(gòu)件:一種表示當(dāng)在該結(jié)構(gòu)中,有兩種不同的軟件構(gòu)件:一種表示當(dāng)前狀態(tài)的中心數(shù)據(jù)結(jié)構(gòu),另一種是一組相互獨立的處前狀態(tài)的中心數(shù)據(jù)結(jié)構(gòu),另一種是一組相互獨立的處理中心數(shù)據(jù)的構(gòu)件。不同的倉庫系統(tǒng)與外部構(gòu)件有不理中心數(shù)據(jù)的構(gòu)件。不同的倉庫系統(tǒng)與外部構(gòu)件有不同的交互方式。同的交互方式。控制方式的選擇決定了倉庫系統(tǒng)的類控制方式的選擇決定了倉庫系統(tǒng)的類型。型。n倉庫系統(tǒng)可以分為兩類:倉庫系統(tǒng)可以分為兩類:數(shù)據(jù)庫和黑板系統(tǒng)數(shù)據(jù)庫和黑板系統(tǒng)(Blackboard)。n黑板系
27、統(tǒng)有黑板系統(tǒng)有知識源、黑板數(shù)據(jù)結(jié)構(gòu)和控制知識源、黑板數(shù)據(jù)結(jié)構(gòu)和控制三個部分組三個部分組成。成。n詞匯表是詞匯表是構(gòu)件構(gòu)件=中心數(shù)據(jù)倉庫和在倉庫上操作的獨立中心數(shù)據(jù)倉庫和在倉庫上操作的獨立構(gòu)件的集合;連接器構(gòu)件的集合;連接器=通知路徑通知路徑軟件部件表示當(dāng)前狀態(tài)的中心數(shù)據(jù)結(jié)構(gòu)一組相互獨立的處理中心數(shù)據(jù)的部件部件交互方式根據(jù)輸入數(shù)據(jù)流的事務(wù)處理類型決定執(zhí)行哪個處理過程根據(jù)中心數(shù)據(jù)結(jié)構(gòu)的當(dāng)前狀態(tài)觸發(fā)進行執(zhí)行傳統(tǒng)的數(shù)據(jù)庫系統(tǒng)黑板系統(tǒng)黑板(共享數(shù)據(jù))知識源知識源知識源知識源直接存?。褐R源不斷改變黑板的狀態(tài)。按照與應(yīng)用程序相關(guān)的層次組織的問題求解數(shù)據(jù)獨立、分離的與應(yīng)用程序相關(guān)的知識及其處理單元黑板狀態(tài)驅(qū)
28、動控制:使用特定的知識。5.3 軟件體系結(jié)構(gòu)風(fēng)格 n(2)特征)特征n存在一個共享中心數(shù)據(jù)區(qū),為相關(guān)軟件提供數(shù)存在一個共享中心數(shù)據(jù)區(qū),為相關(guān)軟件提供數(shù)據(jù)訪問和存儲服務(wù)。據(jù)訪問和存儲服務(wù)。 6過程控制n(1)詞匯表)詞匯表n控制連續(xù)過程的軟件體系結(jié)構(gòu)要建立在過程控制模上,控制連續(xù)過程的軟件體系結(jié)構(gòu)要建立在過程控制模上,在該模型上:(在該模型上:(1)計算元素是從控制策略中分離出來)計算元素是從控制策略中分離出來的令人感興趣的過程。這些內(nèi)容涉及:過程定義,即的令人感興趣的過程。這些內(nèi)容涉及:過程定義,即包括操縱某些過程變量的機構(gòu);控制算法,即決定如包括操縱某些過程變量的機構(gòu);控制算法,即決定如何操
29、縱過程變量,涉及過程變量怎樣反映真實狀態(tài)的何操縱過程變量,涉及過程變量怎樣反映真實狀態(tài)的模型;過程變量包括輸入變量、控制變量和操縱變量模型;過程變量包括輸入變量、控制變量和操縱變量及其相關(guān)知識;設(shè)置點或控制變量的參考值;傳感器;及其相關(guān)知識;設(shè)置點或控制變量的參考值;傳感器;n(2)控制循環(huán)模式是建立控制算法使用的關(guān)系。該模)控制循環(huán)模式是建立控制算法使用的關(guān)系。該模式收集有關(guān)過程的實際狀態(tài)和要求達到這些狀態(tài)的信式收集有關(guān)過程的實際狀態(tài)和要求達到這些狀態(tài)的信息,調(diào)節(jié)過程變量以驅(qū)動實際狀態(tài)向要求達到的狀態(tài)息,調(diào)節(jié)過程變量以驅(qū)動實際狀態(tài)向要求達到的狀態(tài)前進。前進。n詞匯表詞匯表過程單元過程單元|控
30、制單元控制單元。過程單元于控制單元。過程單元于控制單元之間的交互主要有兩個:控制單元子進程單元提供連之間的交互主要有兩個:控制單元子進程單元提供連續(xù)指令,以改變操縱變量。續(xù)指令,以改變操縱變量。5.3 軟件體系結(jié)構(gòu)風(fēng)格 n(2)基本結(jié)構(gòu))基本結(jié)構(gòu)n過程控制的基本結(jié)構(gòu)是一種特定的數(shù)據(jù)流體系過程控制的基本結(jié)構(gòu)是一種特定的數(shù)據(jù)流體系結(jié)構(gòu),與一般數(shù)據(jù)流體系結(jié)構(gòu)是線性形式的形結(jié)構(gòu),與一般數(shù)據(jù)流體系結(jié)構(gòu)是線性形式的形式不同,控制循環(huán)體系結(jié)構(gòu)是一個帶有環(huán)形反式不同,控制循環(huán)體系結(jié)構(gòu)是一個帶有環(huán)形反饋的數(shù)據(jù)流體系結(jié)構(gòu),其模式如圖饋的數(shù)據(jù)流體系結(jié)構(gòu),其模式如圖5.6所示:所示: 輸入變量 控制口 過程 設(shè)置點
31、操縱變量調(diào)節(jié) 控制變量 圖5.6 反饋控制7軟件體系結(jié)構(gòu)風(fēng)格的實例研究n例1. 公共對象請求代理體系結(jié)構(gòu)公共對象請求代理體系結(jié)構(gòu)(CORBA)是是由對象管理組織由對象管理組織OMG制定的一個工業(yè)標準,制定的一個工業(yè)標準,其主要目標是提供一種機制使得對象可以透明其主要目標是提供一種機制使得對象可以透明地發(fā)出請求和獲得應(yīng)答,從而建立起一個異質(zhì)地發(fā)出請求和獲得應(yīng)答,從而建立起一個異質(zhì)的分布式應(yīng)用環(huán)境。下面對的分布式應(yīng)用環(huán)境。下面對CORBA結(jié)構(gòu)風(fēng)格結(jié)構(gòu)風(fēng)格的分析。的分析。n設(shè)計詞匯表設(shè)計詞匯表n設(shè)計詞匯表設(shè)計詞匯表=構(gòu)件構(gòu)件=客戶機系統(tǒng)客戶機系統(tǒng)/服務(wù)器系統(tǒng)服務(wù)器系統(tǒng)/其它其它構(gòu)件;連接件構(gòu)件;連接
32、件=請求請求/服務(wù)服務(wù)。n其中客戶機系統(tǒng)包括客戶機應(yīng)用程序、客戶樁、上下其中客戶機系統(tǒng)包括客戶機應(yīng)用程序、客戶樁、上下文對象和接口倉庫等構(gòu)件,以及樁類型激發(fā)文對象和接口倉庫等構(gòu)件,以及樁類型激發(fā)API和動和動態(tài)激發(fā)態(tài)激發(fā)API等連接件。服務(wù)器系統(tǒng)包括服務(wù)器應(yīng)用程等連接件。服務(wù)器系統(tǒng)包括服務(wù)器應(yīng)用程序方法庫,服務(wù)器框架和序方法庫,服務(wù)器框架和ORB等構(gòu)件,以及對象適等構(gòu)件,以及對象適配器等連接器。配器等連接器。nCORBA 的體系結(jié)構(gòu)模式(如圖的體系結(jié)構(gòu)模式(如圖5.7所示)所示)n(3)基本計算模型特點)基本計算模型特點n在此體系結(jié)構(gòu)中,客戶機應(yīng)用程序用樁類型激發(fā)在此體系結(jié)構(gòu)中,客戶機應(yīng)用程序
33、用樁類型激發(fā)API或者動態(tài)激發(fā)或者動態(tài)激發(fā)API向服務(wù)器發(fā)送請求。在服務(wù)器端接向服務(wù)器發(fā)送請求。在服務(wù)器端接受方法調(diào)用請求,不進行參數(shù)引導(dǎo),設(shè)置需要的上下受方法調(diào)用請求,不進行參數(shù)引導(dǎo),設(shè)置需要的上下文狀態(tài),激發(fā)服務(wù)器框架中的方法調(diào)度器,引導(dǎo)輸出文狀態(tài),激發(fā)服務(wù)器框架中的方法調(diào)度器,引導(dǎo)輸出參數(shù),并完成激發(fā)。服務(wù)器應(yīng)用程序使用服務(wù)器端的參數(shù),并完成激發(fā)。服務(wù)器應(yīng)用程序使用服務(wù)器端的服務(wù)部分,它包含了某個對象的一個或者多個實現(xiàn),服務(wù)部分,它包含了某個對象的一個或者多個實現(xiàn),用于滿足客戶機對指定對象上的某個操作的請求。用于滿足客戶機對指定對象上的某個操作的請求。 應(yīng)用程序應(yīng)用程序 領(lǐng)域接口領(lǐng)域接口
34、 公共設(shè)施公共設(shè)施 CORBA 對象服務(wù)器對象服務(wù)器 圖5.7 CORBA的體系結(jié)構(gòu)模式n(4)不變性)不變性n很明顯,客戶機系統(tǒng)是獨立于服務(wù)器系統(tǒng),同理服務(wù)很明顯,客戶機系統(tǒng)是獨立于服務(wù)器系統(tǒng),同理服務(wù)器系統(tǒng)也獨立于客戶機系統(tǒng)。器系統(tǒng)也獨立于客戶機系統(tǒng)。n(5)使用例子)使用例子n各種基于各種基于CORBA的應(yīng)用系統(tǒng),如基于的應(yīng)用系統(tǒng),如基于CORBA的人力的人力資源管理系統(tǒng)等。資源管理系統(tǒng)等。n(6)優(yōu)缺點)優(yōu)缺點n優(yōu)點:支持異構(gòu)環(huán)境中的應(yīng)用軟件開發(fā);支持分布對優(yōu)點:支持異構(gòu)環(huán)境中的應(yīng)用軟件開發(fā);支持分布對象和分布處理;因為具備了標準,故相對穩(wěn)定,可支象和分布處理;因為具備了標準,故相對穩(wěn)
35、定,可支持軟件重用;高度支持持軟件重用;高度支持C/S互操作性?;ゲ僮餍浴缺點:未能真正解決分布計算中固有的復(fù)雜性,具體缺點:未能真正解決分布計算中固有的復(fù)雜性,具體為:存在遲滯和死鎖問題;缺乏實時特性;缺乏性能為:存在遲滯和死鎖問題;缺乏實時特性;缺乏性能優(yōu)化;缺乏保護機制;缺乏支持大量數(shù)據(jù)傳送的機制。優(yōu)化;缺乏保護機制;缺乏支持大量數(shù)據(jù)傳送的機制。5.3 軟件體系結(jié)構(gòu)風(fēng)格 n例2. 基于基于Web的分布式體系結(jié)構(gòu)風(fēng)格分析如下:的分布式體系結(jié)構(gòu)風(fēng)格分析如下:n(1)設(shè)計詞匯表)設(shè)計詞匯表n設(shè)計詞匯表設(shè)計詞匯表=構(gòu)件構(gòu)件=表示層構(gòu)件表示層構(gòu)件/功能層構(gòu)件功能層構(gòu)件/數(shù)據(jù)庫數(shù)據(jù)庫服務(wù)層構(gòu)件,連
36、接件服務(wù)層構(gòu)件,連接件=請求請求/應(yīng)答協(xié)議應(yīng)答協(xié)議n其中表示層構(gòu)件其中表示層構(gòu)件=客戶機客戶機+瀏覽器;功能層構(gòu)件瀏覽器;功能層構(gòu)件=Web服務(wù)器服務(wù)器+轉(zhuǎn)換服務(wù)器;數(shù)據(jù)庫服務(wù)層構(gòu)件轉(zhuǎn)換服務(wù)器;數(shù)據(jù)庫服務(wù)層構(gòu)件=數(shù)數(shù)據(jù)庫服務(wù)器。據(jù)庫服務(wù)器。n(2)基于)基于Web的分布式體系結(jié)構(gòu)模式(如圖的分布式體系結(jié)構(gòu)模式(如圖5.8所示)所示)5.3 軟件體系結(jié)構(gòu)風(fēng)格 n基本計算模型特點基本計算模型特點n WWW瀏覽器客戶通過瀏覽器客戶通過Web服務(wù)器對數(shù)據(jù)庫的訪服務(wù)器對數(shù)據(jù)庫的訪問,在問,在Web服務(wù)器中專門設(shè)計了一個中間應(yīng)用程序服務(wù)器中專門設(shè)計了一個中間應(yīng)用程序作為作為Web服務(wù)器訪問數(shù)據(jù)庫服務(wù)器的客
37、戶代理。這服務(wù)器訪問數(shù)據(jù)庫服務(wù)器的客戶代理。這個中間程序?qū)嶋H上起著個中間程序?qū)嶋H上起著HTML文件訪問與數(shù)據(jù)庫訪問文件訪問與數(shù)據(jù)庫訪問兩種不同應(yīng)用的轉(zhuǎn)換,所以也可以看成是一種應(yīng)用網(wǎng)兩種不同應(yīng)用的轉(zhuǎn)換,所以也可以看成是一種應(yīng)用網(wǎng)關(guān),或者稱應(yīng)用程序網(wǎng)關(guān)程序。應(yīng)用網(wǎng)關(guān)與關(guān),或者稱應(yīng)用程序網(wǎng)關(guān)程序。應(yīng)用網(wǎng)關(guān)與Web服服務(wù)器之間的通信接口稱為公共網(wǎng)關(guān)接口務(wù)器之間的通信接口稱為公共網(wǎng)關(guān)接口CGI,它規(guī)定,它規(guī)定了一組標準參數(shù)格式和通信協(xié)議。應(yīng)用網(wǎng)關(guān)程序可以了一組標準參數(shù)格式和通信協(xié)議。應(yīng)用網(wǎng)關(guān)程序可以用用C,C+和和SQL等語言編寫,它與等語言編寫,它與Web服務(wù)器的服務(wù)器的通信接口上遵循通信接口上遵循C
38、GI標準,在與數(shù)據(jù)庫通信接口上用標準,在與數(shù)據(jù)庫通信接口上用SQL標準。這種應(yīng)用網(wǎng)關(guān)程序常以標準。這種應(yīng)用網(wǎng)關(guān)程序常以CGI為文件次級名,為文件次級名,并簡稱為并簡稱為CGI程序。程序。不變性不變性n表示層構(gòu)件、功能層構(gòu)件與數(shù)據(jù)庫服務(wù)層構(gòu)件之間相表示層構(gòu)件、功能層構(gòu)件與數(shù)據(jù)庫服務(wù)層構(gòu)件之間相互獨立?;オ毩?。使用例子使用例子n各種基于各種基于Web的分布式應(yīng)用系統(tǒng)。如基于的分布式應(yīng)用系統(tǒng)。如基于Web的信的信息查詢系統(tǒng)等。息查詢系統(tǒng)等。優(yōu)缺點優(yōu)缺點n優(yōu)點優(yōu)點:有開放的而非專用的標準;較低的應(yīng)用開發(fā)及:有開放的而非專用的標準;較低的應(yīng)用開發(fā)及管理成本;對信息及應(yīng)用系統(tǒng)的訪問自由;較低的培管理成本;
39、對信息及應(yīng)用系統(tǒng)的訪問自由;較低的培訓(xùn)成本;重用和互操作支持。訓(xùn)成本;重用和互操作支持。n缺點缺點:同例:同例1。n例3. 領(lǐng)域?qū)<蚁到y(tǒng)體系結(jié)構(gòu)領(lǐng)域?qū)<蚁到y(tǒng)體系結(jié)構(gòu)n從本質(zhì)上看領(lǐng)域?qū)<蚁到y(tǒng)可以歸類為管道從本質(zhì)上看領(lǐng)域?qū)<蚁到y(tǒng)可以歸類為管道-過濾器體系過濾器體系結(jié)構(gòu)。領(lǐng)域?qū)<蚁到y(tǒng)體系結(jié)構(gòu)的風(fēng)格分析如下:結(jié)構(gòu)。領(lǐng)域?qū)<蚁到y(tǒng)體系結(jié)構(gòu)的風(fēng)格分析如下:n(1)設(shè)計詞匯表)設(shè)計詞匯表n設(shè)計詞匯表設(shè)計詞匯表=構(gòu)件構(gòu)件=特定過濾器;連接件特定過濾器;連接件=特定管道特定管道,特定過濾器特定過濾器=推理機推理機/知識庫知識庫/解釋器解釋器/事實庫事實庫/相關(guān)工相關(guān)工具;特定管道具;特定管道=知識流管道;相關(guān)工具
40、知識流管道;相關(guān)工具=知識編輯器知識編輯器/人機界面人機界面/動態(tài)數(shù)據(jù)庫動態(tài)數(shù)據(jù)庫/其它工具。其它工具。n(2)基本計算模型的特點(如圖)基本計算模型的特點(如圖5.9所示)所示) n(3)不變性)不變性n 過濾器是獨立實體,它們不同其它過濾器共享狀態(tài);過濾器是獨立實體,它們不同其它過濾器共享狀態(tài);過濾器不知道其上下游過濾器的身份。過濾器不知道其上下游過濾器的身份。n(4)使用例子)使用例子n各種基于各種基于ES的應(yīng)用系統(tǒng)。如基于的應(yīng)用系統(tǒng)。如基于STD智能檢測的實時智能檢測的實時在線監(jiān)測與故障診斷在線監(jiān)測與故障診斷ES。n(5)優(yōu)缺點)優(yōu)缺點n理解上簡單,支持重用,易于維護,允許進行特定分理
41、解上簡單,支持重用,易于維護,允許進行特定分析,天然支持并發(fā)。主要缺點是易于導(dǎo)致批處理結(jié)構(gòu)。析,天然支持并發(fā)。主要缺點是易于導(dǎo)致批處理結(jié)構(gòu)。 良好的良好的體系結(jié)構(gòu)可以為軟件開發(fā)和維護帶來好處:體系結(jié)構(gòu)可以為軟件開發(fā)和維護帶來好處:1) 識別相似系統(tǒng)的通用結(jié)構(gòu)模式,有助于理解系統(tǒng)高層識別相似系統(tǒng)的通用結(jié)構(gòu)模式,有助于理解系統(tǒng)高層之間的聯(lián)系,使得新系統(tǒng)可以作為以前系統(tǒng)的變種來構(gòu)之間的聯(lián)系,使得新系統(tǒng)可以作為以前系統(tǒng)的變種來構(gòu)造;造;2) 合適的體系結(jié)構(gòu)是系統(tǒng)成功的關(guān)鍵,而不合適的體系合適的體系結(jié)構(gòu)是系統(tǒng)成功的關(guān)鍵,而不合適的體系結(jié)構(gòu)可能帶來災(zāi)難性的后果;結(jié)構(gòu)可能帶來災(zāi)難性的后果;3) 對軟件體系結(jié)
42、構(gòu)的理解,可以幫助開發(fā)人員在不同的對軟件體系結(jié)構(gòu)的理解,可以幫助開發(fā)人員在不同的設(shè)計方案中做出理性的選擇;設(shè)計方案中做出理性的選擇;4) 體系結(jié)構(gòu)對于分析和描述復(fù)雜系統(tǒng)的高層屬性通常是體系結(jié)構(gòu)對于分析和描述復(fù)雜系統(tǒng)的高層屬性通常是十分必要的;十分必要的;5) 各種體系結(jié)構(gòu)風(fēng)格的提煉、描述和普遍采用,便于軟各種體系結(jié)構(gòu)風(fēng)格的提煉、描述和普遍采用,便于軟件開發(fā)人員在系統(tǒng)設(shè)計中互相交流;件開發(fā)人員在系統(tǒng)設(shè)計中互相交流;6) 在軟件開發(fā)文檔中清晰地記錄系統(tǒng)體系結(jié)構(gòu),不僅可在軟件開發(fā)文檔中清晰地記錄系統(tǒng)體系結(jié)構(gòu),不僅可以顯著地節(jié)省軟件理解的工作量,而且便于在軟件維護以顯著地節(jié)省軟件理解的工作量,而且便于
43、在軟件維護的全過程中保持系統(tǒng)的總體結(jié)構(gòu)和特性不變。的全過程中保持系統(tǒng)的總體結(jié)構(gòu)和特性不變?;隗w系結(jié)構(gòu)的軟件開發(fā)模式提煉特定應(yīng)用領(lǐng)域的穩(wěn)定需求和易變需求,建立可復(fù)用的領(lǐng)域模型。在特定領(lǐng)域模型的基礎(chǔ)上提煉特定應(yīng)用領(lǐng)域的軟件體系結(jié)構(gòu)。進行體系結(jié)構(gòu)設(shè)計分配系統(tǒng)功能到相應(yīng)的構(gòu)建和連接件上存放設(shè)計模式、對象或其它可重用的設(shè)計構(gòu)件。設(shè)計構(gòu)件和連接件復(fù)用/存儲5.4 軟件體系結(jié)構(gòu)中的技術(shù)n這些技術(shù)包括:軟件分析和設(shè)計策略、劃分策這些技術(shù)包括:軟件分析和設(shè)計策略、劃分策略、依賴性管理、體系結(jié)構(gòu)模式使用以及系統(tǒng)略、依賴性管理、體系結(jié)構(gòu)模式使用以及系統(tǒng)構(gòu)件集成策略。構(gòu)件集成策略。n恰當(dāng)?shù)剡\用這些技術(shù),能降低軟件體
44、系結(jié)構(gòu)的恰當(dāng)?shù)剡\用這些技術(shù),能降低軟件體系結(jié)構(gòu)的復(fù)雜度,減少開發(fā)體系結(jié)構(gòu)所花的時間,并減復(fù)雜度,減少開發(fā)體系結(jié)構(gòu)所花的時間,并減少軟件體系結(jié)構(gòu)師和體系結(jié)構(gòu)團隊的工作量。少軟件體系結(jié)構(gòu)師和體系結(jié)構(gòu)團隊的工作量。 5.4 軟件體系結(jié)構(gòu)中的技術(shù) n1共性和可變性分析共性和可變性分析n共性和可變性分析的本質(zhì)是,找出事務(wù)的共性和相異共性和可變性分析的本質(zhì)是,找出事務(wù)的共性和相異性,并且分別利用這些相同和相異的部分。這種辦法性,并且分別利用這些相同和相異的部分。這種辦法被被Coplien等人稱為范圍、共性和可變性(等人稱為范圍、共性和可變性(SCV)分)分析。析。n其主要步驟如下:其主要步驟如下:1)開始
45、是找到要分析的實體集合。)開始是找到要分析的實體集合。2)第二步通過限制每個變化量來區(qū)別這些變化。)第二步通過限制每個變化量來區(qū)別這些變化。3)然后軟件體系結(jié)構(gòu)師在軟件體系結(jié)構(gòu)開發(fā)過程中使用然后軟件體系結(jié)構(gòu)師在軟件體系結(jié)構(gòu)開發(fā)過程中使用共性。共性。4)最后,由于設(shè)計中的變化是不可避免的,所)最后,由于設(shè)計中的變化是不可避免的,所以軟件體系結(jié)構(gòu)師應(yīng)該找出一種將軟件體系結(jié)構(gòu)設(shè)計以軟件體系結(jié)構(gòu)師應(yīng)該找出一種將軟件體系結(jié)構(gòu)設(shè)計變化的影響減至最小的辦法。變化的影響減至最小的辦法。 2可變設(shè)計n處理變化情況的基本思想是列舉出體系結(jié)構(gòu)中處理變化情況的基本思想是列舉出體系結(jié)構(gòu)中可能需要適應(yīng)的變化的種類??赡苄?/p>
46、要適應(yīng)的變化的種類。n然后用評價這些變化,是采用當(dāng)前的體系結(jié)構(gòu),然后用評價這些變化,是采用當(dāng)前的體系結(jié)構(gòu),還是采用提議的體系結(jié)構(gòu)。還是采用提議的體系結(jié)構(gòu)。 為此,為了能更容易地處理這些變化,體系結(jié)為此,為了能更容易地處理這些變化,體系結(jié)構(gòu)師可提出以下問題幫助進行判斷:構(gòu)師可提出以下問題幫助進行判斷:n變化是局部的還是分散在多個分布的子系統(tǒng)中?變化是局部的還是分散在多個分布的子系統(tǒng)中?n哪些接口或消息需要修改以適應(yīng)變化?哪些接口或消息需要修改以適應(yīng)變化?n數(shù)據(jù)庫設(shè)計需要更新嗎?數(shù)據(jù)庫設(shè)計需要更新嗎?n可變的范圍是什么?估計多少類或源代碼文件可變的范圍是什么?估計多少類或源代碼文件將需要修改?將需
47、要修改?3程序生成技術(shù)n程序生成技術(shù)使得軟件產(chǎn)品的開發(fā)自動化。程序生成技術(shù)使得軟件產(chǎn)品的開發(fā)自動化。 n這一技術(shù)能大大提高開發(fā)者的生成能力,但軟這一技術(shù)能大大提高開發(fā)者的生成能力,但軟件體系結(jié)構(gòu)師必須保證這一技術(shù)只用于其適用件體系結(jié)構(gòu)師必須保證這一技術(shù)只用于其適用的領(lǐng)域。的領(lǐng)域。 4構(gòu)造一個框架系統(tǒng)n這一技術(shù)在整個系統(tǒng)中給出了一條可操作的線索。這這一技術(shù)在整個系統(tǒng)中給出了一條可操作的線索。這一線索可以完成軟件體系結(jié)構(gòu)的許多方面的最初驗證。一線索可以完成軟件體系結(jié)構(gòu)的許多方面的最初驗證。通常,當(dāng)框架開發(fā)完成時,體系結(jié)構(gòu)只需要一些方面通常,當(dāng)框架開發(fā)完成時,體系結(jié)構(gòu)只需要一些方面到位。通常,這一框
48、架可以作為要構(gòu)造系統(tǒng)的第一次到位。通常,這一框架可以作為要構(gòu)造系統(tǒng)的第一次迭代的基礎(chǔ)。迭代的基礎(chǔ)。 這種辦法有許多主要優(yōu)點:這種辦法有許多主要優(yōu)點:n在開發(fā)過程的更早時候就促進集成,集成活動是一種在開發(fā)過程的更早時候就促進集成,集成活動是一種主要的開發(fā)風(fēng)險主要的開發(fā)風(fēng)險n與迭代開發(fā)方法相吻合與迭代開發(fā)方法相吻合n促進基礎(chǔ)設(shè)施的早期開發(fā)促進基礎(chǔ)設(shè)施的早期開發(fā)n引導(dǎo)端對端的自動測試引導(dǎo)端對端的自動測試5原型構(gòu)造n當(dāng)一個大系統(tǒng)的某些方面不清楚時,構(gòu)造原型當(dāng)一個大系統(tǒng)的某些方面不清楚時,構(gòu)造原型常常能成為一種理解具體體系結(jié)構(gòu)相關(guān)方面的常常能成為一種理解具體體系結(jié)構(gòu)相關(guān)方面的一種有效技術(shù)。一種有效技術(shù)。
49、 6接口開發(fā)按合同設(shè)計n對接口進行編碼的一種有用技術(shù)稱為對接口進行編碼的一種有用技術(shù)稱為“按合同設(shè)計按合同設(shè)計”。B.Meyer發(fā)明了這種技術(shù),這一技術(shù)用來為軟件構(gòu)件發(fā)明了這種技術(shù),這一技術(shù)用來為軟件構(gòu)件來定義接口規(guī)格說明。來定義接口規(guī)格說明。Eiffel 程序設(shè)計語言對按合同程序設(shè)計語言對按合同設(shè)計提供了一流的支持。設(shè)計提供了一流的支持。其益處包括:其益處包括:n系統(tǒng)設(shè)計員能更好地理解面向?qū)ο蟮母拍钕到y(tǒng)設(shè)計員能更好地理解面向?qū)ο蟮母拍頽獲得更好質(zhì)量的系統(tǒng)技術(shù)獲得更好質(zhì)量的系統(tǒng)技術(shù)n是找到軟件錯誤、進行測試以及提供質(zhì)量保障的一種是找到軟件錯誤、進行測試以及提供質(zhì)量保障的一種框架框架n是文檔化軟
50、件構(gòu)件、特別是接口的一種技術(shù)是文檔化軟件構(gòu)件、特別是接口的一種技術(shù)n一種處理異常的技術(shù)一種處理異常的技術(shù)7體系結(jié)構(gòu)描述語言n體系結(jié)構(gòu)描述語言(體系結(jié)構(gòu)描述語言(ADL)是一種能用來代表)是一種能用來代表體系結(jié)構(gòu)并能對體系結(jié)構(gòu)進行推理的形式語言。體系結(jié)構(gòu)并能對體系結(jié)構(gòu)進行推理的形式語言。這些語言分析和比較了軟件體系結(jié)構(gòu)的前景。這些語言分析和比較了軟件體系結(jié)構(gòu)的前景。一個人們關(guān)注的焦點是,怎樣把體系結(jié)構(gòu)描述一個人們關(guān)注的焦點是,怎樣把體系結(jié)構(gòu)描述語言用于構(gòu)件接口的規(guī)格說明。盡管這些技術(shù)語言用于構(gòu)件接口的規(guī)格說明。盡管這些技術(shù)展示了應(yīng)用前景,但目前這些技術(shù)還處于探索展示了應(yīng)用前景,但目前這些技術(shù)還處
51、于探索階段。階段。 8體系結(jié)構(gòu)評價n軟件體系結(jié)構(gòu)師和體系結(jié)構(gòu)團隊的一個基本任軟件體系結(jié)構(gòu)師和體系結(jié)構(gòu)團隊的一個基本任務(wù)是評價軟件體系結(jié)構(gòu)。團隊成員應(yīng)不斷地分務(wù)是評價軟件體系結(jié)構(gòu)。團隊成員應(yīng)不斷地分析體系結(jié)構(gòu),看它是否達到風(fēng)險承擔(dān)者的目標。析體系結(jié)構(gòu),看它是否達到風(fēng)險承擔(dān)者的目標。這意味著,評價該體系結(jié)構(gòu)是否具有理想的特這意味著,評價該體系結(jié)構(gòu)是否具有理想的特性(如可維護性和可測試性)。性(如可維護性和可測試性)。n大多數(shù)體系結(jié)構(gòu)評價是特定的,評價過程是邊大多數(shù)體系結(jié)構(gòu)評價是特定的,評價過程是邊開發(fā)邊評價。開發(fā)邊評價。 5.4.2 軟件分治策略軟件分治策略n“分治法分治法”是軟件設(shè)計中的一種基本
52、技術(shù)。分是軟件設(shè)計中的一種基本技術(shù)。分治法的目標是把一個大系統(tǒng)分解成多個可控制治法的目標是把一個大系統(tǒng)分解成多個可控制的子系統(tǒng),或者分成一組子系統(tǒng)并找出其中相的子系統(tǒng),或者分成一組子系統(tǒng)并找出其中相關(guān)的軟件構(gòu)件。關(guān)的軟件構(gòu)件。n在劃分一個系統(tǒng)時,系統(tǒng)中的元素應(yīng)按在劃分一個系統(tǒng)時,系統(tǒng)中的元素應(yīng)按“高內(nèi)高內(nèi)聚、低耦合聚、低耦合”的原則來分組,且其分組結(jié)果應(yīng)的原則來分組,且其分組結(jié)果應(yīng)該最小化。在把系統(tǒng)分成由不同開發(fā)團隊開發(fā)該最小化。在把系統(tǒng)分成由不同開發(fā)團隊開發(fā)的子系統(tǒng)時,這點特別關(guān)鍵。的子系統(tǒng)時,這點特別關(guān)鍵。 具體策略如下:具體策略如下:n策略策略1功能分解功能分解n策略策略2獨立配置數(shù)據(jù)獨
53、立配置數(shù)據(jù)n策略策略3獨立出特有的硬件構(gòu)件獨立出特有的硬件構(gòu)件n策略策略4獨立出時間至上的構(gòu)件獨立出時間至上的構(gòu)件n策略策略5將人機接口與實現(xiàn)模型分離將人機接口與實現(xiàn)模型分離n策略策略6從實現(xiàn)技術(shù)中分離出領(lǐng)域?qū)崿F(xiàn)模型從實現(xiàn)技術(shù)中分離出領(lǐng)域?qū)崿F(xiàn)模型n策略策略7從監(jiān)控中分離主要功能從監(jiān)控中分離主要功能n策略策略8分離錯誤恢復(fù)處理分離錯誤恢復(fù)處理n策略策略9使用外部接口適配構(gòu)件使用外部接口適配構(gòu)件5.4.3 軟件可變性和依賴性管理軟件可變性和依賴性管理n前面章節(jié)描述了一系列為創(chuàng)建基于獨立軟件功前面章節(jié)描述了一系列為創(chuàng)建基于獨立軟件功能元素的不同技術(shù)。然而,每一個增加的獨立能元素的不同技術(shù)。然而,每一
54、個增加的獨立元素會帶來不同個體之間的依賴關(guān)系。元素會帶來不同個體之間的依賴關(guān)系。 5.4.4 集成策略集成策略n有兩種主要的集成策略:有兩種主要的集成策略:n其一是純數(shù)據(jù)集成,這意味著系統(tǒng)沒有一個構(gòu)件被另其一是純數(shù)據(jù)集成,這意味著系統(tǒng)沒有一個構(gòu)件被另一個構(gòu)件直接使用的情況;一個構(gòu)件直接使用的情況;n其二是可執(zhí)行集成,即一個獨立的可執(zhí)行構(gòu)件用來完其二是可執(zhí)行集成,即一個獨立的可執(zhí)行構(gòu)件用來完成某個系統(tǒng)功能??蓤?zhí)行構(gòu)件由控制構(gòu)件控制,控制成某個系統(tǒng)功能??蓤?zhí)行構(gòu)件由控制構(gòu)件控制,控制構(gòu)件需要一個執(zhí)行基礎(chǔ),這一執(zhí)行基礎(chǔ)允許控制構(gòu)件構(gòu)件需要一個執(zhí)行基礎(chǔ),這一執(zhí)行基礎(chǔ)允許控制構(gòu)件啟動可執(zhí)行構(gòu)件并與之交換
55、數(shù)據(jù)。在此的執(zhí)行基礎(chǔ)可啟動可執(zhí)行構(gòu)件并與之交換數(shù)據(jù)。在此的執(zhí)行基礎(chǔ)可以是任何東西:從操作系統(tǒng)過程執(zhí)行工具到網(wǎng)絡(luò)協(xié)議。以是任何東西:從操作系統(tǒng)過程執(zhí)行工具到網(wǎng)絡(luò)協(xié)議。 5.5 將需求映射到軟件體系結(jié)構(gòu) :以結(jié)構(gòu)化方法為例n5.5.1變換流變換流n具有較明顯的輸入、變換(或主加工)和輸出具有較明顯的輸入、變換(或主加工)和輸出的數(shù)據(jù)流圖稱為變換型數(shù)據(jù)流圖。在變換型數(shù)的數(shù)據(jù)流圖稱為變換型數(shù)據(jù)流圖。在變換型數(shù)據(jù)流圖中,主加工是系統(tǒng)的中心,在圖據(jù)流圖中,主加工是系統(tǒng)的中心,在圖5.18中,中,“計算匯費計算匯費”是主加工。是主加工。n某個加工將它的輸入分離成一串發(fā)散的數(shù)據(jù)流,形成某個加工將它的輸入分離成
56、一串發(fā)散的數(shù)據(jù)流,形成許多活動路徑,并根據(jù)輸入的值選擇其中一條路徑,許多活動路徑,并根據(jù)輸入的值選擇其中一條路徑,具有這樣特征的數(shù)據(jù)流圖是事務(wù)型數(shù)據(jù)流圖。具有這樣特征的數(shù)據(jù)流圖是事務(wù)型數(shù)據(jù)流圖。n事務(wù)型數(shù)據(jù)流圖完成下述任務(wù):事務(wù)型數(shù)據(jù)流圖完成下述任務(wù): (1)接收輸入數(shù)據(jù))接收輸入數(shù)據(jù)(輸入數(shù)據(jù)又稱為事務(wù)輸入數(shù)據(jù)又稱為事務(wù)); (2)分析每個事務(wù)以確定它的類型;)分析每個事務(wù)以確定它的類型; (3)根據(jù)事務(wù)類型選取一條活動通路。)根據(jù)事務(wù)類型選取一條活動通路。n這類系統(tǒng)的特征,是具有在多種事務(wù)中執(zhí)行某類事務(wù)這類系統(tǒng)的特征,是具有在多種事務(wù)中執(zhí)行某類事務(wù)的能力。當(dāng)外部信息沿著接受路徑進入系統(tǒng)后,
57、經(jīng)過的能力。當(dāng)外部信息沿著接受路徑進入系統(tǒng)后,經(jīng)過事務(wù)中心獲得某一個特定值,就能據(jù)此啟動某一條動事務(wù)中心獲得某一個特定值,就能據(jù)此啟動某一條動作路徑的操作。在數(shù)據(jù)處理系統(tǒng)中,事務(wù)型結(jié)構(gòu)是經(jīng)作路徑的操作。在數(shù)據(jù)處理系統(tǒng)中,事務(wù)型結(jié)構(gòu)是經(jīng)常遇到的。常遇到的。 5.5.2事務(wù)流事務(wù)流n在一個大型系統(tǒng)的數(shù)據(jù)流圖中,變換型和事務(wù)在一個大型系統(tǒng)的數(shù)據(jù)流圖中,變換型和事務(wù)型兩類結(jié)構(gòu)往往同時存在。型兩類結(jié)構(gòu)往往同時存在。n上圖說明了使用面向數(shù)據(jù)流方法的設(shè)計過程。上圖說明了使用面向數(shù)據(jù)流方法的設(shè)計過程。 n(1)復(fù)審并精化數(shù)據(jù)流圖。)復(fù)審并精化數(shù)據(jù)流圖。n(2)鑒別數(shù)據(jù)流圖是屬于變換型還是事務(wù)型。)鑒別數(shù)據(jù)流圖
58、是屬于變換型還是事務(wù)型。n(3)按照結(jié)構(gòu)化設(shè)計的方法,把數(shù)據(jù)流圖轉(zhuǎn))按照結(jié)構(gòu)化設(shè)計的方法,把數(shù)據(jù)流圖轉(zhuǎn)換為初始的軟件結(jié)構(gòu)圖。換為初始的軟件結(jié)構(gòu)圖。n(4)按照啟發(fā)式規(guī)則的指導(dǎo),改進初始的軟)按照啟發(fā)式規(guī)則的指導(dǎo),改進初始的軟件結(jié)構(gòu)圖,優(yōu)化設(shè)計,獲得最終軟件結(jié)構(gòu)圖。件結(jié)構(gòu)圖,優(yōu)化設(shè)計,獲得最終軟件結(jié)構(gòu)圖。 n(5)寫出詳細的接口描述和全局數(shù)據(jù)結(jié)構(gòu)。)寫出詳細的接口描述和全局數(shù)據(jù)結(jié)構(gòu)。n(6)復(fù)查優(yōu)化后的設(shè)計。)復(fù)查優(yōu)化后的設(shè)計。5.6 面向數(shù)據(jù)流方法設(shè)計過程 5.6.1 變換映射變換映射n例例 我們已經(jīng)開始進入我們已經(jīng)開始進入“智能智能”產(chǎn)品時代。在這類產(chǎn)品中產(chǎn)品時代。在這類產(chǎn)品中把軟件做在只讀
59、存儲器中,成為設(shè)備的一部分,從而使把軟件做在只讀存儲器中,成為設(shè)備的一部分,從而使設(shè)備具有某些設(shè)備具有某些“智能智能”。因此,這類產(chǎn)品的設(shè)計都包含。因此,這類產(chǎn)品的設(shè)計都包含軟件開發(fā)的任務(wù)。作為面向數(shù)據(jù)流的設(shè)計方法中變換分軟件開發(fā)的任務(wù)。作為面向數(shù)據(jù)流的設(shè)計方法中變換分析的例子,考慮汽車數(shù)字儀表板的設(shè)計。析的例子,考慮汽車數(shù)字儀表板的設(shè)計。n假設(shè)的儀表板將完成下述功能:假設(shè)的儀表板將完成下述功能:n(1) 通過模數(shù)轉(zhuǎn)換實現(xiàn)傳感器和微處理機接口;通過模數(shù)轉(zhuǎn)換實現(xiàn)傳感器和微處理機接口;n(2) 在發(fā)光二極管面板上顯示數(shù)據(jù);在發(fā)光二極管面板上顯示數(shù)據(jù);n(3) 指示每小時英里數(shù)指示每小時英里數(shù)(mp
60、h),行駛的里程,每加侖油,行駛的里程,每加侖油行駛的英里數(shù)行駛的英里數(shù)(mpg)等等;等等;n(4) 指示加速或減速;指示加速或減速;n(5) 超速警告:如果車速超過超速警告:如果車速超過55英里英里/小時,則發(fā)出超小時,則發(fā)出超速警告鈴聲。速警告鈴聲。 n(1 1) 復(fù)審并精化數(shù)據(jù)流圖。假設(shè)精化后的數(shù)復(fù)審并精化數(shù)據(jù)流圖。假設(shè)精化后的數(shù)字儀表板系統(tǒng)的數(shù)據(jù)流圖如圖所示。字儀表板系統(tǒng)的數(shù)據(jù)流圖如圖所示。 n(2 2)鑒別數(shù)據(jù)流圖是屬于變換型還是事務(wù)型。從上圖)鑒別數(shù)據(jù)流圖是屬于變換型還是事務(wù)型。從上圖看出,數(shù)據(jù)沿著兩條輸入通路進入系統(tǒng),然后沿著看出,數(shù)據(jù)沿著兩條輸入通路進入系統(tǒng),然后沿著5 5條
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年度年福建省高校教師資格證之高等教育心理學(xué)自我檢測試卷A卷附答案
- 2024年度山西省高校教師資格證之高等教育法規(guī)通關(guān)提分題庫及完整答案
- 2024年合成膠粘劑項目投資申請報告代可行性研究報告
- 2024年私人損害賠償自愿協(xié)議
- 高校食品專業(yè)實驗室安全管理探究
- 新形勢下企業(yè)經(jīng)濟管理創(chuàng)新思路探究
- 2024年商業(yè)樓宇化糞池建造協(xié)議范例
- 2024年加工區(qū)租賃協(xié)議
- 2024年度工程地質(zhì)勘察協(xié)議范本
- 2024屆安徽省安大附中高三下學(xué)期第一次診斷測試數(shù)學(xué)試題
- 上海市虹口區(qū)2024學(xué)年第一學(xué)期期中考試初三物理試卷-教師版
- 陜西省渭南市臨渭區(qū)渭南市三賢中學(xué)2024-2025學(xué)年高一上學(xué)期11月期中考試生物試題(無答案)
- 期中模擬檢測(1-3單元)2024-2025學(xué)年度第一學(xué)期蘇教版一年級數(shù)學(xué)
- 四川省食品生產(chǎn)企業(yè)食品安全員理論考試題庫(含答案)
- 期中考試(1-4單元)(試題)-2024-2025學(xué)年六年級上冊數(shù)學(xué)西師大版
- 病理學(xué)實驗2024(臨床 口腔)學(xué)習(xí)通超星期末考試答案章節(jié)答案2024年
- 2024年廣西安全員C證考試題庫及答案
- 財政學(xué)-第16章-政府預(yù)算與預(yù)算管理體制
- 時間介詞in,on,at的區(qū)別 教學(xué)課件
- 強度計算.常用材料的強度特性:陶瓷材料:陶瓷材料的抗彎強度計算
- 形勢與政策24秋-專題測驗1-5-國開-參考資料
評論
0/150
提交評論