劉爽
摘要:本文討論了機(jī)載軟件計(jì)劃過(guò)程的目標(biāo)和活動(dòng),這個(gè)過(guò)程產(chǎn)生用于指導(dǎo)機(jī)載軟件開發(fā)過(guò)程和整體過(guò)程的軟件計(jì)劃與標(biāo)準(zhǔn)。
關(guān)鍵詞:計(jì)劃;周期;活動(dòng)
1 機(jī)載軟件計(jì)劃過(guò)程目標(biāo)
軟件計(jì)劃過(guò)程定義了軟件開發(fā)方法,使其能滿足系統(tǒng)需求并獲得與軟件級(jí)別一致的置信度。軟件計(jì)劃過(guò)程共有7個(gè)目標(biāo):
a)定義軟件生命周期中軟件開發(fā)過(guò)程和整體過(guò)程的活動(dòng),以使其滿足系統(tǒng)需求和軟件級(jí)別要求;
b)定義軟件生命周期,包括軟件生命周期過(guò)程之間的關(guān)系、反饋機(jī)制和轉(zhuǎn)換準(zhǔn)則;
c)確定軟件生命周期環(huán)境,包括用于軟件生命周期過(guò)程活動(dòng)的方法和工具;
d)標(biāo)識(shí)出附加考慮,
e)定義與軟件系統(tǒng)安全性目標(biāo)一致的軟件開發(fā)標(biāo)準(zhǔn);
f)編制軟件計(jì)劃文件;
g)保證軟件計(jì)劃之間的協(xié)調(diào)一致性。
2 機(jī)載軟件計(jì)劃過(guò)程活動(dòng)
軟件計(jì)劃過(guò)程是軟件開發(fā)滿足DO-178B的一項(xiàng)決定性因素。軟件計(jì)劃過(guò)程的活動(dòng)包括:
a)軟件計(jì)劃應(yīng)指導(dǎo)相應(yīng)的人員開展軟件生命周期過(guò)程;
b)要明確項(xiàng)目中使用的軟件開發(fā)標(biāo)準(zhǔn);
c)要明確軟件生命周期過(guò)程中用于錯(cuò)誤防護(hù)和缺陷檢測(cè)的方法和工具;
d)軟件計(jì)劃過(guò)程應(yīng)協(xié)調(diào)好軟件開發(fā)過(guò)程和整體過(guò)程,以確保與軟件計(jì)劃文件中的策略保持一致;
e)軟件計(jì)劃過(guò)程要包括隨項(xiàng)目進(jìn)展對(duì)其修訂的方法;
f)當(dāng)使用多版本非相似軟件時(shí),軟件計(jì)劃過(guò)程要選擇為滿足系統(tǒng)安全性目標(biāo)所必要的達(dá)成非相似性的方法和工具;
g)為完成軟件計(jì)劃過(guò)程,軟件計(jì)劃文件和軟件開發(fā)標(biāo)準(zhǔn)應(yīng)納入更改控制之下并完成內(nèi)部評(píng)審;
h)如果計(jì)劃使用未激活代碼,軟件計(jì)劃過(guò)程需描述怎樣定義、驗(yàn)證這些未激活機(jī)制和未激活代碼,以滿足系統(tǒng)安全性目標(biāo);
i)如果計(jì)劃使用用戶可更改軟件,相應(yīng)的過(guò)程、工具、環(huán)境、數(shù)據(jù)等都應(yīng)在軟件計(jì)劃文件和標(biāo)準(zhǔn)中確定;
j)如果計(jì)劃使用PDI,計(jì)劃過(guò)程應(yīng)包含以下幾點(diǎn):
1)PDI的使用方法;
2)PDI的軟件級(jí)別;
3)PDI的開發(fā)、驗(yàn)證和更改過(guò)程,以及相應(yīng)的工具鑒定;
4)軟件加載控制及兼容性;
k)軟件計(jì)劃過(guò)程應(yīng)包含適用的附加考慮;
l)若軟件開發(fā)活動(dòng)由供應(yīng)商執(zhí)行,計(jì)劃過(guò)程應(yīng)包含對(duì)供應(yīng)商監(jiān)控;
m)計(jì)劃過(guò)程應(yīng)描述虛擬化技術(shù)及其相關(guān)的可執(zhí)行程序。任何被視為流控制的指令集而不是單單作為數(shù)值集處理的數(shù)據(jù),都視作使用了虛擬化技術(shù)。這類數(shù)據(jù)都應(yīng)當(dāng)做可執(zhí)行代碼處理并滿足相應(yīng)的目標(biāo)。
n)若計(jì)劃使用重用組件,需描述該組件如何整合進(jìn)新的開發(fā)中,包括與其他組件之間和與系統(tǒng)之間的類型一致性的維護(hù)、需求映射和異常管理策略。
若滿足某個(gè)過(guò)程活動(dòng)的轉(zhuǎn)換準(zhǔn)則,則該軟件生命周期過(guò)程可在軟件計(jì)劃過(guò)程完成前開始。
3 機(jī)載軟件計(jì)劃文件
軟件計(jì)劃文件的目的是定義滿足DO-178C和其他適用文件目標(biāo)的方法,并說(shuō)明了完成這些活動(dòng)的人員組織架構(gòu)。軟件計(jì)劃包括:
a)軟件合格審定計(jì)劃:作為與適航當(dāng)局就開發(fā)方法進(jìn)行溝通并達(dá)成一致的主要方法,并且定義對(duì)DO-178C的符合性。軟件合格審定計(jì)劃綜述了使用OOT&RT技術(shù)的方式和位置,以及處理OOT&RT技術(shù)缺陷和詳細(xì)考慮的方法;
b)軟件開發(fā)計(jì)劃:定義軟件生命周期和軟件開發(fā)環(huán)境,以及如何滿足軟件開發(fā)過(guò)程的目標(biāo)。軟件開發(fā)計(jì)劃詳述包含OOT&RT技術(shù)的精確的開發(fā)步驟;
c)軟件驗(yàn)證計(jì)劃:定義能滿足軟件的驗(yàn)證過(guò)程目標(biāo)的方法。軟件驗(yàn)證計(jì)劃詳述收集驗(yàn)證證據(jù)的方法;
4 機(jī)載軟件生命周期環(huán)境計(jì)劃
計(jì)劃軟件生命周期環(huán)境的目的是定義用于開發(fā)、驗(yàn)證、控制和產(chǎn)生軟件生命周期資料所使用的方法、工具、程序、編程語(yǔ)言和目標(biāo)機(jī)。有很多例子說(shuō)明如何選擇軟件環(huán)境是可以對(duì)機(jī)載軟件帶來(lái)好處,包括執(zhí)行標(biāo)準(zhǔn)、發(fā)現(xiàn)錯(cuò)誤、實(shí)施錯(cuò)誤防護(hù)和容錯(cuò)性機(jī)制等等。軟件生命周期環(huán)境對(duì)于失效條件而言是一個(gè)潛在的錯(cuò)誤源,軟件生命周期環(huán)境的組成可能被系統(tǒng)安全性分析過(guò)程所確定的安全性相關(guān)需求所影響,例如非相似的使用、冗余組件等等。
錯(cuò)誤防護(hù)措施的目標(biāo)是避免軟件開發(fā)過(guò)程中產(chǎn)生可能造成失效條件的錯(cuò)誤。基本的原則是選擇好需求開發(fā)和設(shè)計(jì)的方法、工具,以及編程語(yǔ)言,以限制引入錯(cuò)誤的機(jī)會(huì);并且選擇好驗(yàn)證方法以確保檢測(cè)到已經(jīng)引入的錯(cuò)誤。容錯(cuò)機(jī)制的目標(biāo)是將安全性特征包含在軟件設(shè)計(jì)或源代碼中,以確保軟件能夠正確地處理輸入數(shù)據(jù)錯(cuò)誤并且防止輸出,從而控制錯(cuò)誤。對(duì)錯(cuò)誤防護(hù)機(jī)制或容錯(cuò)機(jī)制的需求來(lái)源于系統(tǒng)需求和系統(tǒng)安全性分析過(guò)程。
上述考慮可能影響到:
a)軟件需求過(guò)程和軟件設(shè)計(jì)過(guò)程中所用的方法和表示法;
b)軟件編碼過(guò)程使用的編程語(yǔ)言和方法;
c)軟件開發(fā)環(huán)境工具;
d)軟件驗(yàn)證和軟件構(gòu)型管理工具;
e)是否需要做工具鑒定;
f)軟件組件重用的評(píng)估以及相關(guān)生命周期數(shù)據(jù)的可用性;
g)目標(biāo)環(huán)境中的虛擬軟件內(nèi)容。
4.1 語(yǔ)言和編譯器考慮
在成功完成軟件驗(yàn)證的同時(shí),還要考慮編譯器對(duì)該軟件的可接受性。為了確認(rèn)這一點(diǎn),軟件驗(yàn)證過(guò)程要考慮編程語(yǔ)言和編譯器的特殊特征。因此在計(jì)劃階段選擇編程語(yǔ)言和驗(yàn)證計(jì)劃時(shí),軟件計(jì)劃過(guò)程要考慮這些特征。活動(dòng)包括:
a)一些編譯器具有優(yōu)化目標(biāo)代碼性能的特征。如果測(cè)試用例給出的覆蓋范圍與軟件等級(jí)一致,那么不需要驗(yàn)證優(yōu)化的正確性,否則需要對(duì)這些特征做結(jié)構(gòu)覆蓋范圍分析;
b)為了實(shí)現(xiàn)某些特征,一些語(yǔ)言的編譯器可能產(chǎn)生不能直接追蹤到源代碼的目標(biāo)代碼,例如初始化、機(jī)內(nèi)錯(cuò)誤檢測(cè)或異常處理等。軟件計(jì)劃過(guò)程要提供檢測(cè)這個(gè)目標(biāo)代碼的方法,以保證驗(yàn)證的覆蓋范圍并在相關(guān)計(jì)劃中定義這些方法;
c)如果引入新的編譯器、鏈接編譯器或者加載程序版本,或者在軟件生命周期內(nèi)更改了編譯器的選項(xiàng),那么先前的測(cè)試用例和覆蓋范圍分析可能不再是有效的,因此需在驗(yàn)證計(jì)劃中提供相關(guān)重新驗(yàn)證的方法。
備注:盡管只要滿足所有驗(yàn)證目標(biāo),編譯器就可以被接受,但是這個(gè)“接受”只能適用于本產(chǎn)品而非其他產(chǎn)品。
4.2 機(jī)載軟件開發(fā)標(biāo)準(zhǔn)
軟件開發(fā)標(biāo)準(zhǔn)定義了軟件開發(fā)過(guò)程的規(guī)則和限制。軟件開發(fā)標(biāo)準(zhǔn)包括軟件需求標(biāo)準(zhǔn)、軟件設(shè)計(jì)標(biāo)準(zhǔn)和軟件編碼標(biāo)準(zhǔn)。軟件驗(yàn)證過(guò)程將這3個(gè)標(biāo)準(zhǔn)作為一個(gè)基礎(chǔ)來(lái)評(píng)估過(guò)程實(shí)際的輸出是否符合預(yù)期輸出。軟件開發(fā)標(biāo)準(zhǔn)的活動(dòng)包括:
d)軟件開發(fā)標(biāo)準(zhǔn)需要符合軟件開發(fā)內(nèi)容;
e)軟件開發(fā)標(biāo)準(zhǔn)應(yīng)使得軟件產(chǎn)品中的軟件組織或者相關(guān)產(chǎn)品能夠按照統(tǒng)一的方式進(jìn)行設(shè)計(jì)和實(shí)施;
f)軟件開發(fā)標(biāo)準(zhǔn)不能允許使用那些會(huì)導(dǎo)致輸出不能驗(yàn)證或者部分和想愛你管管安全性需求的架構(gòu)或方;。
g)軟件開發(fā)標(biāo)準(zhǔn)應(yīng)考慮魯棒性。
備注1:在制定標(biāo)準(zhǔn)時(shí),可參考先前項(xiàng)目的經(jīng)驗(yàn)。開發(fā)、設(shè)計(jì)和編碼方法上的約束與規(guī)則可用于控制復(fù)雜度,可考慮防御使編程實(shí)踐以加強(qiáng)魯棒性。
備注2:如果由系統(tǒng)需求分配給軟件,可以用檢測(cè)和控制存儲(chǔ)數(shù)據(jù)中的錯(cuò)誤、刷新及監(jiān)控硬件狀態(tài)和構(gòu)型的方法來(lái)緩減單粒子翻轉(zhuǎn)效應(yīng)。
5 機(jī)載軟件計(jì)劃階段的評(píng)審
軟件計(jì)劃過(guò)程的評(píng)審是為了確保軟件計(jì)劃和軟件開發(fā)標(biāo)準(zhǔn)符合本文的指導(dǎo)方案,并能夠提供執(zhí)行的方法。活動(dòng)包括:
h)選擇的方案要能夠滿足本文的目標(biāo);
i)軟件生命周期過(guò)程可以得要一致的應(yīng)用;
j)每個(gè)過(guò)程都應(yīng)產(chǎn)生一些能夠表明過(guò)程的輸出可以追溯到相關(guān)的活動(dòng)和輸入的證據(jù),用來(lái)表明活動(dòng)、環(huán)境和使用方法的獨(dú)立程度;
k)軟件開發(fā)過(guò)程的輸出應(yīng)與其保持一致。
參考文獻(xiàn):
[1]《Software Considerations in Airborne Systems and Equipment Certification》,RTCA SC-167 / EUROCAE WG-12;
[2]《Software Approval Guidelines》,U.S. department of transportation FAA,June 3,2003