軟件體系結(jié)構(gòu)原理、方法與實(shí)踐總結(jié)_第1頁
軟件體系結(jié)構(gòu)原理、方法與實(shí)踐總結(jié)_第2頁
軟件體系結(jié)構(gòu)原理、方法與實(shí)踐總結(jié)_第3頁
軟件體系結(jié)構(gòu)原理、方法與實(shí)踐總結(jié)_第4頁
軟件體系結(jié)構(gòu)原理、方法與實(shí)踐總結(jié)_第5頁
已閱讀5頁,還剩7頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、第1章:軟件體系結(jié)構(gòu)概論什么是軟件危機(jī),軟件危機(jī)的具體表現(xiàn)有哪些?軟件危機(jī):落后的軟件生產(chǎn)方式無法滿足迅速增長的計(jì)算機(jī)軟件需求,從而導(dǎo)致軟件開發(fā)與維護(hù)過程中出現(xiàn)一系列嚴(yán)重問題的現(xiàn)象。軟件危機(jī)的表現(xiàn):軟件成本日益增長,開發(fā)進(jìn)度難以控制,軟件質(zhì)量差,軟件維護(hù)困難產(chǎn)生軟件危機(jī)的原因,如何克服軟件危機(jī)?產(chǎn)生軟件危機(jī)的原因有用戶需求不明確,缺乏正確的理論指導(dǎo),軟件規(guī)模越來越大,軟件復(fù)雜度越來越高。人們面臨的不光是技術(shù)問題,更重要的是管理問題。要提高軟件開發(fā)效率,提高軟件產(chǎn)品質(zhì)量,必須采用工程化的開發(fā)方法與生產(chǎn)技術(shù)。在技術(shù)上,應(yīng)該采用基于重用的軟件生產(chǎn)技術(shù);在管理上,應(yīng)該采用多維的工程管理模式。構(gòu)件:(c

2、omponents,也譯為組件,部件):是指語義完整、語法正確和有可重用價(jià)值的單位軟件,是軟件重用過程中可以明確辨識的系統(tǒng);結(jié)構(gòu)上,它是語義描述、通訊接口和實(shí)現(xiàn)代碼的復(fù)合體。是具有某種功能的可重用的軟件模板單元,表示了系統(tǒng)中主要的計(jì)算元素和數(shù)據(jù)存儲。軟件架構(gòu)師的關(guān)注點(diǎn):關(guān)注的首先不是功能,而是品質(zhì)關(guān)注點(diǎn)(非功能性需求) 。涉眾關(guān)注的是那些品質(zhì),如性能,安全,可伸縮性,還是可變性,可維護(hù)性,可用性等。理解的涉眾的品質(zhì)關(guān)注點(diǎn)后,考慮折中。分而治之,保持概念完整性軟件體系結(jié)構(gòu)的定義軟件體系結(jié)構(gòu)為軟件系統(tǒng)提供了一個(gè)結(jié)構(gòu)、行為和屬性的高級抽象,由構(gòu)成系統(tǒng)的元素的描述,這些元素的相互作用、指導(dǎo)元素集成的模

3、式以及這些模式的約束組成。軟件架構(gòu)不僅指定了系統(tǒng)的組織結(jié)構(gòu)和拓?fù)浣Y(jié)構(gòu),并且顯示了系統(tǒng)需求和構(gòu)成系統(tǒng)的元素之間的對應(yīng)關(guān)系,提供了一些設(shè)計(jì)決策的基本原理。軟件體系結(jié)構(gòu)的意義體系結(jié)構(gòu)是風(fēng)險(xiǎn)承擔(dān)者進(jìn)行交流的手段,體系結(jié)構(gòu)是早期設(shè)計(jì)決策的體現(xiàn),它明確了對系統(tǒng)實(shí)現(xiàn)的約束條件,決定了開發(fā)和維護(hù)組織的組織結(jié)構(gòu),制約著系統(tǒng)的質(zhì)量屬性,可以預(yù)測軟件的質(zhì)量,是推理和控制更改更簡單,有助于循序漸進(jìn)的原型設(shè)計(jì)。同時(shí),軟件體系結(jié)構(gòu)是可傳遞和可重用的模型。軟件體系結(jié)構(gòu)的應(yīng)用現(xiàn)狀目前,軟件體系結(jié)構(gòu)領(lǐng)域研究非常活躍,歸納現(xiàn)有體系結(jié)構(gòu)的研究活動(dòng),主要包括以下幾個(gè)方面1.軟件體系結(jié)構(gòu)描述語言2.體系結(jié)構(gòu)構(gòu)造與表示3.體系結(jié)構(gòu)分析、

4、設(shè)計(jì)與驗(yàn)證4.體系結(jié)構(gòu)發(fā)現(xiàn)、演化與重用5.基于體系結(jié)構(gòu)的軟件開發(fā)方法6.特定領(lǐng)域的體系結(jié)構(gòu)框架7.軟件體系結(jié)構(gòu)支持工具8.軟件產(chǎn)品線體系結(jié)構(gòu)9.建立評價(jià)軟件體系結(jié)構(gòu)的方法架構(gòu)分析、設(shè)計(jì)與驗(yàn)證,發(fā)現(xiàn)、演化與重用架構(gòu)分析的內(nèi)容可分為結(jié)構(gòu)分析、功能分析和非功能分析。生成一個(gè)滿足軟件需求的架構(gòu)的過程即為架構(gòu)設(shè)計(jì)。架構(gòu)設(shè)計(jì)過程的本質(zhì)在于將系統(tǒng)分解成相應(yīng)的組成成分,并將這些成分重新組裝成一個(gè)系統(tǒng)。 架構(gòu)設(shè)計(jì)有兩大類方法:過程驅(qū)動(dòng)方法和問題列表驅(qū)動(dòng)方法。架構(gòu)測試著重于仿真系統(tǒng)模型,解決架構(gòu)層的主要問題。由于測試的抽象層次不同,架構(gòu)測試策略可以分為單元/子系統(tǒng)/集成/驗(yàn)收測試等階段的測試策略。架構(gòu)發(fā)現(xiàn) 從既存

5、系統(tǒng)中提取軟件的架構(gòu),屬逆向工程。架構(gòu)重用 屬于設(shè)計(jì)重用,比代碼重用更抽象。由于軟件架構(gòu)是系統(tǒng)的高層抽象,反映了系統(tǒng)的主要組成元素及其交互關(guān)系,因而較算法更穩(wěn)定,更適合于重用。軟件架構(gòu)演化是指由于系統(tǒng)需求、技術(shù)、環(huán)境、分布等因素的變化而導(dǎo)致軟件架構(gòu)的變動(dòng)。軟件系統(tǒng)在運(yùn)行時(shí)的架構(gòu)變化稱為架構(gòu)的動(dòng)態(tài)性,而將架構(gòu)的靜態(tài)修改稱為架構(gòu)擴(kuò)展。兩者都是架構(gòu)適應(yīng)性和演化性的研究范疇。第2章 軟件體系結(jié)構(gòu)建模。軟件體系結(jié)構(gòu)建模的種類結(jié)構(gòu)模型、框架模型、動(dòng)態(tài)模型、過程模型和功能模型什么是“4+1視圖”,分別給出每個(gè)視圖的名稱和主要關(guān)注點(diǎn)。“4+1”的視圖模型是Kruchten于1995年提出的用于描述軟件體系結(jié)構(gòu)

