軟件體系結構_第1頁
軟件體系結構_第2頁
軟件體系結構_第3頁
軟件體系結構_第4頁
軟件體系結構_第5頁
已閱讀5頁,還剩2頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

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

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論