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