6、的方式,主要用5個(gè)不同的視圖:邏輯視圖、進(jìn)程視圖、物理視圖、開發(fā)視圖和場景視圖來描述軟件體系結(jié)構(gòu)。每一個(gè)視圖只關(guān)心系統(tǒng)的一個(gè)側(cè)面,5個(gè)視圖結(jié)合在一起才能反映系統(tǒng)的軟件體系結(jié)構(gòu)的全部內(nèi)容軟件體系結(jié)構(gòu)的生命周期模型軟件體系結(jié)構(gòu)的非形式化描述,軟件體系結(jié)構(gòu)的規(guī)范描述和分析,軟件體系結(jié)構(gòu)的求精及其驗(yàn)證,軟件體系結(jié)構(gòu)的實(shí)施,軟件體系結(jié)構(gòu)的演化和拓展,軟件體系結(jié)構(gòu)的提供、評價(jià)和度量,軟件體系結(jié)構(gòu)的終結(jié)容器容器是指一個(gè)在其內(nèi)部可以執(zhí)行構(gòu)件或駐留數(shù)據(jù)的東西。它可以是從網(wǎng)絡(luò)或應(yīng)用服務(wù)器直到富客戶端應(yīng)用或數(shù)據(jù)庫的任何東西。容器通常是可執(zhí)行文件,但未必是各自獨(dú)立的流程。C4模型在面向?qū)ο蟮南到y(tǒng)中,通常系統(tǒng)由多個(gè)容器

7、組成,容器由多個(gè)構(gòu)件組成,構(gòu)件由多個(gè)類組成第3章 軟件體系結(jié)構(gòu)風(fēng)格。軟件架構(gòu)風(fēng)格的定義諸風(fēng)格的特征數(shù)據(jù)流風(fēng)格:批處理序列;管道/過濾器。管道與過濾器風(fēng)格的軟件體系結(jié)構(gòu)的特點(diǎn)(1)使得軟構(gòu)件具有良好的隱蔽性和高內(nèi)聚、低耦合的特點(diǎn);(2)允許設(shè)計(jì)者將整個(gè)系統(tǒng)的輸入/輸出行為看成是多個(gè)過濾器的行為的簡單合成;(3)支持軟件重用。(4)系統(tǒng)維護(hù)和增強(qiáng)系統(tǒng)性能簡單。(5)允許對一些如吞吐量、死鎖等屬性的分析;(6)支持并行執(zhí)行。但是,這樣的系統(tǒng)也存在著若干不利因素。 (1)通常導(dǎo)致進(jìn)程成為批處理的結(jié)構(gòu)。這是因?yàn)殡m然過濾器可增量式地處理數(shù)據(jù),但它們是獨(dú)立的,所以設(shè)計(jì)者必須將每個(gè)過濾器看成一個(gè)完整的從輸入到

8、輸出的轉(zhuǎn)換。(2)不適合處理交互的應(yīng)用。當(dāng)需要增量地顯示改變時(shí),這個(gè)問題尤為嚴(yán)重。(3)因?yàn)樵跀?shù)據(jù)傳輸上沒有通用的標(biāo)準(zhǔn),每個(gè)過濾器都增加了解析和合成數(shù)據(jù)的工作,這樣就導(dǎo)致了系統(tǒng)性能下降,并增加了編寫過濾器的復(fù)雜性。調(diào)用/返回風(fēng)格:主程序/子程序;面向?qū)ο箫L(fēng)格;層次結(jié)構(gòu)。面向?qū)ο蟮膬?yōu)點(diǎn)能形象地表現(xiàn)現(xiàn)實(shí)世界的領(lǐng)域,重用性高,對應(yīng)變化很強(qiáng)。 即易擴(kuò)展, 維護(hù)性強(qiáng)數(shù)據(jù)抽象和面向?qū)ο蠼M織缺點(diǎn)性能損失。 面向?qū)ο缶幊虨榱耍褐赜眯浴?靈活性和擴(kuò)展性等特性而作出的犧牲。測試比較麻煩,對整體系統(tǒng)設(shè)計(jì)要求高獨(dú)立構(gòu)件風(fēng)格:進(jìn)程通訊;事件系統(tǒng)。基于事件的隱式調(diào)用優(yōu)點(diǎn):為軟件重用提供了強(qiáng)大的支持。 當(dāng)需要將一個(gè)構(gòu)件加入

9、現(xiàn)存系統(tǒng)中時(shí),只需將它注冊到系統(tǒng)的事件中。為改進(jìn)系統(tǒng)帶來了方便。 當(dāng)用一個(gè)構(gòu)件代替另一個(gè)構(gòu)件時(shí),不會影響到其它構(gòu)件的接口?;谑录碾[式調(diào)用缺點(diǎn):構(gòu)件放棄了對系統(tǒng)計(jì)算的控制。數(shù)據(jù)交換的問題。 有時(shí)數(shù)據(jù)可被一個(gè)事件傳遞,但有時(shí)系統(tǒng)必須依靠一個(gè)共享的倉庫進(jìn)行交互。 這時(shí)全局性能和資源管理便成了問題。既然過程的語義必須依賴于被觸發(fā)事件的上下文約束,關(guān)于正確性的推理存在問題。分層系統(tǒng)優(yōu)點(diǎn):支持基于抽象程度遞增的系統(tǒng)設(shè)計(jì),使設(shè)計(jì)者可以把一個(gè)復(fù)雜系統(tǒng)按遞增的步驟進(jìn)行分解;支持功能增強(qiáng),因?yàn)槊恳粚又炼嗪拖噜彽纳舷聦咏换?,因此功能的改變最多影響相鄰的上下層;支持重用?只要提供的服務(wù)接口定義不變,同一層的不同

10、實(shí)現(xiàn)可以交換使用。 這樣,就可以定義一組標(biāo)準(zhǔn)的接口,而允許各種不同的實(shí)現(xiàn)方法。分層系統(tǒng)缺點(diǎn):并不是每個(gè)系統(tǒng)都可以很容易地劃分為分層的模式,甚至即使一個(gè)系統(tǒng)的邏輯結(jié)構(gòu)是層次化的,出于對系統(tǒng)性能的考慮,系統(tǒng)設(shè)計(jì)師不得不把一些低級或高級的功能綜合起來;很難找到一個(gè)合適的、 正確的層次抽象方法。虛擬機(jī)風(fēng)格:解釋器;基于規(guī)則的系統(tǒng)。倉庫風(fēng)格:數(shù)據(jù)庫系統(tǒng);超文本系統(tǒng);黑板系統(tǒng)。請簡要說明黑板風(fēng)格的定義。黑板結(jié)構(gòu)是一個(gè)六至八層的層次結(jié)構(gòu),每一層都抽象了與之相鄰的較低一層的信息。知識源代表整個(gè)問題求解中的獨(dú)立的子任務(wù)。每個(gè)知識源被組織成一個(gè)條件部分和一個(gè)動(dòng)作部分,條件部分規(guī)定什么時(shí)候知識源可用,動(dòng)作部分負(fù)責(zé)處

