【畢業(yè)學位論文】(Word原稿)基于國產(chǎn)BM3803在軌實時系統(tǒng)的設計與實現(xiàn)-軟件工程_第1頁
【畢業(yè)學位論文】(Word原稿)基于國產(chǎn)BM3803在軌實時系統(tǒng)的設計與實現(xiàn)-軟件工程_第2頁
【畢業(yè)學位論文】(Word原稿)基于國產(chǎn)BM3803在軌實時系統(tǒng)的設計與實現(xiàn)-軟件工程_第3頁
【畢業(yè)學位論文】(Word原稿)基于國產(chǎn)BM3803在軌實時系統(tǒng)的設計與實現(xiàn)-軟件工程_第4頁
【畢業(yè)學位論文】(Word原稿)基于國產(chǎn)BM3803在軌實時系統(tǒng)的設計與實現(xiàn)-軟件工程_第5頁
已閱讀5頁,還剩75頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

碩士學位論文 (專業(yè)學位) 基于國產(chǎn) 軌實時系統(tǒng)的設計與實現(xiàn) 姓 名: 學 號: 所在院系:軟件學院 職業(yè)類型: 專業(yè)領域:軟件工程 指導教師: 副指導教師: 二 一四年三 月 in 2014 of 基 于 國 產(chǎn)B M 3 8 0 3 在 軌 實 時 系 統(tǒng) 的 設 計 與 實 現(xiàn) 同 濟 大 學 位論文版權使用授權書 本人完全了解同濟大學關于收集、保存、使用學位論文的規(guī)定,同意如下各項內(nèi)容:按照學校要求提交學位論文的印刷本和電子版本;學校有權保存學位論文的印刷本和電子版,并采用影印、縮印、掃描、數(shù)字化或其它手段保存論文;學校有權提供目錄檢索以及提供本學位論文全文或者部分的閱覽服務;學校有權按有關規(guī)定向國家有關部門或者機構送交論文的復印件和電子版;在不以贏利為目的的前提下,學校可以適當復制論文的部分或全部內(nèi)容用于學術活動。 學位論文作者簽名: 年 月 日 同濟大學學位論文原創(chuàng)性聲明 本人鄭重聲明:所呈交的學位論文,是本人在導師指導下,進行研究工作所取得的成果。除文中已經(jīng)注明引用的內(nèi)容外,本學位論文的研究成果不包含任何他人創(chuàng)作的、已公開發(fā)表或者沒有公開發(fā)表的作品的內(nèi)容。對本論文所涉及的研究工作做出貢獻的其他個人和集體,均已在文中以明確方式標明。本學位論文原創(chuàng)性聲明的法律責任由本人承擔。 學位論文作者簽名: 年 月 日同濟大學 碩士學位論文 摘要 I 摘要 目前應用于航天器的處理器多為進口器件,這類器件供貨周期長、成本高,并存在由于國際政治軍事因素而遭到禁運的潛在風險,國產(chǎn) 理器是我國自主開發(fā)的一款 32位抗輻照處理器,需要設計實時控制軟件對該處理器進行完整的在軌測試 驗證 ,同時研究和掌握適應航天器在軌自主管理的嵌入式實時軟件的相關技術,包括測試驅動開發(fā)模式,嵌入式實時軟件資源調(diào)度管理以及軟件抗單粒子翻轉可靠性措施設計。 本文介紹當前極限編程中 關于 測試驅動開發(fā)和結對編程 的軟件開發(fā)思想 ,并將這種思想引入和補充傳統(tǒng)的瀑布模型開發(fā)方式,以提高開發(fā)效率和軟件質量 ; 借鑒國內(nèi)外嵌入式實時系統(tǒng)內(nèi)核的已有成果,設計適應星載軟件要求的總體結構和數(shù)據(jù)協(xié)議 ;根據(jù)目前航天器常用外設配置,開發(fā)基于 板級支持包 ,實現(xiàn)通用的外部設備管理,以適應不同的硬件操作; 對基于可搶占方式的多任務調(diào)度技術進行研究, 比較了 包括速率單調(diào)算法和 最早截止時間優(yōu)先算法等任務調(diào)度算法 ; 研究可抵抗單粒子效應的三模冗余存儲管理方式; 研究 和實現(xiàn)實時系統(tǒng)中高精度的計時功能;對系統(tǒng)中各個層級產(chǎn)生的故障和異常實施故障診斷、故障隔離、故障修復和系統(tǒng)重構等措施。 最后,關于進一步工作的方向進行了簡要的討論。 關鍵詞 : 嵌入式實時軟件,測試驅動開發(fā), 最早截止時間優(yōu)先算法,冗余,系統(tǒng)重構 I he in at be of is 2 by in be to of is be It DD in It be to to We to of to of at SP be to We M DF of be in be in of be In 濟大學 碩士學位論文 目錄 錄 第 1章 引言 . 1 述 . 1 入式實時軟件現(xiàn)狀 . 1 外研究現(xiàn)狀 . 1 內(nèi)研究現(xiàn)狀 . 2 天嵌入式軟件現(xiàn)狀和存在問題 . 2 要研究內(nèi)容 . 2 文結構 . 3 第 2章 技術基礎 . 5 . 5 . 6 理器介紹 . 8 . 8 8 指令集 . 8 . 9 8 匯編語言 . 9 語言 . 11 . 12 第 3章 軟件開發(fā)模型 . 13 . 13 . 14 . 14 . 14 . 15 . 15 . 16 . 16 . 18 身可靠性取決的因素 . 18 . 19 . 20 . 20 . 21 第 4章 軟件系統(tǒng)設計 . 22 . 22 同濟大學 碩士學位論 文 目錄 軟件系統(tǒng)環(huán)境圖 . 22 . 23 . 24 . 25 . 25 . 26 . 26 . 27 . 28 . 28 . 29 . 29 . 30 第 5章 軟件實現(xiàn) . 31 . 31 . 35 . 43 . 45 線數(shù)據(jù)發(fā)送程序 . 45 線數(shù)據(jù)接收程序 . 46 它 I/. 47 . 48 . 49 . 50 . 52 時 . 55 . 58 . 60 第 6章 驗證平臺搭建和測試 . 61 . 61 . 62 . 65 第 7章 結論與展望 . 66 致謝 . 67 參考文獻 . 68 個人簡歷、在讀期間發(fā)表的學術論文與研究成果 . 70 第 1 章 引言 1 第 1 章 引言 述 目前應用于航天器的處理器多為進口器件,如 類器件供貨周期長、成本高,并存在由于國際政治軍事因素而遭到禁運的潛在風險,因此 在 航天器 領域嵌入式系統(tǒng) 的國產(chǎn)化勢在必行。 國產(chǎn) 1是西安 771所自主開發(fā)的一款 32位抗輻照處理器,支持的是 8 指令集。 按照用戶要求, 在軌 實時嵌入式 軟件 需要 定期測試處理器的各項功能、性能指標,并通過衛(wèi)星及工業(yè)控制中常用的控制局域網(wǎng)( 線接口,將測試數(shù)據(jù)打包送往星務主機。本課題的研究 目的一方面在于 測試和驗證國產(chǎn)處理器 空間環(huán)境下的使用情況,查找其中可能存在的缺陷,為下一階段工程應用積累經(jīng)驗;另一方面可以研究和掌握適應航天器在軌自主管理的嵌入式實時軟件的相關技術。 在軌測試系統(tǒng)還包括了各類國產(chǎn)外圍 I/O 設備的在軌測試接口,國內(nèi)有不少高校、科研單位自主研制可以用于空間環(huán)境下的 抗輻照大規(guī)模集成芯片,該系統(tǒng)可以具有外圍可擴展性, 應用于 各種國產(chǎn)器件 的在軌測試驗證,其中所設計的星載實時系統(tǒng) 軟件采用 言分層設計實現(xiàn), 不僅適應于所測 試的 理器,還 可以 通過修改底層模塊的方法 移植到其它平臺 。 它相比一般的嵌入式實時軟件而言,具有一定的抗單粒子翻轉( 能力,因此可以應用于大多數(shù)衛(wèi)星工程中,支持衛(wèi)星上的姿態(tài)計算與控制、數(shù)據(jù)遠程傳輸和存儲處理等業(yè)務。 入式實時軟件 現(xiàn)狀 外研究現(xiàn)狀 美國高端星載計算機 是基于 系結構的 列處理器 2,而嵌入式系統(tǒng)軟件采用的是 。 作系統(tǒng)是 司 開發(fā)的商用 于微內(nèi)核搶占式實時系統(tǒng), 以同濟大學 碩士學位論文 基于 國產(chǎn) 軌實時系統(tǒng)的設計與實現(xiàn) 2 其良好的可靠性和卓越的實時性被廣泛地應用在通信、軍事、航空、航天等高精尖技術及實時性要求極高的領域中,如衛(wèi)星通訊、軍事演習、彈道制導、飛機導航等。歐空局為了擺脫美國對其空間研發(fā)能力的制約而獨立開發(fā)了基于 7體系結構 的面向空間應用的微處理器: 輻射加固版本已經(jīng)成熟使用于航天環(huán)境中。 2006 年 , 基于 8 的處理器也成功使用于航天工程。歐空局在 統(tǒng) 4,這也 是一個微內(nèi)核搶占式的實時系統(tǒng) 。 1 內(nèi)研究現(xiàn)狀 國內(nèi)星載嵌入式實時軟件目前大多依賴進口處理器,如 8086、 80,在 臺上也有應用 統(tǒng)作為星務管理和衛(wèi)星姿態(tài)控制的,國產(chǎn)嵌入式實時系統(tǒng) 由 5。起初 一個實時的內(nèi)核,但在發(fā)展過程中,時操作系統(tǒng)得到了來自全國嵌入式開發(fā)工程師的鼎力支持,為在它已慢慢變成一個完善的、全功能的操作系統(tǒng) ,包括文件 系統(tǒng) 、 網(wǎng)絡協(xié)議棧 、 圖形界面組件 ,只是這套系統(tǒng)目前還未在 航天領域 中應用過。 天嵌入式軟件現(xiàn)狀和存在問題 我國航天五院在多個衛(wèi)星項目中也采用了 院目前則在星載姿軌控軟件( 數(shù)據(jù)管理( 件等軟件的設計上已經(jīng)采用了 言編寫的靜態(tài)優(yōu)先級管理的嵌入式實時軟件。 要 研究內(nèi)容 隨著處理器、存儲器能力的提高和航天應用需求功能的復雜化、精確化,使得星載嵌入式實時軟件需要劃分為多個重要性不同的任務,在各任務間優(yōu)化分配時還要保證可靠性。嵌 入式實時軟件的核心在于實時鐘的管理以及多任務之間的調(diào)度和信息傳遞。在目前的星上應用來說,包括周期性任務和響應外部激勵的非周期性任務 6,系統(tǒng)設計時需要保證各個任務的時間約第 1 章 引言 3 束性, 及時對外部請求做出響應 ,這里采用國內(nèi)外實時軟件常用的基于優(yōu)先級的可搶占調(diào)度方式 7。 在設備管理方面,由于星上 I/ 括 線通訊 8、 A/D、 D/應用軟件則提供統(tǒng)一通用的 利于軟件的移植性。在故障管理方面,軟件需要適應空 間環(huán)境下單粒子翻轉以及部分硬件可能失效的特點,采取冗余容錯設計,采取故障診斷、故障修復以及對無法修復的故障進行隔離,系統(tǒng)功能采取恢復塊設計,如果發(fā)現(xiàn)模塊或組件發(fā)生故障,備份的模塊或組件可以代替失效的模塊或組件,從而達到系統(tǒng)重構 9的目的。 嵌入式軟件開發(fā)日趨工程化,任務的研制周期不斷縮短,迫使管理人員尋找一種有利于提高軟件品質和開發(fā)效率的管理方式。測試驅動開發(fā) 10的基本思想就是在開發(fā)功能代碼之前,先編寫測試代碼,然后只編寫使測試通過的功能代碼,從而以測試來驅動整個開發(fā)過程的進行。這有助于編寫簡潔可用和 高質量的代碼,有很高的靈活性和健壯性,能快速響應變化,并加速開發(fā)過程,保證了所有模塊的可測試性?;诖?,星載 軌實時系統(tǒng)在一般的 V 型開發(fā)模型上又增加了測試驅動開發(fā)的理念。 文結構 第 1 章 引言 ,介紹項目開發(fā)背景,嵌入式實時軟件國內(nèi)外以及航天系統(tǒng)內(nèi)的發(fā)展現(xiàn)狀和存在問題,概述論文主要研究內(nèi)容和編排結構。 第 2 章 技術基礎,主要介紹項目所涉及的開發(fā)工具及語言,包括 發(fā)環(huán)境的配置和使用, 基于 交叉編譯器、 8 指令集,8匯編語言, 。 第 3 章 軟件開發(fā)模型 ,提出在傳統(tǒng)瀑布模型基礎上加入測試驅動開發(fā)和結對編程的概念和思路。 介紹了軟件可靠性分析和設計,分析了影響軟件可靠性的幾種因素,介紹了軟件恢復塊技術,并建立了三模冗余表決的軟件可靠性模型。 第 4 章 軟件 系統(tǒng) 設計 ,介紹了軟件設計的整體分層結構,軟件與硬件,系統(tǒng)軟件與應用軟件之間的接口協(xié)議。 第 5 章 軟件實現(xiàn) ,按照軟件的構架分模塊介紹了 的設計,任務管理和調(diào)度,存儲管理和三模冗余設計,通用設備管理,時鐘管理 , 故障診斷和處理同濟大學 碩士學位論文 基于 國產(chǎn) 軌實時系統(tǒng)的設計與實現(xiàn) 4 以及應用程序接口的設計 。 第 6 章 驗 證平臺搭建和測試 ,介紹了對系統(tǒng)實現(xiàn)后分別采用軟件模擬仿真和目標機測試的具體情況。 第 7 章 結論與展望 ,對項目進行總結,并分析了目前系統(tǒng)存在的問題以及將來改進的方向。 此后是 致謝 和 參考文獻 。 第 2 章 技術基礎 5 第 2 章 技術基礎 發(fā)環(huán)境的 初始 配置 由于開發(fā)軟件所用的交叉編譯器目前是基于 了易于開發(fā)調(diào)試,該項目的開發(fā)環(huán)境選擇了基于 戶界面 更為 友好的 1。 舍特爾沃斯創(chuàng)立,其首個版本于 2004年 10月 20日發(fā)布,并以 發(fā)藍本 12。 這個系統(tǒng) 十分注重系統(tǒng)的安全性,其采用 有系統(tǒng)相關的任務均需使用此指令,并輸入密碼,比起傳統(tǒng)以登入系統(tǒng)管理員帳號進行管理工作有更佳的安全性。 同時,它也 注重系統(tǒng)的可用性,其設計為在標準安裝完成后即可以讓使用者投入使用的操作系統(tǒng)。舉例來說,完成安裝后,使用者不用另外安裝網(wǎng)頁瀏覽器、辦公室軟件、多媒體軟件與繪圖軟件等日常應用的軟件,因為這些軟件已被安裝,并可隨時使用 , 并能夠與 算機輕松共享文件。 安裝較為簡單,本項目通過虛擬機 系統(tǒng)安裝在 P 下,按照向導安裝好系統(tǒng),為實現(xiàn)與 統(tǒng)的文件共享,可在虛擬機下設置共享目錄,見圖 同濟大學 碩士學位論文 基于 國產(chǎn) 軌實時系統(tǒng)的設計與實現(xiàn) 6 圖 統(tǒng)共享目錄設置 將開發(fā)所用的交叉編譯器壓縮包文件通過文件共享復制到 件系統(tǒng)中 : u/后,對壓縮包進行解壓,解壓文件夾安裝在 目錄 / 置環(huán)境變量,其中包括編譯器執(zhí)行程序的路徑、庫函數(shù)所 在目錄路徑。 $此,開發(fā)環(huán)境設置完畢。 發(fā)環(huán)境的使用 開發(fā)環(huán)境包括了 語言交叉編譯器 13、調(diào)試器以及其它開發(fā)工具包,如我們編輯一個 程序: #第 2 章 技術基礎 7 ); ; 此外,為了編譯流程能夠自動化完成,一般需要編寫 件, CC=K= C= Z= D= c (g -o T (-O ( (中, 此例中的 對目標文件進行反向工程,生成反編譯的匯編代碼和變量符號表。 在終端中 直接 輸入命令: f 就可以對該程序進行編譯、運行。 如果連接了開發(fā)板進行實際調(diào)試,可以用 序對軟件進行遠程在線調(diào)試。 同濟大學 碩士學位論文 基于 國產(chǎn) 軌實時系統(tǒng)的設計與實現(xiàn) 8 理器介紹 點 本項目所基于的處理器是 國內(nèi)科研單位開發(fā)的一款基于8體系結構的 32位 部采用 持夠滿足各種航天應用的功能和性能指標要求。 僅通過 口支持設備的快速擴展,提高了系統(tǒng)的可擴展性,而且提供了包括三模冗余寄存器、片上 偶校驗等在內(nèi)的多層次的容錯設計 ,增強了系統(tǒng)的可靠性。 處理單元包含擁有 8 個寄存器堆窗口和采用 5 級流水線整數(shù)處理單元 ( 16兩路組相聯(lián)數(shù)據(jù) 32 4路組相聯(lián)指令 具有支持單雙精度浮點數(shù)據(jù)類型的浮點處理單元(14 。 片上外設包括支持 ,2 個 24 位定時器, 1 個看門狗, 3 個串行通信接口, 4 個外部可編程輸入端口的中斷控制器, 32 個通用 I/O 接 口,符合 范的 33 口,容錯設計包括采用三模冗余和 U 容錯,采用奇偶校驗策略的 持 件調(diào)試單元包括帶有跟蹤沖器的調(diào)試支持單元 有 4個硬件觀測點 15。 8 指令集 8指令集 16基本延續(xù)了 7 的架構,它有以下特點: 1) 指令 定長 8指令集中, 指令有三種格式,但 每條指令的大小相同 ,均為 32位 。 2) 只有 8 指令集中,對存儲器的訪問只限定在 兩個指令上,相對 種匯編語言相對規(guī)范,減少了程序設計人員編寫匯編程序時的錯誤 17。 3) 可擴展的精簡尋址方式 第 2 章 技術基礎 9 8 指令集中只有一些可以快速處理的尋址方式,如寄存器間接尋址方式和相對尋址方式。可 以擴展它的尋址方式,同時支持索引和寄存器尋址 18。 4) 指令流水線 流水線就像許多產(chǎn)品在不同點同時運行的裝配線。在 8 架構處理器中,一條指令執(zhí)行的同時,下一條就進行譯碼并且裝載其操作數(shù),同時,再下一條指令在取指令。通過重疊這些操作,即使每一條指令需要三個周期來取指、譯碼和執(zhí)行,但是 一個時鐘周期都執(zhí)行了一條指令。這一重要特性增加了系統(tǒng)的吞吐量 (19。 5) 大量的寄存器 8架構處理器擁有大量的寄存器使得 需要操作數(shù)時 , 不是從內(nèi)存中取得,這大大減少了訪存的次數(shù)。寄存器也可以高效地向子程序傳遞參數(shù),這是由寄存器窗口 20來完成的。 6) 延時載入和分支 8 架構使用了延時載入( 延時分支( 21來避免時間的浪費。其指令流水線利用延時載入使得 這一段會被浪費的時間內(nèi)做有用的工作。 7) 指令的預測執(zhí)行 程序中的一些指令根據(jù)實際情況可以被不執(zhí)行。例如:一條條件跳轉指令,如果轉移成功,跳轉到的指令將被執(zhí)行;否則它將不執(zhí)行。 在預測執(zhí)行( , 行該指令但不存結果。如果指令將被執(zhí)行,則存結果;否則,丟棄結果 22。 件開發(fā)語言支持 8 匯編語言 8 架構處理器具有精簡的指令格式, 8 中所有指令都是 32位寬和以 32為分界對齊排列的。只有 3種基本指令格式,并且只有 ,使得編程更簡單、高效。 同濟大學 碩士學位論文 基于 國產(chǎn) 軌實時系統(tǒng)的設計與實現(xiàn) 10 在 8 處理器中,其格式是嚴格的 4 字節(jié)指令,每條指令都是 4 個字節(jié)。 8 指令集是以 32 位二進制編碼的方式給出的,共有三種主要的 32位二進制編碼方式。我們知道,對于一條匯編指令語句來說,通常由操作碼和操作數(shù)兩個域組成,而其中操作數(shù)又有三種可能 無操作數(shù)(如格式 1)、有一個操作數(shù)(如格式 2),有兩個操作數(shù)(如格式 3)。在 ,大部分操作數(shù)是三個一組的 23。這些指令格式,具體如圖 圖 令格式 由上圖,我們可以知道,在 8 指令集中,大部分指令的編碼格式是第三種。其中, 浮點指令操作碼, 用寄存器地址 (源操作數(shù) ), 如:加法指令 : 中, 擴展符號立即數(shù); i=0,第二操作數(shù)在 , i=1,第二操作數(shù)為 (位移量, 移量 30 位。 (條件碼,為分支指令的條件選擇 。 8 架構支持的基本尋址有三種,它們分別是:立即尋址,寄存器尋址,寄存器間接尋址。所有的尋址方式都有一個共性,他們的有效地址能夠在一個時鐘周期內(nèi)計算出來。 具體用來編程實現(xiàn) 的指令可 分為以下 6 類,共 72 條基本操作指令:其中包括了 31條算術運算 /邏輯運算 /移位指令, 22 條 5 條控制轉移指令, 8條讀 /寫專用寄存器指令,浮點運算指令和協(xié)處理器指令。 在本項目中,面向底層硬件的程序,如 動代碼( 設備驅動第 2 章 技術基礎 11 程序一般采用匯編語言直接實現(xiàn)。 語言 對于大部分結構化的系統(tǒng) 軟件和應用軟件 , 本項目中 采用 C 語言實現(xiàn) ,軟件編程使用的 99( 1999年 9899:1999) 24。 在 1) 增加了對編譯器 的限制,比如源程序每行要求至少支持到 4095 字節(jié),變量名函數(shù)名的要求支持到 63 字節(jié)( 求支持到 31)。 2) 增強了 宏的 預處理功能。例如: 宏 支持取可變參數(shù) #.) _用 宏 的時候,允許省略參數(shù),被省略的參數(shù)會被擴展成空串。 3) 支持 / 開頭的單行注釋(這個特性實際上在 很多編譯器上已經(jīng)被支持了) 4) 增加了新關鍵字 _5) 支持 類型 6) 初始化結構的時候允許對特定的元素賦值,形式為: a3, b; = 0 1, 1 2 ; a, b, c, d; 1, 3, 4, 5 / 3,4 是對 d 賦值的 7) 浮點數(shù)的內(nèi)部數(shù)據(jù)描述支持了新標準,可以使用 #譯器指令指定。 8) 除了已有的 _外,增加了 _到當前的函數(shù)名。 9) 輸入輸出對寬字符以及長整數(shù)等做了相應的支持。 此外,由于 語法限制不太嚴格,對變量的類型約束不嚴格, 如 對數(shù)組 下標越界不作檢查 ,類型檢查較為寬松 等, 如果編程上不加注意,則會 影響程序的安全性 25。 基于此特點,我們在嵌入式軟件編程中遵循一套嚴格的編程規(guī)范規(guī)定 : 1) 限制使用 句、遞歸調(diào)用; 2) 程序中編程實現(xiàn)越界檢查或下標限制; 同濟大學 碩士學位論文 基于 國產(chǎn) 軌實時系統(tǒng)的設計與實現(xiàn) 12 3) 在循環(huán)中限制使用 禁止使用 4) 不同類型變量賦值,必須作類型轉換,并且保證數(shù)據(jù)長度匹配; 5) 根據(jù)軟件難易程度,對單個子程序規(guī)模和圈復雜度進行限制 ; 6) 在子程序設計中,必須對入口參數(shù)進行范圍判斷,剔除超出范圍的野值; 7) 注釋清楚簡潔,無二義性,統(tǒng)一放在對應語句的上方 ; 8) 變 量定義時必須賦予一個確定的初值 ; 9) 從系統(tǒng)性能除法,運算中盡量用移位操作代替加減法操作,用乘法操作代替除法操作。 章小結 在本章中探討了軟件項目的技術基礎,其中包括開發(fā)環(huán)境的配置,開發(fā)工具軟件的安裝以及使用,本項目涉及的 及 8指令體系的介紹,編程語言 8匯編語言和 特點。 第 3 章 軟件開發(fā)模型 13 第 3 章 軟件開發(fā)模型 統(tǒng)開發(fā)模型分析 傳統(tǒng)的軟件開發(fā)模型是 V 字型的瀑布模型, 是 1970 年 出來的,典型的瀑布模型一般包括:系統(tǒng)需求定義、軟件需求分析、軟件 設計(也可細分為概要設計和詳細設計)、軟件實現(xiàn)和軟件測試(包括單元測試、組裝測試和確認測試)驗證階段 26,見圖 需 需 需 需需 需 需 需需 需 需 需需 需 需 需需 需 需 需需 需 需 需需 需 需 需圖 布式 軟件開發(fā)模型 在傳統(tǒng)瀑布型開發(fā)模型中,一般采用系統(tǒng)結構驅動開發(fā)的方式,用戶需求定義完畢后,按部就班地按照 種開發(fā)方式具有 階段劃分嚴謹、文檔支持強的優(yōu)點,但是也存在對需求變更的響應不太靈活和早期錯誤不易發(fā)現(xiàn)的問題,特別是在需求定義階段的錯誤直到確認測試或者用戶驗收時才能發(fā)現(xiàn),經(jīng)常會造成軟件的顛覆 性修改。 因此,在保留傳統(tǒng)瀑布模型優(yōu)點的同時,為避免瀑布模型存在的問題,這里加入了測試驅動開發(fā)的新型 開發(fā)方法。 同濟大學 碩士學位論文 基于 國產(chǎn) 軌實時系統(tǒng)的設計與實現(xiàn) 14 試驅動開發(fā)介紹 測試驅動開發(fā) ( 的基本思想就是在開發(fā)功能代碼之前,先編寫測試代碼,然后只編寫使測試通過的功能代碼,從而以測試來驅動整個開發(fā)過程的進行。這有助于編寫簡潔可用和高質量的代碼,有很高的靈活性和健壯性,能快速響應變化,并加速開發(fā)過程 27。 測試驅動開發(fā)主要包括兩方面內(nèi)容:測試先行和代碼重構。測試驅動開發(fā)一反傳統(tǒng)開發(fā)方式下先編寫代碼再做單元測試的做法,而將單元測試用例的編寫 放在代碼實現(xiàn)之前。重構則是在不改變代碼外在行為的條件下改進其內(nèi)部行為的一種軟件系統(tǒng)改變過程,使其往松耦合、高內(nèi)聚方向發(fā)展。 測試驅動開發(fā)一般的過程如下: 從用戶需求出發(fā),快速新增一個測試用例; 1) 編譯代碼,剛寫的測試用例一般通不過; 2) 作盡可能小的改動,以使編譯能夠通過; 3) 運行所有的測試,并且全部通過 ; 4) 重構代碼,以消除重復設計,優(yōu)化設計結構 28。 試驅動開發(fā)的優(yōu)缺點 試驅動開發(fā)的優(yōu)點 測試驅動開發(fā)相對于傳統(tǒng)的軟件開發(fā)方式,具有以下特點: 1)測試驅動開發(fā) 根據(jù)客戶需求編寫 測試用例,對功能的過程和接口都進行了設計,而且這種從使用者角度對代碼進行的設計通常更符合后期開發(fā)的需求。因為關注用戶反饋,可以及時響應需求變更,同時因為從使用者角度出發(fā)的簡單設計,也可以更快地適應變化 ; 2) 出于易測試和測試獨立性的要求, 測試驅動開發(fā) 促使 開發(fā)者 實現(xiàn)松耦合的設計,并更多地依賴于接口而非具體的類,提高系統(tǒng)的可擴展性和抗變性 ,從而 明顯地縮短了設計決策的反饋循環(huán) ; 3)測試驅動開發(fā) 將測試工作提到編碼之前,并頻繁地運行所有測試,可以第 3 章 軟件開發(fā)模型 15 盡量地避免和盡早地發(fā)現(xiàn)錯誤,降低了后續(xù)測試及修復的成本,提高了代碼的質量。在測試的保護下,不斷重構代碼,以消除重復設計,優(yōu)化設計結構,提高了代碼的重用性,從而提高了軟件產(chǎn)品的質量 ; 4)測試驅動開發(fā) 提供了持續(xù)的回歸測試, 便于開發(fā)者對代碼進行 重構,因為代碼的改動導致系統(tǒng)其他部分產(chǎn)生任何異常,測試都會立刻通知我們。完整的測試會幫助我們持續(xù)地跟蹤整個系統(tǒng)的狀態(tài),因此 可以避免一些軟件潛通路問題; 5)系統(tǒng)可以與詳細的測試 用例 集一起發(fā)布,從而對程序將來版本的更改和擴展提供方便; 6)由于編寫測試用例和代碼過程上統(tǒng)一,降低了測試人員理解代碼所花費的成本 29。 試驅動開發(fā)的 缺點 根據(jù)已采用測試驅動開發(fā)的人員評價,測試驅動方法也存在以下問題: 1)開發(fā)者可能只完成滿足了測試的代碼,而忽略了對實際需求的實現(xiàn); 2)會放慢開發(fā)實際代碼的速度,特別對于要求開發(fā)速度的原型開發(fā)造成不利; 3)對于圖形化用戶界面( 資料庫和 用而言。構造單元測試比較困難,如果強行構造單元測試,反而給維護帶來額外的工作量; 4)使

溫馨提示

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

評論

0/150

提交評論