亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        民用飛機A級別機載軟件項目源代碼到目標(biāo)代碼追溯性分析研究

        2016-09-29 10:51:11
        科技視界 2016年20期
        關(guān)鍵詞:源代碼

        童岳威 劉建方

        【摘 要】機載軟件在某些特定情況下應(yīng)該分析源代碼和目標(biāo)代碼之間的對應(yīng)關(guān)系,RTCA/DO-178B第6.4.4.2節(jié)指出:機載軟件結(jié)構(gòu)覆蓋率分析可以在源代碼層級進行,如果軟件為A級別并且編譯過程中生成了無法追溯到源代碼的目標(biāo)代碼,則應(yīng)該在目標(biāo)代碼層級完成額外的驗證工作以保證這些目標(biāo)代碼的正確性。因此,對于A級別軟件,如果編譯器生成了無法追溯到源代碼的目標(biāo)代碼,那么除了完成源代碼層級結(jié)構(gòu)覆蓋率分析,還應(yīng)該完成源代碼和目標(biāo)代碼之間的追溯性分析,并對不能追溯到源代碼的目標(biāo)代碼進行額外的驗證。本文研究了源代碼到目標(biāo)代碼的追溯性分析方法。

        【關(guān)鍵詞】機載軟件;源代碼;目標(biāo)代碼;追溯性分析;結(jié)構(gòu)覆蓋率

        0 引言

        隨著電子計算機技術(shù)快速地發(fā)展,機載軟件在民用飛機上的使用越來越廣泛,并且扮演著日益關(guān)鍵的角色。許多高安全關(guān)鍵性的機載系統(tǒng)都由機載軟件實現(xiàn)主要的控制、監(jiān)控和維護功能,并且通過系統(tǒng)初步安全性分析過程為這些機載軟件分配相應(yīng)的IDAL等級。對于IDAL級別為A、B和C級的機載軟件,RTCA/DO-178B要求除了滿足基于需求的測試覆蓋率分析外,還需要完成結(jié)構(gòu)覆蓋率分析,結(jié)構(gòu)覆蓋率分析用于確定基于需求的測試未覆蓋到的代碼結(jié)構(gòu),結(jié)構(gòu)覆蓋率分析目的的詳細信息可參考RTCA/DO-248B FAQ#43。

        RTCA/DO-178B并沒有限制在源代碼層級或者目標(biāo)代碼層級來完成機載軟件結(jié)構(gòu)覆蓋率分析工作,但在第6.4.4.2節(jié)指出:機載軟件結(jié)構(gòu)覆蓋率分析可以在源代碼層級進行,如果軟件為A級別并且編譯過程中生成了無法追溯到源代碼的目標(biāo)代碼,則應(yīng)該在目標(biāo)代碼層級完成額外的驗證工作以保證這些目標(biāo)代碼的正確性。

        機載軟件在編譯過程中會生成額外的目標(biāo)代碼,比如初始化目標(biāo)代碼、內(nèi)置錯誤探測目標(biāo)代碼、異常處理目標(biāo)代碼等等。因此,對于A級別軟件,如果在源代碼層級完成結(jié)構(gòu)覆蓋率分析,還應(yīng)該分析源代碼和目標(biāo)代碼之間的追溯性,并對不能追溯到源代碼的目標(biāo)代碼進行額外的驗證。

        本文通過分析機載軟件編譯過程以及目標(biāo)代碼生成的影響因素研究了源代碼到目標(biāo)代碼的追溯性分析方法。

        1 機載軟件編譯過程

        機載軟件通常采用“高級語言”編寫,如Ada、C、C++等編程語言,編譯器將“高級語言”源代碼翻譯成“低級語言”匯編代碼的過程稱為“編譯過程”。典型的編譯過程如圖1所示,包括詞法分析、語法分析、語義分析、中間代碼生成、代碼優(yōu)化和目標(biāo)代碼生成等過程。

        1)詞法分析:對輸入的源程序字符串進行掃描和分解,從而識別出一個個符號,并轉(zhuǎn)化成機器比較容易使用的內(nèi)碼形式;

        2)語法分析:在詞法分析的基礎(chǔ)上將符號序列分解成各類語法短語,如程序、語句、表達式等;

        3)語義分析:語義分析檢查源程序有無語義錯誤,為代碼生成階段收集類型信息;

        4)中間代碼生成:在語法分析和語義分析后,將源程序翻譯成中間代碼。一般而言,中間代碼是獨立于具體硬件的記號系統(tǒng),在某種程度上解決計算機的指令形式,或者比較容易轉(zhuǎn)化為計算機的機器指令;

        5)代碼優(yōu)化:代碼優(yōu)化過程是對前階段產(chǎn)生的中間代碼進行變換或改造,目的是使生成的目標(biāo)代碼更為高效,即節(jié)省時間和空間,代碼優(yōu)化遵循等價變換規(guī)則;

        6)目標(biāo)代碼生成:目標(biāo)代碼生成過程是把中間代碼編譯成特定機器上的絕對指令代碼或可重定位的指令代碼或匯編代碼,這個階段的工作涉及到硬件系統(tǒng)功能部件的實現(xiàn)、機器指令的選擇、各種數(shù)據(jù)類型變量的存儲空間分配以及寄存器和后援寄存器的調(diào)度。

        在大多數(shù)情況下機載軟件是運行在嵌入式平臺上的。由于性能和資源的限制,嵌入式軟件大多數(shù)在PC等上位機環(huán)境中開發(fā),然后加載到嵌入式目標(biāo)計算中運行。這種情況下,就要用到交叉編譯。簡單而言,交叉編譯就是在一種環(huán)境中編譯生成能夠在另一種環(huán)境中運行的目標(biāo)代碼。

        因為編譯生成的目標(biāo)代碼與硬件環(huán)境是緊密相關(guān)的,因此將相同的源代碼編譯為在不同處理器上運行的目標(biāo)代碼時,需要分別對這些目標(biāo)代碼進行追溯性分析。

        2 目標(biāo)代碼生成的影響因素

        在將源代碼編譯成目標(biāo)代碼的過程中,應(yīng)該考慮影響最終生成目標(biāo)代碼的因素,這些因素會影響到源代碼和目標(biāo)代碼之間追溯性,包括以下幾點:

        1)目標(biāo)處理器:同一系列的新處理器通常使用向上兼容的指令集,但是不同系列或者不同廠商的處理器可能采用不同的指令集。由于目標(biāo)代碼與運行的處理器緊密相關(guān),所以將相同源代碼經(jīng)過編譯在不同處理器上運行,可能生成不同的目標(biāo)代碼;

        2)編譯器選項:對于編譯器進行不同的選項設(shè)置,可能影響編譯的執(zhí)行過程,進而影響最終生成的目標(biāo)代碼;

        3)代碼優(yōu)化層次:代碼優(yōu)化能夠提高目標(biāo)代碼的執(zhí)行效率,但是深層次的優(yōu)化會對源代碼進行重構(gòu),從而使源代碼和目標(biāo)代碼的追溯關(guān)系難以確定;

        4)編程語言特征:有些編程語言的特性導(dǎo)致部分目標(biāo)代碼很難發(fā)現(xiàn),例如寄存器使用優(yōu)化,循環(huán)展開優(yōu)化,C++中多態(tài)特性使用等等。

        可以看出,影響最終目標(biāo)代碼生成的影響因素有許多,常見的不能追溯到源代碼的目標(biāo)代碼包括:初始化代碼,內(nèi)置錯誤探測,異常處理,數(shù)組邊界檢查等等。

        3 源代碼和目標(biāo)代碼追溯性分析方法

        根據(jù)RTCA/DO-178B的要求,如果A級別軟件在源代碼層級完成結(jié)構(gòu)覆蓋率分析,而且編譯器生成了無法直接追溯到源代碼的目標(biāo)代碼,那么應(yīng)該對這些目標(biāo)代碼進行額外的驗證。因此,為了識別出不能追溯到源代碼的目標(biāo)代碼,應(yīng)該對源代碼和目標(biāo)代碼之間進行追溯性分析。通常而言,源代碼和目標(biāo)代碼的追溯分析可以采用以下幾種方法:

        1)全面目標(biāo)代碼分析:對于規(guī)模相對較小的機載軟件,可以將源代碼編譯為匯編目標(biāo)代碼,然后通過人工分析的方法來識別出哪些目標(biāo)代碼不是運行源代碼所必須的,并對追溯不到源代碼的目標(biāo)代碼進行額外的驗證以確保其正確性。

        2)對源代碼結(jié)構(gòu)最小子集進行分析:該方法的主要思路是按照軟件編碼標(biāo)準(zhǔn)的約束編寫樣例代碼,然后進行編譯,并通過人工分析的方法來分析樣例代碼的目標(biāo)代碼和源代碼的追溯關(guān)系。在實際軟件研制過程中,應(yīng)該嚴格遵循軟件編碼標(biāo)準(zhǔn),并通過源代碼結(jié)構(gòu)最小子集到目標(biāo)代碼追溯性分析來滿足機載軟件源代碼到目標(biāo)代碼的追溯性要求。相對于全面代碼分析而言,源代碼結(jié)構(gòu)最小子集分析方法的追溯性分析工作量大大減少,而且分析報告可以在多個機載軟件項目上重復(fù)使用。源代碼結(jié)構(gòu)最小子集分析方法如圖2所示。

        圖2 源代碼結(jié)構(gòu)最小子集分析法

        具體過程如下:

        (1)編制機載軟件編碼標(biāo)準(zhǔn),對軟件編碼所使用的編程語言、規(guī)則、復(fù)雜度等進行約束和限制;

        (2)按照機載軟件編碼標(biāo)準(zhǔn)中的約束和限制提取軟件源代碼結(jié)構(gòu)最小子集,源代碼結(jié)構(gòu)是編程語言最基本的組成部分,如加減法等函數(shù)結(jié)構(gòu)、循環(huán)/比較等邏輯結(jié)構(gòu)等等;

        (3)將機載軟件項目源代碼和源代碼結(jié)構(gòu)最小子集進行比較,判定源代碼結(jié)構(gòu)最小子集是否覆蓋了機載軟件項目所有源代碼結(jié)構(gòu);

        (4)按照源代碼結(jié)構(gòu)最小子集編寫樣例代碼;

        (5)在與實際機載軟件項目相同的編譯環(huán)境下使用相同的編譯器、設(shè)置相同的編譯器選項編譯樣例代碼,并生成目標(biāo)代碼;

        (6)對樣例源代碼和樣例目標(biāo)代碼做追溯性分析;

        (7)生成追溯性分析報告,識別出不能追溯到樣例源代碼的樣例目標(biāo)代碼。

        3)基于目標(biāo)代碼的結(jié)構(gòu)覆蓋分析:在目標(biāo)代碼層級進行結(jié)構(gòu)覆蓋分析的情況下,RTCA/DO-178B不再要求進行源代碼到目標(biāo)代碼的追溯性分析。但是,采用該方法時,需要在目標(biāo)代碼層級滿足RTCA/DO-178B對A級別軟件結(jié)構(gòu)覆蓋率要求,包括語句覆蓋、決策覆蓋、MC/DC覆蓋和數(shù)據(jù)耦合/控制耦合覆蓋。

        源代碼和目標(biāo)代碼追溯性分析可以用于識別出哪些目標(biāo)代碼不能追溯到源代碼,但不能用來表明這些額外的目標(biāo)代碼的正確性。對于這些額外的目標(biāo)代碼,應(yīng)該通過驗證來確認它們正確地運行并且不會對機載軟件引入異常行為。RTCA/DO-178B中定義了驗證方法可以是評審、分析和測試,因此第6.4.4.2節(jié)中對不能追溯到源代碼的目標(biāo)代碼的驗證并不等同于額外的目標(biāo)代碼應(yīng)滿足A級別機載軟件結(jié)構(gòu)覆蓋率分析的要求。

        4 總結(jié)

        本文分析了機載軟件編譯過程及生成目標(biāo)代碼的影響因素,并研究了民用飛機A級別機載軟件項目源代碼到目標(biāo)代碼追溯性分析方法。隨著機載軟件在民用飛機高安全性系統(tǒng)上的使用越來越廣泛,A級別機載軟件廣泛分布于現(xiàn)代民用飛機飛控、剎車、起落架、顯示等系統(tǒng)中,為了滿足RTCA/DO-178B第6.4.4.2節(jié)對于A級別機載軟件結(jié)構(gòu)覆蓋率的要求,需要對機載軟件源代碼到目標(biāo)代碼追溯性進行研究。

        【參考文獻】

        [1]RTCA. DO-178B Software considerations in airborne systems and equipment certification[J]. Washington DC, 1992.

        [2]RTCA. DO-248B Final report for clarification of DO-178B software considerations in airborne systems and equipment certification[J]. Washington DC, 2001.

        猜你喜歡
        源代碼
        人工智能下復(fù)雜軟件源代碼缺陷精準(zhǔn)校正
        計算機仿真(2023年8期)2023-09-20 11:23:42
        基于TXL的源代碼插樁技術(shù)研究
        國際經(jīng)貿(mào)協(xié)定中的源代碼規(guī)則新發(fā)展及中國立場
        軟件源代碼非公知性司法鑒定方法探析
        基于語法和語義結(jié)合的源代碼精確搜索方法
        《月球》與《源代碼》淺析
        文教資料(2017年10期)2017-06-24 12:53:26
        解讀當(dāng)代寫意油畫的源代碼
        保護好自己的“源代碼”
        揭秘龍湖產(chǎn)品“源代碼”
        做一個中國特色的.Net源代碼社區(qū)
        91国产精品自拍视频| 中国a级毛片免费观看| 最近中文字幕完整版| 神马不卡一区二区三级| 日韩av在线不卡一二三区| 日本按摩偷拍在线观看| 亚洲国产精品无码久久一线| 久久精品黄aa片一区二区三区| 丰满爆乳无码一区二区三区| 欧美中出在线| h视频在线观看视频在线| 草逼动态图视频免费观看网站| 东京热久久综合久久88| 亚洲av综合av国产av| 亚洲国产成人精品激情资源9| 蜜桃av福利精品小视频| 日本一区二区视频在线| 日本高清视频wwww色| 久久99久久99精品免观看| 国产欧美日韩专区毛茸茸| 亚洲一区二区三区麻豆| 日本道免费一区二区三区日韩精品| 亚洲熟妇少妇任你躁在线观看无码| 日韩人妻精品无码一区二区三区 | 欧美人与禽2o2o性论交| 成人网站免费大全日韩国产| 国产精品麻豆A啊在线观看 | 亚洲欧洲日产国码无码AV一| 在线视频一区二区观看| 国产亚洲精品在线视频| 男女性杂交内射妇女bbwxz| 国产精品成人99一区无码| 欧美熟妇与小伙性欧美交| 色婷婷亚洲精品综合影院| 亚洲熟妇无码久久精品| 亚洲av综合日韩| 精品无人区无码乱码大片国产| 亚洲码专区亚洲码专区| 精品国产一区二区三区2021| 日韩精品无码视频一区二区蜜桃| 国产片三级视频播放|