11、理相關(guān)的黑板元素并產(chǎn)生新的元素??刂茦?gòu)件作為黑板的監(jiān)控程序和調(diào)度程序;通常將黑板知識源應(yīng)用到黑板中各種元素具有優(yōu)先次序,調(diào)度程序負(fù)責(zé)監(jiān)控黑板和計(jì)算的優(yōu)先次序。C2風(fēng)格C2風(fēng)格的特點(diǎn)C2體系結(jié)構(gòu)風(fēng)格:可以概括為通過連接件綁定在一起的按照一組規(guī)則動(dòng)作的并行構(gòu)件網(wǎng)絡(luò)。組織規(guī)則有:1、系統(tǒng)中的構(gòu)件和連接件都有一個(gè)頂部一個(gè)底部。2、構(gòu)件的頂部應(yīng)連接到某連接件的底部,構(gòu)件的底部應(yīng)連接到連接件的頂部,構(gòu)件之間不能直接連接。3、一個(gè)連接件可以和任意數(shù)目的其他構(gòu)件和連接件相連。4、當(dāng)兩個(gè)連接件直接相連時(shí),必須由其中一個(gè)底部到另一個(gè)的頂部。C2風(fēng)格的特點(diǎn):系統(tǒng)中的構(gòu)件可實(shí)現(xiàn)應(yīng)用需求,并能將任意復(fù)雜度的功能封裝在一

12、起;所有構(gòu)件之間的通訊是通過以連接件為中介的異步消息交換機(jī)制來實(shí)現(xiàn)的;構(gòu)件相對獨(dú)立,構(gòu)件之間依賴性較少。系統(tǒng)中不存在某些構(gòu)件將在同一地址空間內(nèi)執(zhí)行,或某些構(gòu)件共享特定控制線程之類的相關(guān)性假設(shè)。C/S風(fēng)格C/S風(fēng)格優(yōu)點(diǎn):C/S架構(gòu)具有強(qiáng)大的數(shù)據(jù)操作和事務(wù)處理能力,模型思想簡單,易于理解。系統(tǒng)的客戶應(yīng)用程序和服務(wù)器構(gòu)件分別運(yùn)行在不同計(jì)算機(jī)上,系統(tǒng)中每臺服務(wù)器都可以適合各構(gòu)件的要求,這對于硬件和軟件的變化顯示出極大的適應(yīng)性和靈活性,而且易于對系統(tǒng)進(jìn)行擴(kuò)充和縮小。系統(tǒng)中的功能構(gòu)件充分隔離,客戶應(yīng)用程序的開發(fā)集中于數(shù)據(jù)的顯示和分析,而數(shù)據(jù)庫服務(wù)器的開發(fā)則集中于數(shù)據(jù)的管理。 將大的應(yīng)用處理任務(wù)分布到許多通

13、過網(wǎng)絡(luò)連接的低成本計(jì)算機(jī)上,以節(jié)約費(fèi)用。C/S風(fēng)格缺點(diǎn):開發(fā)成本較高,客戶端程序設(shè)計(jì)復(fù)雜,信息內(nèi)容和形式單一,用戶界面風(fēng)格不一,使用繁雜,不利于推廣使用,軟件移植困難,軟件維護(hù)和升級困難,新技術(shù)不能輕易應(yīng)用三層C/S風(fēng)格三層C/S風(fēng)格優(yōu)點(diǎn):允許合理地劃分三層結(jié)構(gòu)的功能,使之在邏輯上保持相對獨(dú)立性,能提高系統(tǒng)和軟件的可維護(hù)性,和可擴(kuò)展性。允許更靈活選用相應(yīng)的平臺和硬件系統(tǒng),使之在處理負(fù)荷能力上與處理特性上分別適應(yīng)于三層;并且這些平臺和各個(gè)組成部分可以具有良好的可升級性和開放性。應(yīng)用的各層可以并行開發(fā),可以選擇各自最適合的開發(fā)語言。利用功能層有效地隔離開表示層與數(shù)據(jù)層,未授權(quán)的用戶難以繞過功能層而

14、利用數(shù)據(jù)庫工具或黑客手段非法訪問數(shù)據(jù)層,為嚴(yán)格的安全管理奠定了堅(jiān)實(shí)的基礎(chǔ)。要注意的問題:三層C/S結(jié)構(gòu)各層間的通信效率若不高,即使分配給各層的硬件能力很強(qiáng),其作為整體來說也達(dá)不到所要求的性能。設(shè)計(jì)時(shí)必須慎重考慮三層間的通信方法、 通信頻度及數(shù)據(jù)量。 這和提高各層的獨(dú)立性一樣是三層C/S結(jié)構(gòu)的關(guān)鍵問題。三層B/S風(fēng)格B/S風(fēng)格就是上述三層應(yīng)用結(jié)構(gòu)的一種實(shí)現(xiàn)方式,其具體結(jié)構(gòu)為:瀏覽器/Web服務(wù)器/數(shù)據(jù)庫服務(wù)器。優(yōu)點(diǎn)(1)基于B/S體系結(jié)構(gòu)的軟件,系統(tǒng)安裝,修改和維護(hù)全在服務(wù)器端解決。(2)提供了異種機(jī),異種網(wǎng),異種應(yīng)用服務(wù)的聯(lián)機(jī),聯(lián)網(wǎng),同意服務(wù)的最現(xiàn)實(shí)的開放性基礎(chǔ)。缺點(diǎn)(1)缺乏對動(dòng)態(tài)頁面的支持

15、能力,沒有集成有效的數(shù)據(jù)庫處理能力。(2)在數(shù)據(jù)查詢等響應(yīng)速度上,要遠(yuǎn)遠(yuǎn)低于C/S體系結(jié)構(gòu)。(3)數(shù)據(jù)提交一般以頁面為單位,數(shù)據(jù)的動(dòng)態(tài)交互性不強(qiáng),不利于在線事務(wù)處理應(yīng)用。異構(gòu)風(fēng)格領(lǐng)域特定的軟件架構(gòu)(DSSA)典型的軟件系統(tǒng)的架構(gòu)類型游戲系統(tǒng)的體系結(jié)構(gòu)實(shí)例Darkstar商業(yè)系統(tǒng)體系結(jié)構(gòu)實(shí)例Explanner/Ai,Explanner/J第5章 統(tǒng)一建模語言(UML). 復(fù)習(xí)UML的各種圖的含義,用途和畫法類圖在UML中有何重要作用?1.為開發(fā)人員提供這種模仿現(xiàn)實(shí)世界的表達(dá)方式。2.讓分析員使用客戶所采用的術(shù)語和客戶交流,促使客戶說出所要解決的問題的重要細(xì)節(jié)。RUP 4+1圖什么是體系結(jié)構(gòu)描述語

