国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      機(jī)載軟件開發(fā)過程中引入錯(cuò)誤的檢測方法和系統(tǒng)與流程

      文檔序號:12786263閱讀:227來源:國知局
      機(jī)載軟件開發(fā)過程中引入錯(cuò)誤的檢測方法和系統(tǒng)與流程

      本發(fā)明涉及機(jī)載軟件開發(fā)技術(shù)領(lǐng)域,特別涉及一種機(jī)載軟件開發(fā)過程中引入錯(cuò)誤的檢測方法和系統(tǒng)。



      背景技術(shù):

      非機(jī)載軟件研制過程中,軟件開發(fā)環(huán)境大多采用集成開發(fā)環(huán)境(IDE,Integrated Development Environment)。集成開發(fā)環(huán)境是用于提供程序開發(fā)環(huán)境的應(yīng)用程序,一般包括編輯器、編譯器、鏈接器和加載器,是集成了代碼編寫功能、編譯功能、鏈接功能以及加載功能等一體化的開發(fā)軟件服務(wù)套。所有具備這一特性的軟件或者軟件套都可以叫集成開發(fā)環(huán)境,如微軟的Visual Studio系列,Borland的C++Builder、Delphi系列等。

      由于集成開發(fā)環(huán)境提供的默認(rèn)配置、編譯參數(shù)以及鏈接參數(shù)足以支持編譯過程和鏈接過程,非機(jī)載軟件的編譯過程和鏈接過程極少被關(guān)注。但機(jī)載軟件作為高安全性和高可靠性軟件,其在開發(fā)過程中應(yīng)確保源代碼被正確編譯和鏈接且沒有引入錯(cuò)誤,這要求集成開發(fā)環(huán)境在進(jìn)行編譯工作和鏈接工作時(shí)應(yīng)分析編譯器和鏈接器的輸出。圖1是軟件集成開發(fā)環(huán)境的結(jié)構(gòu)示意圖,集成開發(fā)環(huán)境包括編輯器10、編譯器11、鏈接器12以及加載器13。其中,編輯器10向編譯器11提供源代碼和編譯指南,編譯器11向鏈接器12提供目標(biāo)代碼,鏈接器12向加載器13提供可執(zhí)行代碼,加載器13在加載指南的指導(dǎo)下將可執(zhí)行代碼加載到目標(biāo)機(jī)上。如圖1所示,機(jī)載軟件集成過程中引入錯(cuò)誤包括編譯器錯(cuò)誤、鏈接器錯(cuò)誤以及加載器錯(cuò)誤三種。

      DO-178C標(biāo)準(zhǔn)要求機(jī)載軟件集成過程的輸出是正確和完整的,通過評審機(jī)載軟件開發(fā)過程中引入錯(cuò)誤來保證機(jī)載軟件集成過程中引入錯(cuò)誤已經(jīng)被檢測并被消除,但DO-178C標(biāo)準(zhǔn)中卻未說明如何檢測機(jī)載軟件開發(fā)過程中的引入錯(cuò)誤。



      技術(shù)實(shí)現(xiàn)要素:

      本發(fā)明所要解決的問題是提供一種機(jī)載軟件開發(fā)過程中引入錯(cuò)誤的檢測方法,為評審機(jī)載軟件開發(fā)過程提供依據(jù),保證機(jī)載軟件集成過程的輸出是正確和完整的。

      為解決上述問題,本發(fā)明提供一種機(jī)載軟件開發(fā)過程中引入錯(cuò)誤的檢測方法,包括:解析源代碼文件信息以生成源文件列表;錄入編譯的軟件版本信息,所述編譯的軟件版本信息包括編譯判定結(jié)果;根據(jù)工程文件和所述源文件列表生成部件遺漏報(bào)告;根據(jù)鏈接器命令文件生成內(nèi)存重疊報(bào)告;根據(jù)加載結(jié)果生成加載報(bào)告。本發(fā)明提供的機(jī)載軟件開發(fā)過程中引入錯(cuò)誤的檢測方法,能夠檢測出機(jī)載軟件開發(fā)過程中引入的編譯錯(cuò)誤、鏈接錯(cuò)誤以及加載錯(cuò)誤,并對各類引入錯(cuò)誤生成相應(yīng)的報(bào)告作為評審機(jī)載軟件開發(fā)過程的依據(jù),從而保證機(jī)載軟件集成過程的輸出是正確和完整的。

      可選的,所述編譯的軟件版本信息還包括集成開發(fā)環(huán)境信息、編譯所使用的硬件環(huán)境信息、源代碼信息、集成開發(fā)環(huán)境配置文件信息、集成開發(fā)環(huán)境操作手冊信息、集成開發(fā)環(huán)境安裝手冊信息以及編譯日志信息。

      可選的,所述根據(jù)工程文件和所述源文件列表生成部件遺漏報(bào)告包括:錄入工程文件;檢查所述工程文件中的目標(biāo)文件名和所述源文件列表中的源文件名是否一致;若一致,則判定不存在部件遺漏,否則判定存在部件遺漏;根據(jù)判定結(jié)果生成部件遺漏報(bào)告。

      可選的,所述根據(jù)工程文件和所述源文件列表生成部件遺漏報(bào)告還包括:在判定存在部件遺漏時(shí),在所述源文件列表中檢索未生成目標(biāo)文件的源文件信息。

      可選的,所述根據(jù)鏈接器命令文件生成內(nèi)存重疊報(bào)告包括:錄入定義了段信息的鏈接器命令文件;記錄反匯編命令;錄入段地址信息;生成段地址表;檢查各個(gè)段之間的地址是否重疊;檢查段內(nèi)符號是否重疊;若各個(gè)段之間的地址不重疊且段內(nèi)符號也不重疊,則判定不存在內(nèi)存重疊,否則判定存在內(nèi)存重疊;根據(jù)判定結(jié)果生成內(nèi)存重疊報(bào)告。

      可選的,所述段信息包括段的起始地址、段的長度以及段的結(jié)束地址。

      可選的,所述根據(jù)加載結(jié)果生成加載報(bào)告包括:錄入加載的軟件版本信息;錄入加載結(jié)果;檢查所述加載結(jié)果中顯示的軟件版本信息與所述加載的軟件版本信息是否一致;若一致,則判定加載成功,否則判定加載失敗;根據(jù)判定結(jié)果生成加載報(bào)告。

      可選的,所述加載的軟件版本信息包括可執(zhí)行目標(biāo)代碼版本、參數(shù)數(shù)據(jù)文件、加載手冊以及目標(biāo)硬件信息。

      本發(fā)明的另一個(gè)方面還提供了一種機(jī)載軟件開發(fā)過程中引入錯(cuò)誤的檢測系統(tǒng),其特征在于,包括:解析源代碼文件信息以生成源文件列表的裝置;錄入編譯的軟件版本信息的裝置,所述編譯的軟件版本信息包括編譯判定結(jié)果;根據(jù)工程文件和所述源文件列表生成部件遺漏報(bào)告的裝置;根據(jù)鏈接器命令文件生成內(nèi)存重疊報(bào)告的裝置;根據(jù)加載結(jié)果生成加載報(bào)告的裝置。

      根據(jù)本發(fā)明一個(gè)實(shí)施例的一種機(jī)載軟件開發(fā)過程中引入錯(cuò)誤的檢測系統(tǒng),其中,所述編譯的軟件版本信息還包括集成開發(fā)環(huán)境信息、編譯所使用的硬件環(huán)境信息、源代碼信息、集成開發(fā)環(huán)境配置文件信息、集成開發(fā)環(huán)境操作手冊信息、集成開發(fā)環(huán)境安裝手冊信息以及編譯日志信息。

      根據(jù)本發(fā)明一個(gè)實(shí)施例的一種機(jī)載軟件開發(fā)過程中引入錯(cuò)誤的檢測系統(tǒng),其中,所述根據(jù)工程文件和所述源文件列表生成部件遺漏報(bào)告包括:錄入工程文件;檢查所述工程文件中的目標(biāo)文件名和所述源文件列表中的源文件名是否一致;若一致,則判定不存在部件遺漏,否則判定存在部件遺漏;根據(jù)判定結(jié)果生成部件遺漏報(bào)告。

      根據(jù)本發(fā)明一個(gè)實(shí)施例的一種機(jī)載軟件開發(fā)過程中引入錯(cuò)誤的檢測系統(tǒng),其中,所述根據(jù)工程文件和所述源文件列表生成部件遺漏報(bào)告還包括:在判定存在部件遺漏時(shí),在所述源文件列表中檢索未生成目標(biāo)文件的源文件信息。

      根據(jù)本發(fā)明一個(gè)實(shí)施例的一種機(jī)載軟件開發(fā)過程中引入錯(cuò)誤的檢測系統(tǒng),其中,所述根據(jù)鏈接器命令文件生成內(nèi)存重疊報(bào)告包括:錄入定義了段信息的鏈接器命令文件;記錄反匯編命令;錄入段地址信息;生成段地址表;檢查各個(gè)段之間的地址是否重疊;檢查段內(nèi)符號是否重疊;若各個(gè)段之間的地址不重疊且段內(nèi)符號也不重疊,則判定不存在內(nèi)存重疊,否則判定存在內(nèi)存重疊;根據(jù)判定結(jié)果生成內(nèi)存重疊報(bào)告。

      根據(jù)本發(fā)明一個(gè)實(shí)施例的一種機(jī)載軟件開發(fā)過程中引入錯(cuò)誤的檢測系統(tǒng),其中,所述段信息包括段的起始地址、段的長度以及段的結(jié)束地址。

      根據(jù)本發(fā)明一個(gè)實(shí)施例的一種機(jī)載軟件開發(fā)過程中引入錯(cuò)誤的檢測系統(tǒng),其中,所述根據(jù)加載結(jié)果生成加載報(bào)告包括:錄入加載的軟件版本信息;錄入加載結(jié)果;檢查所述加載結(jié)果中顯示的軟件版本信息與所述加載的軟件版本信息是否一致;若一致,則判定加載成功,否則判定加載失??;根據(jù)判定結(jié)果生成加載報(bào) 告。

      根據(jù)本發(fā)明一個(gè)實(shí)施例的一種機(jī)載軟件開發(fā)過程中引入錯(cuò)誤的檢測系統(tǒng),其中,所述加載的軟件版本信息包括可執(zhí)行目標(biāo)代碼版本、參數(shù)數(shù)據(jù)文件、加載手冊以及目標(biāo)硬件信息。

      與現(xiàn)有技術(shù)相比,本發(fā)明具有以下優(yōu)點(diǎn):

      本發(fā)明提供的機(jī)載軟件開發(fā)過程中引入錯(cuò)誤的檢測方法,能夠檢測出機(jī)載軟件開發(fā)過程中引入的編譯錯(cuò)誤、鏈接錯(cuò)誤以及加載錯(cuò)誤,并對各類引入錯(cuò)誤生成相應(yīng)的報(bào)告作為評審機(jī)載軟件開發(fā)過程的依據(jù),從而保證機(jī)載軟件集成過程的輸出是正確和完整的。

      附圖說明

      圖1是軟件集成開發(fā)環(huán)境的結(jié)構(gòu)示意圖;

      圖2是本發(fā)明實(shí)施例的機(jī)載軟件開發(fā)過程中引入錯(cuò)誤的檢測方法的流程示意圖;

      圖3是本發(fā)明實(shí)施例的生成部件遺漏報(bào)告的流程示意圖;

      圖4是本發(fā)明實(shí)施例的生成內(nèi)存重疊報(bào)告的流程示意圖;

      圖5是本發(fā)明實(shí)施例的生成加載報(bào)告的流程示意圖。

      具體實(shí)施方式

      下面結(jié)合實(shí)施例及附圖,對本發(fā)明作進(jìn)一步地的詳細(xì)說明,但本發(fā)明的實(shí)施方式不限于此。

      圖2是本發(fā)明實(shí)施例的機(jī)載軟件開發(fā)過程中引入錯(cuò)誤的檢測方法的流程示意圖,所述機(jī)載軟件開發(fā)過程中引入錯(cuò)誤的檢測方法包括:

      步驟S1,解析源代碼文件信息以生成源文件列表。具體地,源代碼編輯完成后,在用戶設(shè)置好的源代碼存放路徑下檢索所有符合要求格式的文件(例如以.c和.cpp結(jié)尾的文件),并將所有符合要求格式的文件生成源文件列表。

      步驟S2,錄入編譯的軟件版本信息,所述編譯的軟件版本信息包括編譯判定結(jié)果。具體地,對源代碼編譯完成后,錄入編譯的軟件版本信息進(jìn)行保存。所述編譯的軟件版本信息中的編譯判定結(jié)果是根據(jù)編譯器的輸出進(jìn)行判定獲得,包括編譯通過和編譯失敗。所述編譯的軟件版本信息還包括集成開發(fā)環(huán)境信息、編譯所使用的硬件環(huán)境信息、源代碼信息、集成開發(fā)環(huán)境配置文件信息、集成開發(fā) 環(huán)境操作手冊信息、集成開發(fā)環(huán)境安裝手冊信息以及編譯日志信息,上述信息可以確保所有的編譯過程數(shù)據(jù)可以復(fù)現(xiàn)。錄入上述編譯的軟件版本信息之后,可以生成編譯報(bào)告,所述編譯報(bào)告包括編譯判定結(jié)果。

      步驟S3,根據(jù)工程文件和所述源文件列表生成部件遺漏報(bào)告。圖3是本發(fā)明實(shí)施例的生成部件遺漏報(bào)告的流程示意圖,所述根據(jù)工程文件和所述源文件列表生成部件遺漏報(bào)告包括:

      步驟S31,錄入工程文件。集成開發(fā)環(huán)境生成相關(guān)的工程文件后,錄入工程文件進(jìn)行保存。

      步驟S32,檢查所述工程文件中的目標(biāo)文件名和所述源文件列表中的源文件名是否一致。具體地,根據(jù)錄入的工程文件檢索工程文件中的目標(biāo)文件名(例如以.o結(jié)尾的文件),并將檢索到的目標(biāo)文件名與步驟S1中的源文件名進(jìn)行比對,檢查每個(gè)目標(biāo)文件名是否都有一個(gè)源文件名與其一致,以確保所有的源文件都生成了目標(biāo)文件。

      若每個(gè)目標(biāo)文件名都有一個(gè)源文件名與其一致,則表明所有的源文件都生成了目標(biāo)文件,執(zhí)行步驟S33,判定不存在部件遺漏;否則表明有源文件未生成目標(biāo)文件,執(zhí)行步驟S34,判定存在部件遺漏。

      步驟S35,根據(jù)判定結(jié)果生成部件遺漏報(bào)告。

      在本實(shí)施例中,在判定存在部件遺漏時(shí),還執(zhí)行步驟S36,在所述源文件列表中檢索未生成目標(biāo)文件的源文件信息。所述部件遺漏報(bào)告包括未生成目標(biāo)文件的源文件信息,以供用戶參考。

      步驟S4,根據(jù)鏈接器命令文件生成內(nèi)存重疊報(bào)告。圖4是本發(fā)明實(shí)施例的生成內(nèi)存重疊報(bào)告的流程示意圖,所述根據(jù)鏈接器命令文件生成內(nèi)存重疊報(bào)告包括:

      步驟S41,錄入定義了段信息的鏈接器命令文件。軟件鏈接完成后,錄入鏈接器命令文件進(jìn)行保存。鏈接器命令文件定義了段(Segment)信息,所述段信息包括段的起始地址、段的長度以及段的結(jié)束地址。

      步驟S42,記錄反匯編命令。可執(zhí)行代碼通過反匯編的方式顯示各個(gè)段內(nèi)的符號地址,段大小滿足預(yù)先分配的要求。例如,workbench開發(fā)環(huán)境提供了反匯編命令“nmppc”,該命令以及使用的參數(shù)均被錄入進(jìn)行保存。

      步驟S43,錄入段地址信息。具體地,錄入反匯編命令的顯示信息進(jìn)行保存。

      步驟S44,生成段地址表。由于反匯編的符號包含了段類型(d、t、b等),自動(dòng)根據(jù)段地址信息進(jìn)行分類,包括.bss段、.data段、.common段以及.text段等,并且每一個(gè)類中將按照地址由小到大順序進(jìn)行排列。

      步驟S45,檢查各個(gè)段之間的地址是否重疊。根據(jù)段地址表生成各個(gè)段的地址區(qū)間,以此檢查各個(gè)段之間的地址是否重疊。

      步驟S46,檢查段內(nèi)符號是否重疊。對每個(gè)段內(nèi)的符號進(jìn)行地址檢查,以檢查段內(nèi)符號是否重疊。

      若各個(gè)段之間的地址不重疊且段內(nèi)符號也不重疊,則執(zhí)行步驟S47,判定不存在內(nèi)存重疊;否則執(zhí)行步驟S48,判定存在內(nèi)存重疊。

      步驟S49,根據(jù)判定結(jié)果生成內(nèi)存重疊報(bào)告。

      步驟S5,根據(jù)加載結(jié)果生成加載報(bào)告。圖5是本發(fā)明實(shí)施例的生成加載報(bào)告的流程示意圖,所述根據(jù)加載結(jié)果生成加載報(bào)告包括:

      步驟S51,錄入加載的軟件版本信息。在對可執(zhí)行代碼進(jìn)行加載前,錄入加載的軟件版本信息進(jìn)行保存,所述加載的軟件版本信息包括可執(zhí)行目標(biāo)代碼版本、參數(shù)數(shù)據(jù)文件、加載手冊以及目標(biāo)硬件信息,所述目標(biāo)硬件信息包括目標(biāo)硬件的配置和屬性。

      步驟S52,錄入加載結(jié)果。錄入加載結(jié)果進(jìn)行保存,所述加載結(jié)果可包含生成的加載日志和界面等。

      步驟S53,檢查所述加載結(jié)果中顯示的軟件版本信息與所述加載的軟件版本信息是否一致。

      若一致,則執(zhí)行步驟S54,判定加載成功;否則執(zhí)行步驟S55,判定加載失敗。

      步驟S56,根據(jù)判定結(jié)果生成加載報(bào)告。

      根據(jù)步驟S2獲得的編譯報(bào)告、步驟S3獲得的部件遺漏報(bào)告、步驟S4獲得的內(nèi)存重疊報(bào)告以及步驟S5獲得的加載報(bào)告,針對軟件集成過程召開軟件集成過程評審會,從而確保集成過程的輸出是正確的和完整的。

      以上所述,僅是本發(fā)明的較佳實(shí)施例,并非對本發(fā)明做任何形式上的限制,凡是依據(jù)本發(fā)明的技術(shù)實(shí)質(zhì)對以上實(shí)施例所作的任何簡單修改、等同變化,均落 入本發(fā)明的保護(hù)范圍之內(nèi)。

      當(dāng)前第1頁1 2 3 
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
      1