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

下載本文檔

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

文檔簡介

-.z.課程設(shè)計(jì)(綜合實(shí)驗(yàn))報(bào)告(2015--2016年度第二學(xué)期)名稱:課程設(shè)計(jì)題目:軟件體系構(gòu)造設(shè)計(jì)與分析院系:計(jì)算機(jī)系班級:學(xué)號:學(xué)生姓名:〔你的簽名〕指導(dǎo)教師:王曉輝廖爾崇設(shè)計(jì)周數(shù):〔1周〕成績:日期:2016年6月19日一、課程設(shè)計(jì)(綜合實(shí)驗(yàn))的目的與要求軟件體系構(gòu)造是軟件工程專業(yè)的專業(yè)必修課。軟件體系構(gòu)造是軟件工程方法學(xué)的一個(gè)分支,開設(shè)本課程的目的是使學(xué)生在了解了軟件工程根底原理、方法、過程的根底上進(jìn)一步掌握軟件構(gòu)造設(shè)計(jì)的根本理論和方法,培養(yǎng)設(shè)計(jì)軟件構(gòu)造的根本能力。本課程的根本內(nèi)容包括軟件體系構(gòu)造的根本概念、開展現(xiàn)狀、軟件體系構(gòu)造風(fēng)格、傳統(tǒng)的軟件體系構(gòu)造、現(xiàn)代軟件體系構(gòu)造等。本課程實(shí)驗(yàn)的目標(biāo)是培養(yǎng)學(xué)生的根底編程能力,其培養(yǎng)目標(biāo)是程序員;軟件工程課程使學(xué)生上升到軟件系統(tǒng)的認(rèn)識,其培養(yǎng)目標(biāo)是軟件工程師。本課程教學(xué)內(nèi)容屬于軟件工程的概要設(shè)計(jì)階段的方法學(xué),其培養(yǎng)目標(biāo)是軟件架構(gòu)師。 要求完成實(shí)驗(yàn)指導(dǎo)書的實(shí)驗(yàn)一~實(shí)驗(yàn)五〔驗(yàn)證性實(shí)驗(yàn)〕,實(shí)驗(yàn)九~實(shí)驗(yàn)十一〔設(shè)計(jì)綜合性實(shí)驗(yàn)〕。二、設(shè)計(jì)〔實(shí)驗(yàn)〕正文實(shí)驗(yàn)一經(jīng)典軟件體系構(gòu)造風(fēng)格(一)〔1〕概念:管道-過濾器模式的體系構(gòu)造是面向數(shù)據(jù)流的軟件體系構(gòu)造。它最典型的應(yīng)用是在編譯系統(tǒng)。一個(gè)普通的編譯系統(tǒng)包括詞法分析器,語法分析器,語義分析與中間代碼生成器,優(yōu)化器,目標(biāo)代碼生成器等一系列對源程序進(jìn)展處理的過程。人們可以將編譯系統(tǒng)看作一系列過濾器的連接體,按照管道-過濾器的體系構(gòu)造進(jìn)展設(shè)計(jì)。此外,這種體系構(gòu)造在其它一些領(lǐng)域也有廣泛的應(yīng)用。因此它成為軟件工程和軟件開發(fā)中的一個(gè)突出的研究領(lǐng)域?!?〕體系構(gòu)造:過濾器過濾器管道〔3〕流程圖開場receiver開場receiver啟動sender啟動receiver啟動sender啟動receiver判斷緩沖區(qū)非空否判斷緩沖區(qū)非空是緩沖區(qū)是否有數(shù)據(jù)緩沖區(qū)是否有數(shù)據(jù)否阻塞read()是阻塞read()讀取數(shù)據(jù)讀取數(shù)據(jù)完畢完畢2.數(shù)據(jù)抽象和面向?qū)ο筌浖w系構(gòu)造〔體驗(yàn)繼承構(gòu)造〕(1)概念:面向?qū)ο缶幊淌且环N計(jì)算機(jī)編程架構(gòu)。OOP的一條根本原則是計(jì)算機(jī)程序是由單個(gè)能夠起到子程序作用的單元或?qū)ο蠼M合而成。OOP到達(dá)了軟件工程的三個(gè)主要目標(biāo):重用性、靈活性和擴(kuò)展性。為了實(shí)現(xiàn)整體運(yùn)算,每個(gè)對象都能夠接收信息、處理數(shù)據(jù)和向其它對象發(fā)送信息。(2)體系構(gòu)造模型:對象對象對象對象對象對象過程調(diào)用對象對象對象對象抽象數(shù)據(jù)類型(3)流程圖開場開場輸入數(shù)據(jù)輸入數(shù)據(jù)按照不同類型正方形橢圓矩形圓正方形橢圓矩形圓計(jì)算計(jì)算輸出結(jié)果輸出結(jié)果完畢完畢本例定義了一個(gè)抽象類Graph,并在其中定義了一個(gè)抽象的計(jì)算面積的函數(shù)Area(),通過子類中的具體圖像以及數(shù)據(jù)來計(jì)算。實(shí)驗(yàn)二經(jīng)典軟件體系構(gòu)造風(fēng)格(二)基于事件的隱式調(diào)用風(fēng)格概念:基于事件的隱式調(diào)用風(fēng)格的思想是構(gòu)件不直接調(diào)用一個(gè)過程,而是觸發(fā)或播送一個(gè)或多個(gè)事件。系統(tǒng)中的其它構(gòu)件中的過程在一個(gè)或多個(gè)事件中注冊,當(dāng)一個(gè)事件被觸發(fā),系統(tǒng)自動調(diào)用在這個(gè)事件中注冊的所有過程,這樣,一個(gè)事件的觸發(fā)就導(dǎo)致了另一模塊中的過程的調(diào)用。從體系構(gòu)造上說,這種風(fēng)格的構(gòu)件是一些模塊,這些模塊既可以是一些過程,又可以是一些事件的集合。過程可以用通用的方式調(diào)用,也可以在系統(tǒng)事件中注冊一些過程,當(dāng)發(fā)生這些事件時(shí),過程被調(diào)用?;谑录碾[式調(diào)用風(fēng)格的主要特點(diǎn)是事件的觸發(fā)者并不知道哪些構(gòu)件會被這些事件影響。這樣不能假定構(gòu)件的處理順序,甚至不知道哪些過程會被調(diào)用,因此,許多隱式調(diào)用的系統(tǒng)也包含顯式調(diào)用作為構(gòu)件交互的補(bǔ)充形式。優(yōu)點(diǎn):〔1〕為軟件重用提供了強(qiáng)大的支持。當(dāng)需要將一個(gè)構(gòu)件參加現(xiàn)存系統(tǒng)中時(shí),只需將它注冊到系統(tǒng)的事件中?!?〕為改良系統(tǒng)帶來了方便。當(dāng)用一個(gè)構(gòu)件代替另一個(gè)構(gòu)件時(shí),不會影響到其它構(gòu)件的接口。隱式調(diào)用系統(tǒng)的主要缺點(diǎn)有:〔1〕構(gòu)件放棄了對系統(tǒng)計(jì)算的控制。一個(gè)構(gòu)件觸發(fā)一個(gè)事件時(shí),不能確定其它構(gòu)件是否會響應(yīng)它。而且即使它知道事件注冊了哪些構(gòu)件的構(gòu)成,它也不能保證這些過程被調(diào)用的順序?!?〕數(shù)據(jù)交換的問題。有時(shí)數(shù)據(jù)可被一個(gè)事件傳遞,但另一些情況下,基于事件的系統(tǒng)必須依靠一個(gè)共享的倉庫進(jìn)展交互。在這些情況下,全局性能和資源管理便成了問題?!?〕既然過程的語義必須依賴于被觸發(fā)事件的上下文約束,關(guān)于正確性的推理存在問題。流程圖:開場開場點(diǎn)擊按鈕點(diǎn)擊按鈕生成點(diǎn)擊按鈕事件生成點(diǎn)擊按鈕事件監(jiān)聽器檢測到事件并響應(yīng)此事件監(jiān)聽器檢測到事件并響應(yīng)此事件按鈕與動作事件是常用控制組件的事件,利用btn.addActionListener()函數(shù)將監(jiān)聽器注冊給了按鈕,并通過actionPerformed()函數(shù)判斷事件是否是點(diǎn)擊按鈕觸發(fā)并產(chǎn)生相應(yīng)的響應(yīng),該函數(shù)會遍歷注冊到按鈕監(jiān)聽器集中的所有對象并回調(diào)方法產(chǎn)生相應(yīng)的響應(yīng)。層次軟件體系構(gòu)造概念:層次構(gòu)造是一種操作系統(tǒng)的組織構(gòu)造,其提供了一種隔離操作系統(tǒng)各層功能的模型,是根據(jù)信息的類型、級別、優(yōu)先級等劃分并按照特定的規(guī)則排列的一群硬件或軟件工程。最大特點(diǎn)就是將一個(gè)大型復(fù)雜的系統(tǒng)分解成假設(shè)干單向依賴的層次,即每一層都提供一組功能且這些功能只依賴該層以內(nèi)的的各層。體系構(gòu)造:用戶界面層用戶界面層測試工具層測試工具層被測試軟件被測試軟件層說明:每層之間都是有相應(yīng)的過程調(diào)用,而且每層之中也有對應(yīng)的構(gòu)件實(shí)驗(yàn)四MVC風(fēng)格〔1〕概念:MVC全名是ModelViewController,是模型(model)-視圖(view)-控制器(controller)的縮寫,一種軟件設(shè)計(jì)典范,用一種業(yè)務(wù)邏輯、數(shù)據(jù)、界面顯示別離的方法組織代碼,將業(yè)務(wù)邏輯聚集到一個(gè)部件里面,在改良和個(gè)性化定制界面及用戶交互的同時(shí),不需要重新編寫業(yè)務(wù)邏輯。MVC被獨(dú)特的開展起來用于映射傳統(tǒng)的輸入、處理和輸出功能在一個(gè)邏輯的圖形化用戶界面的構(gòu)造中?!?〕上機(jī)流程:本實(shí)驗(yàn)需要自行添加CarFiles和CarImages文件夾并向其中添加所需的文件,然后才能運(yùn)行〔用myeclipse〕。然后是修改了局部代碼〔流程圖下面〕(3)運(yùn)行流程開場開場輸入信息輸入信息選擇車輛選擇車輛輸如競拍價(jià)格并確認(rèn)輸如競拍價(jià)格并確認(rèn)判斷是否有車輛判斷是否有車輛圖片Cannotfindthefile否Cannotfindthefile是輸出汽車圖片顯示汽車價(jià)格輸出汽車圖片顯示汽車價(jià)格實(shí)驗(yàn)九C2模式1.概念:C2體系構(gòu)造風(fēng)格可以概括為:通過連接件綁定在一起的按照一組規(guī)則運(yùn)作的并行構(gòu)件網(wǎng)絡(luò)。C2風(fēng)格中的系統(tǒng)組織規(guī)則如下:〔1〕系統(tǒng)中的構(gòu)件和連接件都有一個(gè)頂部和一個(gè)底部;〔2〕構(gòu)件的頂部應(yīng)連接到*連接件的底部,構(gòu)件的底部則應(yīng)連接到*連接件的頂部,而構(gòu)件與構(gòu)件之間的直接連接是不允許的;〔3〕一個(gè)連接件可以和任意數(shù)目的其它構(gòu)件和連接件連接;〔4〕當(dāng)兩個(gè)連接件進(jìn)展直接連接時(shí),必須由其中一個(gè)的底部到另一個(gè)的頂部。2.特點(diǎn):C2風(fēng)格是最常用的一種軟件體系構(gòu)造風(fēng)格。從C2風(fēng)格的組織規(guī)則和構(gòu)造圖中,我們可以得出,C2風(fēng)格具有以下特點(diǎn):〔1〕系統(tǒng)中的構(gòu)件可實(shí)現(xiàn)應(yīng)用需求,并能將任意復(fù)雜度的功能封裝在一起;〔2〕所有構(gòu)件之間的通訊是通過以連接件為中介的異步消息交換機(jī)制來實(shí)現(xiàn)的;〔3〕構(gòu)件相對獨(dú)立,構(gòu)件之間依賴性較少。系統(tǒng)中不存在*些構(gòu)件將在同一地址空間內(nèi)執(zhí)行,或*些構(gòu)件共享特定控制線程之類的相關(guān)性假設(shè)。2的體系構(gòu)造:4.程序類圖:5.說明:編寫了一個(gè)類,能夠直接計(jì)算表達(dá)式,并能夠?qū)⒂?jì)算結(jié)果直接發(fā)送給cal,并顯示出來。實(shí)驗(yàn)十黑盒模型1.概念:黑盒模型即倉庫風(fēng)格,在倉庫風(fēng)格中,有兩種不同的構(gòu)件:中央數(shù)據(jù)構(gòu)造說明當(dāng)前狀態(tài),獨(dú)立構(gòu)件在中央數(shù)據(jù)存貯上執(zhí)行,倉庫與外構(gòu)件間的相互作用在系統(tǒng)中會有大的變化。控制原則的選取產(chǎn)生兩個(gè)主要的子類。假設(shè)輸入流中*類時(shí)間觸發(fā)進(jìn)程執(zhí)行的選擇,則倉庫是一傳統(tǒng)型數(shù)據(jù)庫;另一方面,假設(shè)中央數(shù)據(jù)構(gòu)造的當(dāng)前狀態(tài)觸發(fā)進(jìn)程執(zhí)行的選擇,則倉庫是一黑板系統(tǒng)。黑板系統(tǒng)主要由三局部組成:〔1〕知識源。知識源中包含獨(dú)立的、與應(yīng)用程序相關(guān)的知識,知識源之間不直接進(jìn)展通訊,它們之間的交互只通過黑板來完成。〔2〕黑板數(shù)據(jù)構(gòu)造。黑板數(shù)據(jù)是按照與應(yīng)用程序相關(guān)的層次來組織的解決問題的數(shù)據(jù),知識源通過不斷地改變黑板數(shù)據(jù)來解決問題?!?〕控制??刂仆耆珊诎宓臓顟B(tài)驅(qū)動,黑板狀態(tài)的改變決定使用的特定知識。2.依賴關(guān)系圖:小車行走路線函數(shù)代碼:publicvoidmakeNe*tWorkItem(){count++;if(count<MA*_STEP){//控制單獨(dú)一個(gè)汽車前進(jìn)//wm.AddANewWork(newWorkItem(1,random.Ne*t(10),0/*random.Ne*t(30)*/));if(wm.cars.Count!=0){if(wm.cars[0].*>=600-a*60&&e==1){wm.AddANewWork(newWorkItem(1,0,0.5*Math.PI));a++;e++;}elseif(wm.cars[0].y>=600-b*60&&e==2){wm.AddANewWork(newWorkItem(1,0,0.5*Math.PI));b++;e++;}elseif(wm.cars[0].*<=c*60&&e==3){wm.AddANewWork(newWorkItem(1,0,0.5*Math.PI));c++;e++;}elseif(wm.cars[0].y<=d*60&&e==4){wm.AddANewWork(newWorkItem(1,0,0.5*Math.PI));d++;e=1;}else{wm.AddANewWork(newWorkItem(1,0,0));}代碼分析:一開場小車的坐標(biāo)為〔0,0〕,小車的加速度為0,改變小車方向的函數(shù)與小車的坐標(biāo)有關(guān),即wm.cars[0].*>=600-a*60等,小車的方向變量為e,每次當(dāng)e變化時(shí)他的行走方向就改變0.5*π,即wm.AddANewWork(newWorkItem(1,0,0.5*Math.PI)),并且每次改變方向,他改變方向前所行走距離都會減少60,這樣逐漸縮小他探索路線的圈的范圍,最終探索全部區(qū)域。實(shí)驗(yàn)十一SOA模式1.概念:面向效勞的體系構(gòu)造〔SOA〕是一個(gè)組件模型,它將應(yīng)用程序的不同功能單元〔稱為效勞〕通過這些效勞之間定義良好的接口和契約聯(lián)系起來。接口是采用中立的方式進(jìn)展定義的,它應(yīng)該獨(dú)立于實(shí)現(xiàn)效勞的硬件平臺、操作系統(tǒng)和編程語言。這使得構(gòu)建在各種這樣的系統(tǒng)中的效勞可以以一種統(tǒng)一和通用的方式進(jìn)展交互。它可以根據(jù)需求通過網(wǎng)絡(luò)對松散耦合的粗粒度應(yīng)用組件進(jìn)展分布式部署、組合和使用。效勞層是SOA的根底,可以直接被應(yīng)用調(diào)用,從而有效控制系統(tǒng)中與軟件代理交互的人為依賴性。2.優(yōu)勢:對SOA的需要來源于需要使業(yè)務(wù)IT系統(tǒng)變得更加靈活,以適應(yīng)業(yè)務(wù)中的改變。通過允許強(qiáng)定義的關(guān)系和依然靈活的特定實(shí)現(xiàn),IT系統(tǒng)既可以利用現(xiàn)有系統(tǒng)的功能,又可以準(zhǔn)備在以后做一些改變來滿足它們之間交互的需要。3.特征:SOA的實(shí)施具有幾個(gè)鮮明的根本特征。實(shí)施SOA的關(guān)鍵目標(biāo)是實(shí)現(xiàn)企業(yè)IT資產(chǎn)的最大化作用。要實(shí)現(xiàn)這一目標(biāo),就要在實(shí)施SOA的過程中牢記以下特征:可從企業(yè)外部訪問,隨時(shí)可用,粗粒度的效勞接口分級,松散耦合可重用的效勞,效勞接口設(shè)計(jì)管理,標(biāo)準(zhǔn)化的效勞接口,支持各種消息模式,準(zhǔn)確定義的效勞契約。程序構(gòu)造:開場開場用戶輸入需要查詢的城市,點(diǎn)擊確認(rèn)按鈕用戶輸入需要查詢的城市,點(diǎn)擊確認(rèn)按鈕按照網(wǎng)站發(fā)起web效勞adress查詢請求按照網(wǎng)站發(fā)起web效勞adress查詢請求網(wǎng)站效勞器反應(yīng)給程序當(dāng)?shù)氐奶鞖庑畔⒕W(wǎng)站效勞器反應(yīng)給程序當(dāng)?shù)氐奶鞖庑畔⒊绦蚝Y選出需要的信息并顯示到用戶界面程序篩選出需要的信息并顯示到用戶界面完畢完畢三、課程設(shè)計(jì)〔綜合實(shí)驗(yàn)〕總結(jié)或結(jié)論通過本次實(shí)驗(yàn),我對于軟件體系構(gòu)造的理解進(jìn)一步加深,同時(shí)也了解到自己與其他人之間的差距,非常感謝實(shí)驗(yàn)過程中教師的悉心教誨,讓我能夠完成這次實(shí)驗(yàn)設(shè)計(jì),下面請?jiān)试S

溫馨提示

  • 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

提交評論