16、言?它與程序語言以及UML有哪些區(qū)別與聯(lián)系?ADL是一種形式化語言,在底層語義模型的支持下,為軟件系統(tǒng)的概念體系結(jié)構(gòu)建模提供了具體語法和概念框架?;诘讓诱Z義的工具為體系結(jié)構(gòu)的表示、分析、演化、細(xì)化、設(shè)計(jì)過程等提供支持。其三個(gè)基本元素是:構(gòu)件、連接件、體系結(jié)構(gòu)配置。跟其他語言的比較:構(gòu)造能力:ADL能夠使用較小的獨(dú)立體系結(jié)構(gòu)元素來建造大型軟件系統(tǒng);抽象能力:ADL使得軟件體系結(jié)構(gòu)中的構(gòu)件和連接件描述可以只關(guān)注它們的抽象特性,而不管其具體的實(shí)現(xiàn)細(xì)節(jié);重用能力:ADL使得組成軟件系統(tǒng)的構(gòu)件、連接件甚至是軟件體系結(jié)構(gòu)都成為軟件系統(tǒng)開發(fā)和設(shè)計(jì)的可重用部件;組合能力:ADL使得其描述的每一系統(tǒng)元素都有其

17、自己的局部結(jié)構(gòu),這種描述局部結(jié)構(gòu)的特點(diǎn)使得ADL支持軟件系統(tǒng)的動(dòng)態(tài)變化組合;異構(gòu)能力:ADL允許多個(gè)不同的體系結(jié)構(gòu)描述關(guān)聯(lián)存在;分析和推理能力:ADL允許對其描述的體系結(jié)構(gòu)進(jìn)行多種不同的性能和功能上的多種推理分析。第6章 可擴(kuò)展標(biāo)記語言(XML).XML的特點(diǎn),作用,應(yīng)用特點(diǎn):簡潔有效;易學(xué)易用;開放的國際化標(biāo)準(zhǔn);高效且可擴(kuò)充作用:使得搜索更加有意義;開發(fā)靈活的Web應(yīng)用軟件;實(shí)現(xiàn)不同數(shù)據(jù)的集成;使用于多種應(yīng)用環(huán)境;客戶端數(shù)據(jù)處理與計(jì)算;數(shù)據(jù)顯示多樣化;局部數(shù)據(jù)更新;與現(xiàn)有Web發(fā)布機(jī)制相兼容;可升級性;壓縮性能高應(yīng)用:應(yīng)用于客戶需要與不同的數(shù)據(jù)源進(jìn)行交互時(shí);應(yīng)用于將大量運(yùn)算復(fù)合分布在客戶端;

18、應(yīng)用于將統(tǒng)一數(shù)據(jù)以不同的面貌展現(xiàn)給不同的用戶;應(yīng)用于網(wǎng)絡(luò)代理對所取得的信息進(jìn)行編輯、增減以適應(yīng)個(gè)人用戶的需要XML與HTML的區(qū)別HTML是一種格式化的語言,一個(gè)HTML文本可以看作一個(gè)格式化的程序,而一段符合XML語法規(guī)范的文本則是一段“純”數(shù)據(jù),它的結(jié)構(gòu)由其它的稱為DTD的文本來描述,而它的處理則可能是任何其它支持XML的容器或程序。與XML相比的另一個(gè)不同點(diǎn)是,XML是一種元標(biāo)記語言。XML定義了一套元句法,與特定領(lǐng)域有關(guān)的標(biāo)記語言都必須遵守。XSL與CSS的區(qū)別XML文檔的解析的各種API接口的特征和選擇原則DOM,SAX,JDOM,JAXP 第8章 基于服務(wù)的體系結(jié)構(gòu)。SOA的定義,

19、特征,用途(目的)什么是SOA,SOA具有哪些特征?SOA,是Service-Oriented Architecture的簡寫,是面向服務(wù)的體系結(jié)構(gòu)的意思,對此,W3C,S和Gartner給出了不同的定義,SOA是一種在計(jì)算環(huán)境中設(shè)計(jì)、開發(fā)、部署和管理離散邏輯單元(服務(wù))模型的方法。由于SOA考慮到了系統(tǒng)內(nèi)的對象,所以雖然SOA是基于對象的,但是作為一個(gè)整體,它卻不是面向?qū)ο蟮摹OA的特征:(1)松散耦合;(2)粗粒度服務(wù);(3)標(biāo)準(zhǔn)化接口。用途(目的):便于將業(yè)務(wù)系統(tǒng)能力分解為獨(dú)立性高(或松散耦合),粗粒度的和可復(fù)用的服務(wù); 便于對服務(wù)進(jìn)行組裝

20、和編排以滿足業(yè)務(wù)和流程的變化需求。SOA的目標(biāo):為方便構(gòu)建數(shù)據(jù)服務(wù),業(yè)務(wù)服務(wù),展現(xiàn)層構(gòu)件,使用戶容易借助界面建模,流程引擎和規(guī)則引擎實(shí)現(xiàn)靈活的應(yīng)用組裝。SOA的設(shè)計(jì)原則明確定義的接口;自包含和模塊化;粗粒度;松耦合;互操作性、兼容和策略聲明SOA的關(guān)鍵技術(shù) 發(fā)現(xiàn)服務(wù)層;描述服務(wù)層;消息格式層;編碼格式層;傳輸協(xié)議層SOA的實(shí)現(xiàn)方法1. Web Service什么是Web服務(wù)?Web服務(wù)具有哪些特點(diǎn)? 答:Web服務(wù)是使用標(biāo)準(zhǔn)技術(shù)在Internet上運(yùn)行的商務(wù)流程,它可以使用標(biāo)準(zhǔn)的Internet協(xié)議,將功能綱領(lǐng)性的體現(xiàn)在Internet和Intranet上。特征:1、使用標(biāo)準(zhǔn)協(xié)議規(guī)范2、使用協(xié)

21、議的規(guī)范性3、高度集成能力4、完好的封裝性5、松散耦合說明Web服務(wù)的體系結(jié)構(gòu)模型?它的三個(gè)核心協(xié)議分別是什么?Web服務(wù)是一種嶄新的分布式計(jì)算模型,是Web上數(shù)據(jù)和信息集成的有效機(jī)制。三個(gè)構(gòu)成元素為:Serverice Broker、Service Provider、Service Requester三個(gè)核心協(xié)議:簡單對象訪問協(xié)議SOAP;統(tǒng)一描述、發(fā)現(xiàn)和集成協(xié)議UDDI;Web服務(wù)描述語言WSDLWEB服務(wù)作為Web服務(wù)體系結(jié)構(gòu)的核心,簡要說明Web服務(wù)的核心技術(shù)及其作用。(1):底層傳輸層,主要負(fù)責(zé)消息的傳輸機(jī)制。(2):服務(wù)通信協(xié)議層,服務(wù)通信協(xié)議層主要是以一種統(tǒng)一的方式描述并定義服務(wù)

