軟件架構論文2_第1頁
軟件架構論文2_第2頁
軟件架構論文2_第3頁
軟件架構論文2_第4頁
軟件架構論文2_第5頁
已閱讀5頁,還剩1頁未讀, 繼續免費閱讀

下載本文檔

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

文檔簡介

湖南農業大學課程論文學院:班級:姓名:學號:課程論文題目:軟件架構綜述課程名稱:高級軟件架構評閱成績:評閱意見:成績評定教師簽名:日期:年月日軟件架構綜述學生:黃鴻江(信科院學院10級計算機軟件2班班級,學號201041842322)摘要:軟件構架是一個容易理解的概念,多數工程師(尤其是經驗不多的工程師)會從直覺上來認識它,但要給出精確的定義很困難。特別是,很難明確地區分設計和構架:構架屬于設計的一方面,它集中于某些具體的特征。關鍵詞:軟件架構、架構風格、目標什么是軟件架構?1.1軟件架構的定義軟件架構(software

architecture)是一個系統的草圖,是一系列相關的抽象模式,用于指導大型軟件系統各個方面的設計。軟件架構描述的對象是直接構成系統的抽象組件。在實現階段,這些抽象組件被細化為實際的組件,比如具體某個類或者對象。

軟件構架是一個容易理解的概念,多數工程師(尤其是經驗不多的工程師)會從直覺上來認識它,但要給出精確的定義很困難。特別是,很難明確地區分設計和構架:構架屬于設計的一方面,它集中于某些具體的特征。

在“軟件構架簡介”一書中,David

GArlan

Mary

Shaw

認為軟件構架是有關如下問題的設計層次:“在計算的算法和數據結構之外,設計并確定系統整體結構成為了新的問題。結構問題包括總體組織結構和全局控制結構;通信、同步和數據訪問的協議;設計元素的功能分配;物理分布;設計元素的組成;定標與性能;備選設計的選擇?!?.2研究背景在經歷60年代的軟件危機之后,使人們開始重視軟件工程的研究。來自不同應用領域的軟件專家總結了大量的有價值的知識.

當初,人們把軟件設計的重點放在數據結構和算法的選擇上,如Knuth提出了數據結構+算法=程序.

但是隨著軟件系統規模越來越大、越來越復雜,使軟件系統的架構越來越重要。軟件危機的程度日益加劇,現有的軟件工程方法對此顯得力不從心。對于大規模的復雜軟件系統來說,軟件體系架構比起對程序的算法和數據結構的選擇已經變得明顯重要得多。在此種背景下,人們認識到軟件體系架構的重要性,并認為對軟件體系架構系統、深入的研究將會成為提高軟件生產效率和解決軟件危機的最有希望的途徑。2、架構的目標正如同軟件本身有其要達到的目標一樣,架構設計要達到的目標是什么呢?一般而言,軟件架構設計要達到如下的目標:·可靠性(Reliable)。軟件系統對于用戶的商業經營和管理來說極為重要,因此軟件系統必須非??煽??!ぐ踩校⊿ecure)。軟件系統所承擔的交易的商業價值極高,系統的安全性非常重要?!た蓴U展性(SCAlable)。軟件必須能夠在用戶的使用率、用戶的數目增加很快的情況下,保持合理的性能。只有這樣,才能適應用戶的市場擴展得可能性?!た啥ㄖ苹–uSTomizable)。同樣的一套軟件,可以根據客戶群的不同和市場需求的變化進行調整?!た蓴U展性(Extensible)。在新技術出現的時候,一個軟件系統應當允許導入新技術,從而對現有系統進行功能和性能的擴展·可維護性(MAIntainable)。軟件系統的維護包括兩方面,一是排除現有的錯誤,二是將新的軟件需求反映到現有系統中去。一個易于維護的系統可以有效地降低技術支持的花費·客戶體驗(CustomerExperience)。軟件系統必須易于使用?!な袌鰰r機(TimetoMarket)。軟件用戶要面臨同業競爭,軟件提供商也要面臨同業競爭。以最快的速度爭奪市場先機非常重要。3、架構的種類根據我們關注的角度不同,可以將架構分成三種:·邏輯架構:軟件系統中元件之間的關系,比如用戶界面,數據庫,外部系統接口,商業邏輯元件,等等?!の锢砑軜嫞很浖窃鯓臃诺接布系摹!は到y架構:系統的非功能性特征,如可擴展性、可靠性、強壯性、靈活性、性能等。3.1架構可分為四個層次:

