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

下載本文檔

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

文檔簡介

課程設計(綜合實驗)報告(2023--2023年度第二學期)名稱:課程設計題目:軟件體系結構設計與分析院系:計算機系班級:學號:學生姓名:(你的署名)指導教師:王曉輝廖爾崇設計周數:(1周)成績:日期:2023年6月19日

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

溫馨提示

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

評論

0/150

提交評論