22、之間進(jìn)行通信傳輸所需的技術(shù)標(biāo)準(zhǔn)。(3):服務(wù)描述層,主要以一種統(tǒng)一的方式描述服務(wù)的接口和消息交換方式。(4):服務(wù)層,主要功能是將遺留系統(tǒng)進(jìn)行包裝,并通過發(fā)布的WSDL接口描述被定位和調(diào)用。(5):業(yè)務(wù)流程層,主要功能是支持服務(wù)發(fā)現(xiàn),服務(wù)調(diào)用和點(diǎn)到點(diǎn)的服務(wù)調(diào)用,并將業(yè)務(wù)流程從服務(wù)的底層調(diào)用抽象出來。(6):服務(wù)注冊層,主要功能是使服務(wù)提供者能夠通過WSDL發(fā)布服務(wù)定義,并支持服務(wù)請求者查找所需的服務(wù)信息。2. 服務(wù)注冊表3. 企業(yè)服務(wù)總線第9章 富互聯(lián)網(wǎng)應(yīng)用體系結(jié)構(gòu)。RIA的優(yōu)點(diǎn)1.RIA利用相對健壯的客戶端描述引擎,這個(gè)引擎能夠提供內(nèi)容密集、響應(yīng)速度快和圖形豐富的用戶界面。RIA的另一個(gè)好處

23、在于,數(shù)據(jù)能夠被緩存在客戶端,從而可以實(shí)現(xiàn)一個(gè)比基于HTML的響應(yīng)速度更快且數(shù)據(jù)往返于服務(wù)器的次數(shù)更少的用戶界面。RIA客戶端開發(fā)技術(shù)類別Macromedia Flash/Flex;AJAX;Laszlo;Avolon;Java SWT;XUL;Bindows;Oracle Forms Javascript/Html5: 被認(rèn)為是最有前途的RIA技術(shù)Ajax開發(fā)模式Ajax核心技術(shù) Ajax開發(fā)過程AJAX技術(shù)的核心是什么?AJAX是如何將多種已有的技術(shù)綁定在一起的?這些技術(shù)各自起到什么作用?AJAX技術(shù)的核心是javascript調(diào)用XML的異步傳輸。借助于AJAX,可以在用戶單擊按鈕時(shí),使

24、用JavaScript和DHTML立即更新用戶界面,并向服務(wù)器發(fā)出異步請求,以執(zhí)行更新或查詢數(shù)據(jù)庫。當(dāng)請求返回時(shí),就可以使用JavaScript和css來相應(yīng)的更新用戶界面,而不是刷新整個(gè)頁面。最重要的是,用戶甚至不知道瀏覽器正在與服務(wù)器通信,Web站點(diǎn)看起來是即時(shí)響應(yīng)的。XML的高拓展性、高靈活性,使得其可以描述各種不同類的應(yīng)用軟件中的不同類型的數(shù)據(jù),可以實(shí)現(xiàn)不同數(shù)據(jù)的集成。XHTML結(jié)合了部分XML的強(qiáng)大功能和HTML的簡單特性。JavaScript主要用來傳遞用戶界面上的數(shù)據(jù)到服務(wù)端并返回結(jié)果。XMLHttpRequest用來響應(yīng)通過HTTP傳遞的數(shù)據(jù),一旦數(shù)據(jù)返回到客戶端,就可以立刻使

25、用DOM將數(shù)據(jù)顯示在網(wǎng)頁上。DOM為XML文檔的已解析版本定義了一組接口。XSLT能夠減少大量的用JavaScript編寫的應(yīng)用邏輯。CSS提供了從內(nèi)容中分離應(yīng)用樣式和設(shè)計(jì)的機(jī)制。第11章 用戶界面設(shè)計(jì) OO分析模型 - 設(shè)計(jì)模型 接口設(shè)計(jì)包含用戶接口設(shè)計(jì)=用戶界面設(shè)計(jì)用戶界面設(shè)計(jì)的黃金規(guī)則及其含義n 用戶操縱控制 n 減少用戶的記憶負(fù)擔(dān) n 保持界面一致 用戶操作控制以不強(qiáng)迫用戶進(jìn)入不必要的或不希望的動(dòng)作的方式來定義交互模式。提供靈活的交互。允許用戶交互被中斷和撤銷。當(dāng)技能級別增長時(shí)可以使交互流線化并允許定制交互。使用戶與內(nèi)部技術(shù)細(xì)節(jié)隔離開來。設(shè)計(jì)應(yīng)允許用戶與出現(xiàn)在屏幕上的對象直接交互。減輕

26、用戶記憶負(fù)擔(dān)減少對短期記憶的要求。建立有意義的缺省。定義直觀的快捷方式。界面的視覺布局應(yīng)該基于真實(shí)世界的象征。以不斷進(jìn)展的方式揭示信息。保持界面一致允許用戶將當(dāng)前任務(wù)放入有意義的環(huán)境中。在應(yīng)用系統(tǒng)家族內(nèi)保持一致性。如果過去的交互模型已經(jīng)建立起了用戶期望除非有不得已的理由,否則不要改變它。界面分析從哪些方面著手WebApp 界面設(shè)計(jì)有效的WebApp 界面WebApp界面設(shè)計(jì)原則第12章 基于體系結(jié)構(gòu)的軟件開發(fā)軟件設(shè)計(jì)里的模式的層次設(shè)計(jì)模式 定義,作用,分類 什么是設(shè)計(jì)模式?它與風(fēng)格、框架有什么區(qū)別與聯(lián)系?設(shè)計(jì)模式(Design pattern)是一套被反復(fù)使用、多數(shù)人知曉的、經(jīng)過分類編目的、代

27、碼設(shè)計(jì)經(jīng)驗(yàn)的總結(jié)。對通用設(shè)計(jì)問題的重復(fù)解決方案。軟件體系結(jié)構(gòu)風(fēng)格是描述某一特定應(yīng)用領(lǐng)域中系統(tǒng)組織方式的慣用模式。軟件框架是整個(gè)或部分系統(tǒng)的可重用設(shè)計(jì);模式比框架更加抽象;框架是模式的特例化;設(shè)計(jì)模式被實(shí)現(xiàn)成為框架后,可以極大的減輕從設(shè)計(jì)到實(shí)現(xiàn)的鴻溝;利用了模式的框架比沒有利用模式的框架更容易理解、更能被設(shè)計(jì)與實(shí)現(xiàn)重用;通常成熟的框架包含了多種設(shè)計(jì)模式;一個(gè)框架不僅可以具體實(shí)現(xiàn)一個(gè)模式,還可以具體的實(shí)現(xiàn)多個(gè)模式;設(shè)計(jì)模式與風(fēng)格兩者為近義詞,通常情況下可以互相通用;風(fēng)格主要是指大的,宏觀的設(shè)計(jì)。模式既可宏觀,又可微觀。作用:1、復(fù)用解決方案通過復(fù)用已經(jīng)公認(rèn)的設(shè)計(jì),我能夠在解決問題時(shí)取得先發(fā)優(yōu)勢,而

