佘紅英,徐凱健
(中國(guó)航發(fā)控制系統(tǒng)研究所,江蘇無(wú)錫214063)
發(fā)動(dòng)機(jī)控制軟件是航空發(fā)動(dòng)機(jī)控制系統(tǒng)中的核心關(guān)鍵部件,屬于機(jī)載安全關(guān)鍵軟件,其運(yùn)行結(jié)果直接影響人身和設(shè)施的安全,為此采取有效的方法來(lái)保證安全關(guān)鍵軟件的“零缺陷”泄漏,將得到越來(lái)越多的關(guān)注。根據(jù)美國(guó)防務(wù)系統(tǒng)統(tǒng)計(jì)數(shù)據(jù),進(jìn)入21世紀(jì)后,超過(guò)80%的系統(tǒng)功能由軟件參與實(shí)現(xiàn),隨著航空發(fā)動(dòng)機(jī)功能和性能要求的不斷提高,軟件的規(guī)模和復(fù)雜度越來(lái)越大,其安全性和可靠性問(wèn)題也愈加突出,研發(fā)進(jìn)度也更加難以保證。
在質(zhì)量和進(jìn)度都要保證的雙重要求之下,基于“高質(zhì)量的過(guò)程產(chǎn)生高質(zhì)量的產(chǎn)品”這一理念的“能力成熟度模型集成(CMMI)”和“民航機(jī)載軟件適航標(biāo)準(zhǔn)(DO-178)”應(yīng)運(yùn)而生,成為應(yīng)對(duì)問(wèn)題和挑戰(zhàn)的主要方法。在保證安全關(guān)鍵軟件的“零缺陷”泄漏方面,當(dāng)前國(guó)內(nèi)外研究方向主要包括基于測(cè)試缺陷預(yù)測(cè)模型的量化控制[1]、基于技術(shù)評(píng)審績(jī)效的量化控制[2]和基于故障模式和檢查準(zhǔn)則的量化控制[3]等,并取得了一定的成果。
本文主要結(jié)合航空發(fā)動(dòng)機(jī)控制軟件的特點(diǎn)和面臨的挑戰(zhàn),采用CMMI4級(jí)量化管理的方法,以安全關(guān)鍵軟件的零缺陷泄漏為目標(biāo),建立量化控制模型和過(guò)程性能指標(biāo),結(jié)合項(xiàng)目研制實(shí)際利用蒙特卡洛模擬來(lái)預(yù)測(cè)和控制質(zhì)量目標(biāo)的實(shí)現(xiàn)情況,逐步實(shí)現(xiàn)航空發(fā)動(dòng)機(jī)控制軟件的質(zhì)量量化控制。
發(fā)動(dòng)機(jī)控制軟件的主要特點(diǎn)是與上一級(jí)系統(tǒng)的特點(diǎn)緊密相關(guān),從軟件的角度來(lái)說(shuō),主要面臨的挑戰(zhàn)為:
(1)由于控制系統(tǒng)的各項(xiàng)功能需要在發(fā)動(dòng)機(jī)的試車(chē)、試飛過(guò)程中逐步明確,所以軟件的全生命周期過(guò)程中需求變更異常頻繁,而這種變更所帶來(lái)的質(zhì)量控制和進(jìn)度的要求挑戰(zhàn)巨大;
(2)正因?yàn)樽兏l繁,對(duì)于軟件版本控制的要求苛刻,技術(shù)狀態(tài)的并發(fā)和收斂的管理和控制需要異常嚴(yán)格的措施,尤其在基于需求的符合性追溯證明方面,需要極其嚴(yán)密的證據(jù)確保質(zhì)量的全過(guò)程可追溯;
(3)隨著發(fā)動(dòng)機(jī)試車(chē)、試飛以及列裝部隊(duì)后的實(shí)戰(zhàn)化、常態(tài)化演練的需要,軟件的任何質(zhì)量問(wèn)題均可能導(dǎo)致嚴(yán)重后果,零缺陷泄漏已經(jīng)成為當(dāng)前的迫切需要和挑戰(zhàn)。
基于以上特點(diǎn),結(jié)合CMMI模型高級(jí)別(4級(jí))成熟度能力要求中的軟件質(zhì)量量化控制和管理的要求,以零缺陷泄漏為目標(biāo),將研制過(guò)程細(xì)分成標(biāo)準(zhǔn)子過(guò)程并定義,建立質(zhì)量預(yù)測(cè)模型和過(guò)程性能指標(biāo),推進(jìn)過(guò)程量化管理的落實(shí)、調(diào)整和監(jiān)測(cè),以保證最終實(shí)現(xiàn)軟件產(chǎn)品的零缺陷泄漏目標(biāo)。
當(dāng)發(fā)動(dòng)機(jī)控制軟件發(fā)生缺陷泄漏時(shí),會(huì)通過(guò)相應(yīng)的事件序列層層傳遞到航空器層級(jí),從而引起航空器的災(zāi)難性后果[4]。由于軟件產(chǎn)品的復(fù)雜性,軟件缺陷不可能像硬件失效那樣可以事前去分解、量化和預(yù)測(cè),軟件缺陷泄漏引起的失效事件也不可能是1種按事件順序簡(jiǎn)化的線性關(guān)系,而是異常復(fù)雜的交錯(cuò)關(guān)系,因?yàn)榻^大多數(shù)軟件缺陷會(huì)通過(guò)軟件模塊之間的數(shù)據(jù)流傳遞和功能耦合進(jìn)行快速傳遞和相互影響,從而嚴(yán)重破壞系統(tǒng)的包容性,引起系統(tǒng)層面功能失效。
基于對(duì)軟件缺陷泄漏的后果分析和軟件本質(zhì)特點(diǎn)的認(rèn)識(shí),采用量化質(zhì)量管理的方法,構(gòu)建零缺陷泄漏的量化控制模型和過(guò)程性能指標(biāo),當(dāng)前常用的質(zhì)量量化管理方法主要有:
(1)GJB 9001C質(zhì)量管理體系要求;
(2)六西格瑪質(zhì)量管理;
(3)CMMI能力成熟度模型集成。
雖然以上3種方法都有量化管理的要求,但方法之間有較大的差異性。GJB 9001C基于規(guī)范化和符合性,強(qiáng)調(diào)以過(guò)程方法和基于風(fēng)險(xiǎn)的管理思維開(kāi)展過(guò)程管理,包括過(guò)程的策劃、實(shí)施、檢查和改進(jìn),其量化管理的要求圍繞過(guò)程目標(biāo)的建立與實(shí)施展開(kāi),側(cè)重于管理和控制,是量化質(zhì)量管理的基礎(chǔ);六西格瑪管理利用數(shù)據(jù)和事實(shí)來(lái)驅(qū)動(dòng)質(zhì)量水平的提高,重點(diǎn)關(guān)注的是變異、波動(dòng)和效率提升,對(duì)生產(chǎn)過(guò)程的穩(wěn)定性要求極高,在制造生產(chǎn)領(lǐng)域廣泛采用;而CMMI 4級(jí)能力涉及的質(zhì)量量化管理的核心是定量測(cè)量和基于目標(biāo)的量化管理,通過(guò)建立過(guò)程的性能基線和性能模型來(lái)實(shí)施量化管理[5-7],更加注重軟件行業(yè)的特點(diǎn),基于目標(biāo)牽引,模型驅(qū)動(dòng)的方式進(jìn)行質(zhì)量的預(yù)測(cè)、干預(yù)和控制。
當(dāng)前針對(duì)發(fā)動(dòng)機(jī)控制軟件的質(zhì)量量化管理方法,主要依據(jù)CMMI4級(jí)量化管理的要求進(jìn)行構(gòu)建。在構(gòu)建過(guò)程中,首先確定零缺陷泄漏的目標(biāo)影響因子,DO-178C標(biāo)準(zhǔn)給出了實(shí)現(xiàn)軟件高安全性的可行方法,即基于“高質(zhì)量的過(guò)程產(chǎn)生高質(zhì)量的產(chǎn)品”的理念,將研制過(guò)程分解為5個(gè)工程過(guò)程和4個(gè)管理過(guò)程,共定義了71項(xiàng)質(zhì)量符合性目標(biāo),目標(biāo)的滿足可以保證系統(tǒng)安全性達(dá)到10-9。基于此,結(jié)合發(fā)動(dòng)機(jī)控制軟件的研發(fā)特點(diǎn),對(duì)控制軟件的研制過(guò)程重構(gòu)和細(xì)分,建立了8個(gè)標(biāo)準(zhǔn)子過(guò)程,同時(shí)依據(jù)DO-178C的71個(gè)符合性目標(biāo),針對(duì)每個(gè)子過(guò)程識(shí)別影響最終產(chǎn)品缺陷泄漏的過(guò)程質(zhì)量要素,具體如圖1所示。
圖1 研發(fā)過(guò)程對(duì)缺陷泄漏的影響
最終產(chǎn)品的缺陷泄漏概率為各過(guò)程質(zhì)量要素的綜合影響結(jié)果,即為
各過(guò)程的質(zhì)量要素{Xn}之間存在一定的關(guān)聯(lián)性,可以通過(guò)對(duì)前序過(guò)程質(zhì)量要素的評(píng)價(jià),發(fā)現(xiàn)某些{Xn}的偏離后,通過(guò){Xn}和{Xn+1}之間的關(guān)聯(lián)性,提前對(duì)后續(xù)的{Xn+1}進(jìn)行關(guān)注,采取補(bǔ)救措施,從而降低缺陷泄漏風(fēng)險(xiǎn)。由此{(lán)Xn}和{Xn+1}之間的關(guān)聯(lián)性建立尤為重要,在此提出1種基于缺陷分類(lèi)的關(guān)聯(lián)性構(gòu)建方法。
采用正交缺陷分類(lèi)方法[8-10]定義如下缺陷泄漏的類(lèi)型:
(1)需求理解錯(cuò)誤;
(2)派生需求錯(cuò)誤;
(3)數(shù)據(jù)檢查缺失;
(4)初始化錯(cuò)誤;
(5)數(shù)據(jù)流錯(cuò)誤;
(6)庫(kù)函數(shù)使用錯(cuò)誤;
(7)庫(kù)函數(shù)錯(cuò)誤;
(8)關(guān)聯(lián)性更改錯(cuò)誤。
將每一過(guò)程的質(zhì)量要素和缺陷類(lèi)型進(jìn)行關(guān)聯(lián),默認(rèn)所有關(guān)聯(lián)的質(zhì)量要素均被滿足時(shí),該類(lèi)缺陷泄漏的概率為零;如果前序過(guò)程的質(zhì)量要素未滿足,通過(guò)后續(xù)與之關(guān)聯(lián)的其他過(guò)程質(zhì)量要素進(jìn)行補(bǔ)充完善的,則該類(lèi)缺陷泄漏概率有一定的提升;完全不滿足并且也沒(méi)有在后續(xù)采取任何補(bǔ)救措施的,則出現(xiàn)該類(lèi)缺陷泄漏概率為100%。依據(jù)以上原則,通過(guò)歷史數(shù)據(jù)的積累,構(gòu)建過(guò)程質(zhì)量關(guān)聯(lián)預(yù)測(cè)模型,變更過(guò)程的模型應(yīng)用原理如圖2所示。
圖2 變更過(guò)程質(zhì)量關(guān)聯(lián)預(yù)防模型應(yīng)用原理
為了更加直觀地體現(xiàn)過(guò)程能力,及時(shí)掌握質(zhì)量偏離情況,及時(shí)采取相應(yīng)的糾正措施,需要在各過(guò)程片段上進(jìn)行質(zhì)量“指示器”的設(shè)置。使用缺陷的檢出數(shù)作為質(zhì)量指示器是業(yè)界的通常做法,而其背后的假設(shè)條件是:過(guò)程穩(wěn)定,團(tuán)隊(duì)相對(duì)穩(wěn)定,在一段時(shí)間內(nèi),缺陷的注入可能性是一定的,只要多檢出缺陷,那么遺留到后續(xù)過(guò)程的缺陷就會(huì)減少,每個(gè)過(guò)程如果都能100%的檢出本過(guò)程注入的缺陷,那么最后的缺陷泄漏也必然為零。相關(guān)的原理說(shuō)明如圖3所示。
圖3 缺陷的注入/檢出和過(guò)程能力的關(guān)系
由此,對(duì)研制過(guò)程中的所有檢出活動(dòng)發(fā)現(xiàn)的缺陷進(jìn)行采集和分析,從檢出和注入2個(gè)維度進(jìn)行缺陷的分類(lèi),建立了3個(gè)過(guò)程性能指標(biāo):
(1)PCE:Phase Containment Effectiveness,度量本過(guò)程驗(yàn)證類(lèi)活動(dòng)檢出本過(guò)程注入缺陷的能力,PCE應(yīng)用于所有軟件開(kāi)發(fā)的標(biāo)準(zhǔn)過(guò)程中。軟件開(kāi)發(fā)過(guò)程PCE越高,開(kāi)發(fā)能力越強(qiáng),軟件開(kāi)發(fā)過(guò)程的PCE為100%,即可實(shí)現(xiàn)軟件開(kāi)發(fā)過(guò)程“一次做對(duì)”,無(wú)任何缺陷被注入到軟件產(chǎn)品中,即表示軟件即使不測(cè)試,也已經(jīng)實(shí)現(xiàn)零缺陷。計(jì)算公式為
(2)DCE:Defect Containment Effectiveness,度量本過(guò)程檢出前序過(guò)程泄漏缺陷的能力,DCE應(yīng)用于軟件測(cè)試的標(biāo)準(zhǔn)過(guò)程中。軟件測(cè)試過(guò)程DCE越高,測(cè)試能力越強(qiáng),軟件測(cè)試過(guò)程的DCE為100%,即表示軟件測(cè)試可以檢出前序所有過(guò)程的缺陷,通過(guò)軟件測(cè)試的產(chǎn)品即為零缺陷的軟件產(chǎn)品。計(jì)算公式為
(3)TCE:Total Containment Effectiveness,度量交付前整個(gè)研制過(guò)程檢出缺陷的能力,TCE用于評(píng)價(jià)軟件研制過(guò)程的整體能力。TCE越高,軟件研制過(guò)程抑制缺陷泄漏的能力越強(qiáng),TCE為100%,即表示所有缺陷都能被研制過(guò)程檢出,缺陷泄漏為零。計(jì)算公式為
基于PCE、DCE和TCE的算法定義,可以將缺陷按照過(guò)程分布進(jìn)行統(tǒng)計(jì)和分析,在數(shù)據(jù)積累到一定程度后,通過(guò)正態(tài)檢驗(yàn)的缺陷過(guò)程分布數(shù)據(jù)可使用蒙特卡洛模擬的方法進(jìn)行缺陷泄漏預(yù)測(cè)建模[11-15],從而得到各過(guò)程的缺陷檢出期望數(shù),并通過(guò)實(shí)際檢出數(shù)和期望檢出數(shù)之間的偏離分析,調(diào)整后續(xù)期望的過(guò)程性能指標(biāo)和過(guò)程質(zhì)量要素,從而達(dá)到期望的缺陷泄漏為零的目標(biāo)。在項(xiàng)目研制初期,依據(jù)產(chǎn)品的估計(jì)規(guī)模(一般為軟件代碼行),使用蒙特卡洛模擬分析預(yù)測(cè)項(xiàng)目整個(gè)研制過(guò)程中的總?cè)毕輸?shù)和最終目標(biāo)實(shí)現(xiàn)的概率。其基本原理是:利用歷史數(shù)據(jù)的積累,將每個(gè)項(xiàng)目的總?cè)毕輸?shù)進(jìn)行分析,將符合正態(tài)分布的數(shù)據(jù)進(jìn)行計(jì)算得到均值和標(biāo)準(zhǔn)差,由于受到樣本點(diǎn)大小的影響,使用蒙特卡洛模擬的方式隨機(jī)產(chǎn)生10000個(gè)符合歷史數(shù)據(jù)均值和標(biāo)準(zhǔn)差的隨機(jī)點(diǎn),如圖4所示,再依據(jù)具體項(xiàng)目的預(yù)測(cè)缺陷總數(shù),通過(guò)蒙特卡洛模擬計(jì)算得到項(xiàng)目能夠?qū)崿F(xiàn)其預(yù)測(cè)目標(biāo)的概率,一般要求確定性概率達(dá)到80%以上。
圖4 蒙特卡洛模型預(yù)測(cè)研制過(guò)程總?cè)毕輸?shù)
基于總?cè)毕輸?shù)符合正態(tài)分布的前提,進(jìn)一步對(duì)各過(guò)程的注入缺陷數(shù)進(jìn)行正態(tài)性檢驗(yàn),同樣使用蒙特卡洛模擬的方式,對(duì)每個(gè)注入缺陷的過(guò)程,自動(dòng)生成10000個(gè)符合正態(tài)分布數(shù)據(jù)均值和標(biāo)準(zhǔn)差的隨機(jī)點(diǎn),據(jù)此將缺陷總數(shù)分配到各過(guò)程,得到每個(gè)過(guò)程的注入缺陷數(shù)?;诟鬟^(guò)程注入的缺陷均能在過(guò)程中被檢出這一假設(shè),設(shè)置各過(guò)程的“計(jì)劃發(fā)現(xiàn)缺陷數(shù)”,如圖5所示。在項(xiàng)目研制過(guò)程中,將實(shí)際發(fā)現(xiàn)的缺陷數(shù)填入“當(dāng)前發(fā)現(xiàn)的缺陷能力”,通過(guò)蒙特卡洛模擬的10000個(gè)隨機(jī)數(shù),可以自動(dòng)得到計(jì)劃和實(shí)際之間的偏離,并模擬得到后續(xù)期望的總?cè)毕荼煌耆珯z出的概率(將具體的缺陷檢出數(shù)的數(shù)值對(duì)應(yīng)的直方圖面積除以總的直方圖面積即為概率)。圖5中給出的示例是在分配完各過(guò)程的檢出缺陷數(shù)后,最終實(shí)現(xiàn)零缺陷泄漏的軟件產(chǎn)品的概率達(dá)到94.28%(圖中的表格是由“水晶報(bào)表”工具自動(dòng)生成的,所以“組織能力”一行始終為0,其內(nèi)置了相關(guān)的蒙特卡洛隨機(jī)數(shù)自動(dòng)生成等模擬算法)?;谶@個(gè)概率值的高低,對(duì)各過(guò)程的檢出缺陷數(shù)的期望值進(jìn)行調(diào)整,通過(guò)設(shè)置過(guò)程目標(biāo),以實(shí)現(xiàn)項(xiàng)目的最終目標(biāo)。在實(shí)施過(guò)程中,逐步使用實(shí)際的缺陷檢出數(shù)代入模型進(jìn)行計(jì)算,以判斷最終的缺陷泄漏概率目標(biāo)值是否可達(dá),持續(xù)調(diào)整后續(xù)過(guò)程的質(zhì)量控制策略,以獲得最終缺陷泄漏為零的概率。
圖5 蒙特卡洛模型預(yù)測(cè)最終缺陷泄漏為零的概率
產(chǎn)品質(zhì)量和過(guò)程質(zhì)量密切相關(guān),只有良好的過(guò)程質(zhì)量才能保證最終產(chǎn)品質(zhì)量的符合性,對(duì)于安全關(guān)鍵軟件來(lái)說(shuō),追求零缺陷泄漏是必然的選擇。CMMI4級(jí)量化管理對(duì)基于頂層目標(biāo)的持續(xù)質(zhì)量改進(jìn)過(guò)程提出了明確要求,通過(guò)不斷將過(guò)程標(biāo)準(zhǔn)化、規(guī)范化,在過(guò)程測(cè)量項(xiàng)完整、采集規(guī)范、數(shù)據(jù)真實(shí)可信的條件下,逐步積累有效數(shù)據(jù),基于組織的質(zhì)量和過(guò)程性能目標(biāo),結(jié)合項(xiàng)目的特點(diǎn),運(yùn)用蒙特卡洛模擬來(lái)預(yù)測(cè)和監(jiān)控質(zhì)量目標(biāo)的可達(dá)性,確保及時(shí)采取糾偏措施,不斷用數(shù)據(jù)和證據(jù)來(lái)提升組織的軟件研發(fā)能力是可以實(shí)現(xiàn)的,也是安全關(guān)鍵軟件實(shí)現(xiàn)零缺陷泄漏目標(biāo)的必經(jīng)之路。