999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

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

2016-09-29 10:51:11
科技視界 2016年20期

童岳威 劉建方

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

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

0 引言

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

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

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

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

1 機(jī)載軟件編譯過(guò)程

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

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

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

3)語(yǔ)義分析:語(yǔ)義分析檢查源程序有無(wú)語(yǔ)義錯(cuò)誤,為代碼生成階段收集類(lèi)型信息;

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

具體過(guò)程如下:

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

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

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

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

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

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

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

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

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

4 總結(jié)

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

【參考文獻(xiàn)】

[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.

主站蜘蛛池模板: 一本大道AV人久久综合| 亚洲中文字幕在线一区播放| 国产女人在线| 亚洲AV无码不卡无码| 久热中文字幕在线| 国产大片黄在线观看| 久久国产成人精品国产成人亚洲| 欧美日韩在线成人| 国产欧美日韩91| 欧美性精品| 全部免费特黄特色大片视频| 无码中文AⅤ在线观看| 日韩免费毛片| 国产精品嫩草影院av| 亚洲娇小与黑人巨大交| 亚洲AⅤ永久无码精品毛片| 成人欧美日韩| 亚洲人成亚洲精品| 美女毛片在线| 亚洲国产成人精品青青草原| 国产视频大全| 亚洲一级毛片在线播放| 欧美啪啪视频免码| 自偷自拍三级全三级视频 | 国产精品亚洲一区二区三区在线观看| 无码人妻免费| 亚洲美女一区| 久久国产精品嫖妓| 中文字幕天无码久久精品视频免费| 免费xxxxx在线观看网站| 久久一级电影| 成人免费一区二区三区| 国产精品无码作爱| a毛片在线| 午夜精品久久久久久久无码软件 | 波多野结衣中文字幕一区| 99精品热视频这里只有精品7| 一本大道无码高清| 欧美成人精品一级在线观看| 一本大道无码高清| 久久精品这里只有精99品| 国产毛片久久国产| 免费在线国产一区二区三区精品| 欧美自拍另类欧美综合图区| 爽爽影院十八禁在线观看| 99精品视频九九精品| 亚洲熟女偷拍| 福利一区在线| 精品无码视频在线观看| 精品视频一区在线观看| 亚洲欧美人成人让影院| 亚洲高清免费在线观看| 成人午夜视频在线| www.91在线播放| 免费va国产在线观看| 成人另类稀缺在线观看| 精品自窥自偷在线看| 国产偷国产偷在线高清| 天堂久久久久久中文字幕| 2019国产在线| 无码日韩视频| 亚洲欧美极品| 欧美精品一区在线看| 亚洲午夜福利精品无码不卡 | 天天操精品| 无码av免费不卡在线观看| 97se亚洲综合在线韩国专区福利| 美女被操黄色视频网站| 亚洲欧美激情小说另类| 狠狠干综合| 色妞www精品视频一级下载| 日本一本在线视频| 亚洲av无码牛牛影视在线二区| 成人午夜福利视频| 91国内在线观看| 久久这里只有精品免费| 人妻21p大胆| 久久精品无码国产一区二区三区| 在线视频一区二区三区不卡| 国产精品网曝门免费视频| 亚洲视频在线网| 免费一看一级毛片|