28、且避免重蹈前人覆轍。我可以從學(xué)習(xí)他人的經(jīng)驗(yàn)中獲益,用不著為那些總是會重復(fù)出現(xiàn)的問題再次設(shè)計(jì)解決方案了。2、確立通用術(shù)語開發(fā)中的交流和協(xié)作都需要共同的詞匯基礎(chǔ)和對問題的共識。設(shè)計(jì)模式在項(xiàng)目的分析和設(shè)計(jì)階段提供了共同的基準(zhǔn)點(diǎn)。3、提高觀察高度模式還為我們提供了觀察問題、設(shè)計(jì)過程和面向?qū)ο蟮母邔哟蔚囊暯牵@將使我們從“過早處理細(xì)節(jié)”的桎梏中解放出來。4、大多數(shù)設(shè)計(jì)模式還能使軟件更容易修改和維護(hù)。其原因在于,它們都是久經(jīng)考驗(yàn)的解決方案。所以,它們的結(jié)構(gòu)都是經(jīng)過長期發(fā)展形成的,比新構(gòu)思的解決方案更善于應(yīng)對變化。而且,這些模式所用代碼往往更易于理解從而使代碼更易維護(hù)。美麗的架構(gòu)的原則和特性 GoF的23

29、種經(jīng)典設(shè)計(jì)模式分類:1.創(chuàng)建型模式工廠方法模式抽象工廠模式建造者模式原型模式單例模式2. 結(jié)構(gòu)型模式適配器模式橋接模式組合模式裝飾模式外觀模式享元模式代理模式3.行為型模式職責(zé)鏈模式命令模式解析器模式迭代器模式中介者模式備忘錄模式觀察者模式狀態(tài)模式策略模式模版方法模式訪問者模式工廠模式,抽象工廠模式的具體代碼實(shí)現(xiàn)示例MVC特點(diǎn)和Java實(shí)現(xiàn)示例MVP中間件技術(shù)中間件的定義,優(yōu)點(diǎn),功能,分類,發(fā)展趨勢定義:中間件是處于系統(tǒng)軟件和應(yīng)用軟件之間的一類軟件。優(yōu)點(diǎn):它使設(shè)計(jì)師集中設(shè)計(jì)與應(yīng)用有關(guān)的部分,大大簡化了設(shè)計(jì)和維護(hù)工作。功能:1. 負(fù)責(zé)客戶機(jī)與服務(wù)器之間的連接和通信,以及客戶機(jī)與應(yīng)用之間的高效率通

30、信機(jī)制。2. 提供應(yīng)用層不同服務(wù)之間的互操作機(jī)制沒,以及應(yīng)用層與數(shù)據(jù)庫之間的連接和控制機(jī)制。3. 提供一個(gè)多層體系結(jié)構(gòu)的應(yīng)用開發(fā)和運(yùn)行的平臺,以及一個(gè)應(yīng)用開發(fā)框架,支持模塊化的應(yīng)用開發(fā)。4. 屏蔽硬件、操作系統(tǒng)、網(wǎng)絡(luò)和數(shù)據(jù)庫的差異。5. 提供應(yīng)用的負(fù)載和高可用型、安全機(jī)制和管理功能,以及交易管理機(jī)制,保證交易的一致性。6. 提供一組通用的服務(wù)區(qū)執(zhí)行不同的功能,避免重復(fù)的工作和是應(yīng)用之間可以協(xié)作。分類:采用自底向上的方式來劃分,可分為底層中間件、通用型中間件和集成性中間件三大層次。主要的中間件:RPC,ORB,RMI,RMI-IIOP,MOM, 事務(wù)處理監(jiān)控器編程語言Scala有哪些特點(diǎn)?編程語

31、言Scala的特點(diǎn):1) 測試容易。函數(shù)性語言(Lisp等)的優(yōu)點(diǎn)。2) 代碼量少。腳本語言(Ruby,Python等)的優(yōu)點(diǎn)。3) 由編譯器進(jìn)行型檢查(型宣言不要)。靜的型定義語言(Java,C等)和動(dòng)的型定義語言(Ruby,Lisp等)的優(yōu)點(diǎn)。4) 可直觀易懂地記述處理流程。面向過程語言(Cobol,C等)的優(yōu)點(diǎn)。5) 可實(shí)現(xiàn)封裝,繼承,多態(tài),面向?qū)ο箝_發(fā)。面向?qū)ο笳Z言(Java,C#等)的優(yōu)點(diǎn)。1. 關(guān)于軟件開發(fā),有哪些新趨勢?一、在全球金融危機(jī)布景下,開源軟件將取得更多的商場時(shí)機(jī)二:開源軟件將主導(dǎo)移動(dòng)運(yùn)用軟件的開展三:將開源軟件推行到云核算、SaaS(軟件即效勞)選擇一個(gè)你熟悉的大型軟

32、件系統(tǒng),分析其體系結(jié)構(gòu)中用到的風(fēng)格,以及表現(xiàn)出的特點(diǎn)(為什么要采用這種風(fēng)格?帶來了哪些優(yōu)勢?具有哪些不足?)。對社交軟件體系結(jié)構(gòu)中用到的風(fēng)格分析:采用了C/S風(fēng)格,并且在一定程度上算為三層C/S風(fēng)格采用這種風(fēng)格的原因:表示層:社交信息的顯示,并提供了更新和搜索等操作功能層:具有搜索、在線聊天、離線留言、文件傳輸?shù)鹊裙δ軘?shù)據(jù)層:有數(shù)據(jù)庫服務(wù)器提供留言、相冊、好友信息等數(shù)據(jù)優(yōu)點(diǎn):使邏輯結(jié)構(gòu)更為清晰,分類明確,給用戶更好的體驗(yàn)缺點(diǎn):需要數(shù)據(jù)通信的支持,對網(wǎng)絡(luò)的依賴很高,沒有網(wǎng)絡(luò),許多功能將沒有意義。對于一個(gè)實(shí)際的系統(tǒng),不能判斷它是A風(fēng)格、B風(fēng)格還是C風(fēng)格,因?yàn)闆]有足夠的理由把它歸為任何一種獨(dú)立的體系