3.1.1硬件通訊層

這一層是一些直接與硬件設備通訊的對象,這里包括一個與機器人主體的數據交流的串口通訊對象。這一層是直接與機器人下位機打交道的,相當于機器人底層下位機的“驅動程序”。用戶通過這一層與機器人的全部硬件進行交互。視頻捕捉因為對通信速率要求很高,通過USB連接,所以其設備對象與機器人主體獨立開。

3.1.2指令協議解析層

這一層是機器人控制架構的核心,指令協議對象將進行機器人實體控制指令的編制以以及對下位機返回的傳感器數據和機器人狀態數據的解析轉換。

3.1.3行為層

這一層是一些抽象行為的對象,這些對象通過對協議對象的傳感器數據進行局部的行為規劃,并操作協議對象向機器人底層發送控制指令。

值得注意的是這一層雖然并存了很多對象,但是同一時刻只能允許一個行為對象與協議對象連接,以避免出現行為混亂的情形。機器人的各種行為切換通過改變與協議層連接的行為對象來實現,這種切換操作可以由當前活動行為進行,也可由決策層對象來進行。

3.1.4決策層

決策層是機器人本地的最高層,仲裁決策對象通過本地傳感器數據、機器人運行狀態以及遠程端發來的指令數據進行各種行為的組織。他即可以直接操作協議層對象發送機器人控制指令,也能通過行為對象的切換間接控制機器人的運行。

目前決策層提供的一些基本決策算法包括:

u

人工勢場法,基于機器人機載的聲納環,主要用于路徑規劃過程中的突發性避障;

u

“點到點”PID規劃,即采用PID調節器盡可能保證準確的“點到點”路線移動。u

FIR濾波器;

u

Carlman濾波器;(以上兩個濾波器為通用濾波器,經過派生,可在程序中用于各種數據的處理。4、架構的風格軟件體系結構風格(有時候也叫架構模式)是描述某一特定應用領域中系統組織方式的慣用模式,是為一個系統提供的一系列抽象框架。它反映了領域中眾多系統所共有的結構和語義特性,并指導如何將各個模塊和子系統有效地組織成一個完整的系統。架構風格通過為經常發生的問題提供解決方案,來提高設計重用和改善程序結構。按這種方式理解,軟件體系結構風格定義了用于描述系統的術語表和一組指導構件系統的規則。4.1通用軟件體系結構風格總結為以下幾類:4.1.1.數據流風格:批處理序列;管道過濾器。2.調用返回風格:主程序子程序;面向對象風格;層次結構。3.獨立構件風格:進程通訊;事件系統。4.虛擬機風格:解釋器;基于規則的系統。5.倉庫風格:數據庫系統;超文本系統;黑板系統。4.2幾種主要的和經典的體系結構風格:4.2.1.C2風格。C2風格是最常用的一種軟件體系結構風格,該體系結構風格可以概括為:通過連接件綁定在一起的按照一組規則運作的并行構件網絡。4.2.2.數據抽象和面向對象風格。目前軟件界已普遍轉向使用面向對象系統,抽象數據類型概念對軟件系統有著重要作用。這種風格的構件是對象,或者說是抽象數據類型的實例。對象是一種被稱作管理者的構件,因為它負責保持資源的完整性。對象是通過函數和過程的調用來交互的。4.2.3.基于事件的隱式調用風格?;谑录碾[式調用風格的思想是構件不直接調用一個過程,而是觸發或廣播一個或多個事件。系統中的其他構件中的過程在一個或多個事件中注冊,當一個事件被觸發,系統自動調用在這個事件中注冊的所有過程,這樣,一個事件的觸發就導致了另一模塊中的過程的調用。4.2.4.管道/過濾器風格。在管道/過濾器風格的軟件體系結構中,每個構件都有一組輸入和輸出,構件讀輸入的數據流,經過內部處理,然后產生輸出數據流。這個過程通常通過對輸入流的變換及增量計算來完成,所以在輸入被完全消費之前,輸出便產生了。因此,這里的構件被稱為過濾器,這種風格的連接件就象是數據流傳輸的管道,將一個過濾器的輸出傳到另一過濾器的輸入。4.2.5.批處理風格。批處理風格的每一步處理都是獨立的,并且每一步是順序執行的

溫馨提示

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

評論

0/150

提交評論