33、結(jié)構(gòu)風(fēng)格。這種系統(tǒng)類型被稱為異構(gòu)結(jié)構(gòu),對應(yīng)著它是分層系統(tǒng),所以這個(gè)虛擬系統(tǒng)是分層系統(tǒng)。這個(gè)系統(tǒng)包含的體系結(jié)構(gòu)有:管道和過濾器風(fēng)格、事件驅(qū)動(dòng)風(fēng)格、分層系統(tǒng)。管道和過濾器風(fēng)格管道和過濾器風(fēng)格的優(yōu)點(diǎn): 管道和過濾器風(fēng)格的缺點(diǎn):事件驅(qū)動(dòng)風(fēng)格以體系結(jié)構(gòu)定義作為開發(fā)框架,支持基于構(gòu)件的開發(fā).該語言提供了建模,分析,仿真和代碼生成的能力,但是沒有將連接子顯式地表示為一階實(shí)體。分層系統(tǒng)分層系統(tǒng)的優(yōu)點(diǎn):支持基于抽象程度遞增的系統(tǒng)設(shè)計(jì);支持功能增強(qiáng);支持重用。分層系統(tǒng)的缺點(diǎn):并不是每個(gè)系統(tǒng)都可以很容易的劃分為分層的模式,甚至即使是層次化的,出于性能的考慮,也不得不吧一些低及或高級的功能綜合起來;很難找到一個(gè)合適的

34、、正確的層次抽象方法。C2風(fēng)格系統(tǒng)中的構(gòu)件可實(shí)現(xiàn)應(yīng)用需求,并能將任意復(fù)雜度的功能封裝在一起;所有構(gòu)件之間的通訊是通過以連接件為中介的異步消息交換機(jī)制來實(shí)現(xiàn)的;構(gòu)件相對獨(dú)立,構(gòu)件之間依賴性較少。系統(tǒng)中不存在某些構(gòu)件將在同一地址空間內(nèi)執(zhí)行,或某些構(gòu)件共享特定控制線程之類的相關(guān)性假設(shè)?;谙⒖偩€的風(fēng)格消息總線是系統(tǒng)的連接件、負(fù)責(zé)消息的分派、傳遞和過濾以及處理結(jié)果的返回。消息是構(gòu)件之間通信的唯一方式。由于構(gòu)件通過總線進(jìn)行連接,并不要求各個(gè)構(gòu)件具有相同的地址空間或局限在一臺機(jī)器上,因此該風(fēng)格可以很好的刻畫分布式開發(fā)系統(tǒng),以及CORBA.DCOM和EJB規(guī)范的系統(tǒng)是一家在線旅游信

35、息服務(wù)公司,其主要業(yè)務(wù)是為自助旅游者提供關(guān)于旅游線路及周邊信息的服務(wù)。隨著公司業(yè)務(wù)的不斷發(fā)展,公司用戶要求提供基于位置的增值旅游信息服務(wù),即希望能夠在給定位置(利用 GPS 全球定位系統(tǒng)獲?。┑那闆r下得到周邊的地理位置、住宿、餐飲和交通等旅游相關(guān)信息。針對該需求,公司技術(shù)人員對現(xiàn)有系統(tǒng)的體系結(jié)構(gòu)和運(yùn)行模式進(jìn)行了認(rèn)真分析,決定采用Mashup技術(shù)集成來自其合作網(wǎng)站(設(shè)為A、B、C、D)的信息,滿足用戶的需求。具體實(shí)現(xiàn)方式是:(1) 利用A網(wǎng)站提供的地圖信息,得到用戶位置相關(guān)的周邊地理信息。(2) B網(wǎng)站根據(jù)用戶的位置信息向其提供周邊的住宿信息。(3) C網(wǎng)站根據(jù)用戶的位置信息向其提供周邊的餐飲信

36、息。(4) D網(wǎng)站根據(jù)用戶的位置信息向其提供周邊的公交線路等信息。問題1:(2)對用戶請求的服務(wù)作出相應(yīng)的處理。(3)Traveler網(wǎng)站向A網(wǎng)站請求返回用戶所處位置周邊的地圖信息。(5)Traveler網(wǎng)站向B網(wǎng)站請求返回用戶所處位置周邊的住宿信息。(7)對網(wǎng)站提供的信息作出響應(yīng)的處理。問題2:聚合的是服務(wù)時(shí),則通過調(diào)用API來獲取各個(gè)源的功能,Mashup最常用的API類型一般有兩種,分別是REST和SOAP;如果聚合的是數(shù)據(jù),則使用RSS來獲取數(shù)據(jù)。問題3:客戶端的用戶界面能表現(xiàn)和應(yīng)對更多更復(fù)雜的數(shù)據(jù)模式,這樣才能處理客戶端的運(yùn)算以及異步發(fā)送、接收數(shù)據(jù)。當(dāng)頁面在服務(wù)器上創(chuàng)建完成并交付給H

37、TML后,客戶端的程序?yàn)橛脩籼峁┍扰c服務(wù)器交互更良好的感受。為了達(dá)到高度復(fù)雜的數(shù)據(jù)模式,客戶端允許用戶構(gòu)建一個(gè)高響應(yīng)、交互式的應(yīng)用程序??梢詫?shí)現(xiàn)一個(gè)比基于HTML的響應(yīng)速度更快且數(shù)據(jù)往返于服務(wù)器的次數(shù)更少的用戶界面。一方認(rèn)為應(yīng)采用微軟.net平臺,一方認(rèn)為應(yīng)采用Java企業(yè)版平臺給出兩個(gè)平臺的優(yōu)勢和共有的特點(diǎn)(1) 、.Net平臺:易于部署和設(shè)置、多程序設(shè)計(jì)語言支持、針對特定平臺的優(yōu)化支持Java企業(yè)版平臺:良好跨平臺可移植性支持、豐富的多廠商外部支持、良好的源代碼以外的可定制性的支持共同特點(diǎn):良好的Web多層應(yīng)用開發(fā)支持、良好的O/R(對象/關(guān)系)映射支持、良好的Web服務(wù)支持J2EE更適合

38、大型企業(yè),大企業(yè)鐘情J2EE.NET更適合中小型企業(yè),實(shí)施速度快,維護(hù)容易,中小企業(yè)則看好.Net J2EE平臺更穩(wěn)定.NET平臺更適合與微軟系統(tǒng)的軟件結(jié)合支持J2EE平臺的服務(wù)器更好也更貴支持.NET平臺的服務(wù)器占據(jù)低端市場,價(jià)格適中J2EE平臺適合大數(shù)據(jù)量并發(fā)處理的系統(tǒng).NET平臺適合與微軟應(yīng)用軟件(例如Office、Project、Exchange等)結(jié)合緊密的系統(tǒng)(2) 、MVC模式中各組間應(yīng)采用何種構(gòu)件實(shí)現(xiàn)在基于EJB的重量級框架中,實(shí)現(xiàn)的構(gòu)件分別為:模型(Model):由EJB構(gòu)件實(shí)現(xiàn)視圖(View):由JSP構(gòu)件實(shí)現(xiàn)控制器(Controller):由Servlet構(gòu)件實(shí)現(xiàn)在基于S

39、truts等的輕量級框架中,實(shí)現(xiàn)的構(gòu)件分別為:模型(Model):由Java Bean構(gòu)件實(shí)現(xiàn)視圖(View):由JSP構(gòu)件實(shí)現(xiàn)控制器(Controller):由Servlet構(gòu)件實(shí)現(xiàn)(3)、MVP模式與MVC模式的主要區(qū)別為:1 在組件耦合度方面:在MVP模式中,視圖并不直接使用模型,它們之間的通信通過Presenter進(jìn)行,從而實(shí)現(xiàn)了視圖與模型的分離,而在MVC模式中,視圖直接與模型交互。2 在組件分工方面:在MVP模式中,視圖需要處理鼠標(biāo)及鍵盤等觸發(fā)的界面事件,而在MVC模式中這通常是由控制器完成的工作;在MVP模式中,系統(tǒng)核心業(yè)務(wù)邏輯組織集中在Presenter中,而在MVC模式中,相

40、應(yīng)的控制器通常只完成事件的分發(fā)。3 在開發(fā)工程化支持方面:MVP模式可更好地支持單元測試,而在MVC模式中,由于模型與視圖綁定,因此難以實(shí)施相應(yīng)的單元測試;在MVP模式中,Presenter基于約定接口與視圖和模型交互,可更好地支持組件的重用。(4)、事務(wù)的基本特征包括:原子性:一個(gè)事務(wù)中的所有操作,要么全部完成,要么全部不完成,不會結(jié)束在中間某個(gè)環(huán)節(jié)。事務(wù)在執(zhí)行過程中發(fā)生錯(cuò)誤,會被回滾到事務(wù)開始前的狀態(tài),就像這個(gè)事務(wù)從來沒有執(zhí)行過一樣。一致性:在事務(wù)開始之前和事務(wù)結(jié)束以后,數(shù)據(jù)的完整性限制沒有被破壞。隔離性:兩個(gè)事務(wù)的執(zhí)行是互不干擾的,兩個(gè)事務(wù)時(shí)間不會互相影響。持久性:在事務(wù)完成以后,該事務(wù)

41、對數(shù)據(jù)所作的更改便持久地保存在數(shù)據(jù)庫之中,并且是完全的。EJB規(guī)范支持的兩種事務(wù)控制方法為:容器維護(hù)的事務(wù)(Container Managed Transaction,CMT):由EJB容器根據(jù)部署描述符或EJB構(gòu)件注釋中指定的事務(wù)屬性自動(dòng)控制事務(wù)的邊界,容器維護(hù)的事務(wù)是方法級的,即默認(rèn)將一個(gè)方法當(dāng)作一個(gè)事務(wù)執(zhí)行,當(dāng)方法執(zhí)行的過程中發(fā)生系統(tǒng)級異常,容器會自動(dòng)將事務(wù)回滾,從而將方法前面執(zhí)行的結(jié)果恢復(fù)。Bean維護(hù)的事務(wù)(Bean Managed Transaction,BMT):由程序員在EJB的源代碼中控制事務(wù)執(zhí)行的邊界,事務(wù)的邊界通過Java事務(wù)接口(Java Transaction API

42、,JTA)進(jìn)行控制,Bean維護(hù)的事務(wù)可以跨越方法的邊界。1. 什么是軟件重用,軟件重用的層次可以分為哪幾個(gè)級別?答:軟件重用是指在兩次或多次不同的軟件開發(fā)過程中重復(fù)使用相同或相近軟件元素的過程。軟件重用的層次按重用的粒度大小可分為程序代碼重用,測試用例重用,設(shè)計(jì)文檔重用,設(shè)計(jì)過程重用,需求分析文檔重用及領(lǐng)域知識重用。2. 軟件體系結(jié)構(gòu)模型可以分為哪幾種,具體是如何劃分的? 答:軟件結(jié)構(gòu)的核心模型由5種元素組成:構(gòu)件、連接件、配置、端口和角色。其中,構(gòu)件、連接件和配置是最基本的元素。3. 體系結(jié)構(gòu)的設(shè)計(jì)和演化中實(shí)驗(yàn)原型階段分為2個(gè)周期,分別對各周期簡述。答:第一周期沒有具體的、明確的日期,第一

43、周期結(jié)束會形成圖形用戶界面的初始設(shè)計(jì)和問題域模型兩個(gè)版本。第二周期的任務(wù)是設(shè)計(jì)和建立一個(gè)下次軟件體系結(jié)構(gòu),具有以下特征:足夠靈活,能包括現(xiàn)有元素,也有包括新增功能;提供相當(dāng)穩(wěn)定的結(jié)構(gòu),在這個(gè)結(jié)構(gòu)中,原型能在實(shí)驗(yàn)原型階段進(jìn)行演化;開發(fā)一個(gè)高效的開發(fā)的組織,允許開發(fā)人員并行地在原型基礎(chǔ)上進(jìn)行開發(fā)。4. 連接件:是用來建立構(gòu)件間的交互以及支配這些交互規(guī)則的體系結(jié)構(gòu)構(gòu)造模塊。5. 體系結(jié)構(gòu)配置:體系結(jié)構(gòu)配置或拓?fù)涫敲枋鲶w系結(jié)構(gòu)的構(gòu)件與連接件的連接圖。體系結(jié)構(gòu)配置提供信息來確定構(gòu)件是否正確連接、接口是否分配、連接件構(gòu)成的通信是否正確,并說明實(shí)現(xiàn)要求行為的組合含義。6. 軟件體系結(jié)構(gòu)的動(dòng)態(tài)性:指軟件系統(tǒng)在

44、運(yùn)行時(shí)刻的體系結(jié)構(gòu)變動(dòng)。7. Web服務(wù)棧:Web服務(wù)棧是一種全新的體系結(jié)構(gòu),整個(gè)Web服務(wù)的技術(shù)系列被稱為Web服務(wù)棧。8. SOAP:簡單對象訪問協(xié)議,SOAP是一個(gè)基于XML的,在松散分布式環(huán)境中交換結(jié)構(gòu)化信息的輕量級協(xié)議,它為在一個(gè)松散的、分布式環(huán)境中使用XML交換結(jié)構(gòu)化的和類型化的信息提供了一種簡單的機(jī)制。9. WSDL標(biāo)準(zhǔn):是一種XML格式,用來實(shí)現(xiàn)Web服務(wù)棧中的描述層,將網(wǎng)絡(luò)服務(wù)描述為能夠進(jìn)行消息交換的通信端點(diǎn)集合。10. 可修改性:是指能夠快速地以較高的性能價(jià)格比對系統(tǒng)進(jìn)行變更的能力。通常以某些具體的變更為基準(zhǔn),通過考察這些變更的代價(jià)衡量可修改性??尚薷男园ǎ?可維護(hù)性,2可擴(kuò)展性,3結(jié)構(gòu)重組,4可移植性11. 核心資源:是領(lǐng)域工程所有結(jié)果的集合,是產(chǎn)品線中產(chǎn)品構(gòu)造的基礎(chǔ)。12. 軟件產(chǎn)品線:軟件產(chǎn)品線就是在一個(gè)公共的軟件資源集合基礎(chǔ)上建立起來的共享同一個(gè)特性集合的系統(tǒng)集合

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論