張望成,張 俊,羅海鷹,周平平
(航空工業(yè)洪都,江西 南昌,330024)
機(jī)載設(shè)備軟件一般是指在高實(shí)時(shí)性嵌入式平臺(tái)上運(yùn)行,用于實(shí)現(xiàn)信號(hào)處理、數(shù)據(jù)解算、數(shù)據(jù)融合、數(shù)據(jù)交換、時(shí)序控制、系統(tǒng)校準(zhǔn)、系統(tǒng)自檢等功能的軟件。這類軟件開(kāi)發(fā)具有以下一些共性特點(diǎn):軟件規(guī)模一般比地面設(shè)備軟件規(guī)模??;實(shí)時(shí)性和可靠性要求高;軟件需求不易一次到位;軟件項(xiàng)目研制時(shí)間周期緊。從表面上看,規(guī)模較小的軟件相對(duì)容易開(kāi)發(fā)成功,使人們往往忽視了機(jī)載設(shè)備軟件的開(kāi)發(fā)風(fēng)險(xiǎn)。其實(shí)機(jī)載設(shè)備軟件的共性特點(diǎn)恰恰透露出機(jī)載設(shè)備軟件開(kāi)發(fā)可能存在的巨大風(fēng)險(xiǎn)。例如多數(shù)機(jī)載設(shè)備軟件代碼在3萬(wàn)行以內(nèi),參與開(kāi)發(fā)和管理人員配置少,軟件開(kāi)發(fā)過(guò)程可能缺乏足夠的監(jiān)管和測(cè)量分析,造成了項(xiàng)目管理進(jìn)程缺乏統(tǒng)一性和技術(shù)可重復(fù)性;軟件開(kāi)發(fā)周期緊往往導(dǎo)致驗(yàn)證不充分,一些隱藏問(wèn)題無(wú)法暴露,造成軟件的可靠性降低;需求的不穩(wěn)定性,導(dǎo)致工作進(jìn)度拖延,計(jì)劃得不到保證,管理效率低下,從而影響整個(gè)軟件的研發(fā)工作。
如何應(yīng)對(duì)這些風(fēng)險(xiǎn)呢?根據(jù)現(xiàn)有掌握的資料看,與國(guó)外同類軟件開(kāi)發(fā)水平相比,我國(guó)的機(jī)載設(shè)備軟件產(chǎn)品開(kāi)發(fā)水平差距較大,因此急需要采用一套科學(xué)的工程化方法對(duì)機(jī)載設(shè)備軟件風(fēng)險(xiǎn)進(jìn)行分析和管理。近些年來(lái),軟件理論界和產(chǎn)業(yè)界開(kāi)始重視軟件的風(fēng)險(xiǎn)管理,并產(chǎn)生了一系列的風(fēng)險(xiǎn)管理過(guò)程模型,這些模型所定義的規(guī)范對(duì)管控軟件風(fēng)險(xiǎn)能夠發(fā)揮有效的指導(dǎo)作用。如Charette模型-該模型設(shè)計(jì)的風(fēng)險(xiǎn)分析和管理的體系分為兩大階段,分別為分析階段和管理階段,這是一個(gè)相互重疊和循環(huán)的模型;CRM持續(xù)風(fēng)險(xiǎn)管理模型-將風(fēng)險(xiǎn)管理劃分為五個(gè)步驟:風(fēng)險(xiǎn)識(shí)別、分析、計(jì)劃、跟蹤、控制。它強(qiáng)調(diào)的是對(duì)風(fēng)險(xiǎn)管理的各個(gè)組成部分的溝通;IEEE風(fēng)險(xiǎn)管理標(biāo)準(zhǔn)-定義了軟件開(kāi)發(fā)生命周期中的風(fēng)險(xiǎn)管理過(guò)程。包括以下活動(dòng):計(jì)劃并實(shí)施風(fēng)險(xiǎn)管理、管理項(xiàng)目風(fēng)險(xiǎn)列表、分析風(fēng)險(xiǎn)、監(jiān)控風(fēng)險(xiǎn)、處理風(fēng)險(xiǎn)、評(píng)估風(fēng)險(xiǎn)管理過(guò)程;CMMI(集成能力成熟度模型)的風(fēng)險(xiǎn)管理模型-其核心思想在融合上述風(fēng)險(xiǎn)管理模型的基礎(chǔ)上還提出了“風(fēng)險(xiǎn)管理數(shù)據(jù)庫(kù)”的概念。
《國(guó)家軍用軟件研制能力成熟度模型(GJB5000A)》規(guī)定了軟件研制和維護(hù)活動(dòng)中的主要管理過(guò)程和工程過(guò)程實(shí)踐,其“風(fēng)險(xiǎn)管理過(guò)程域”正是基于CMMI風(fēng)險(xiǎn)管理模型所建立的一個(gè)獨(dú)立的關(guān)鍵過(guò)程域,使“在過(guò)程中進(jìn)行風(fēng)險(xiǎn)管理”的原則得以真正體現(xiàn)[1]。風(fēng)險(xiǎn)管理過(guò)程域包括三個(gè)特定目標(biāo)(SG):進(jìn)行風(fēng)險(xiǎn)管理準(zhǔn)備、識(shí)別并分析風(fēng)險(xiǎn)、處理風(fēng)險(xiǎn),每個(gè)目標(biāo)的實(shí)現(xiàn)通過(guò)一系列的特定實(shí)踐來(lái)完成,詳細(xì)見(jiàn)表1[2]。
表1 CMMI 3級(jí)過(guò)程域:風(fēng)險(xiǎn)管理
通過(guò)圖1的GJB5000A風(fēng)險(xiǎn)管理過(guò)程域模型可以看出,基于CMMI的GJB5000A風(fēng)險(xiǎn)管理過(guò)程域模型對(duì)軟件風(fēng)險(xiǎn)管理過(guò)程作了定義,主要包括確定風(fēng)險(xiǎn)來(lái)源和類別、風(fēng)險(xiǎn)參數(shù)定義、制定并維護(hù)風(fēng)險(xiǎn)管理策略、風(fēng)險(xiǎn)識(shí)別及評(píng)估、風(fēng)險(xiǎn)跟蹤及控制和風(fēng)險(xiǎn)管理產(chǎn)品的提交等,目的是在風(fēng)險(xiǎn)產(chǎn)生危害之前識(shí)別出來(lái),從而有計(jì)劃地消除或削弱風(fēng)險(xiǎn)。在項(xiàng)目的生命周期內(nèi),循環(huán)地執(zhí)行風(fēng)險(xiǎn)識(shí)別分析、減緩跟蹤,直到項(xiàng)目的所有風(fēng)險(xiǎn)都被識(shí)別與解決為止[3]。
圖1 GJB5000A風(fēng)險(xiǎn)管理過(guò)程域模型
我們?cè)贕JB5000A實(shí)施過(guò)程中逐漸摸索和總結(jié)出一些適合機(jī)載設(shè)備軟件風(fēng)險(xiǎn)管理的方法。首先將風(fēng)險(xiǎn)管理看作是一個(gè)迭代的過(guò)程,風(fēng)險(xiǎn)管理貫穿于項(xiàng)目的全生命周期,項(xiàng)目組所有成員對(duì)風(fēng)險(xiǎn)管理都負(fù)有責(zé)任。其次做好項(xiàng)目風(fēng)險(xiǎn)的策劃,為了管理項(xiàng)目可能存在的風(fēng)險(xiǎn),在進(jìn)行項(xiàng)目策劃時(shí)需要根據(jù)歷史項(xiàng)目所積累的經(jīng)驗(yàn)和當(dāng)前項(xiàng)目的情況進(jìn)行風(fēng)險(xiǎn)識(shí)別和評(píng)估,并制訂風(fēng)險(xiǎn)管理計(jì)劃。風(fēng)險(xiǎn)管理計(jì)劃作為機(jī)載設(shè)備軟件開(kāi)發(fā)計(jì)劃的一部分進(jìn)行描述。然后依照風(fēng)險(xiǎn)策劃依次開(kāi)展風(fēng)險(xiǎn)識(shí)別、風(fēng)險(xiǎn)評(píng)估、制定風(fēng)險(xiǎn)緩解和應(yīng)急措施、跟蹤和管理風(fēng)險(xiǎn)等活動(dòng)。
軟件風(fēng)險(xiǎn)識(shí)別是對(duì)軟件研發(fā)的各個(gè)方面,特別是對(duì)關(guān)鍵技術(shù)攻關(guān)、項(xiàng)目管理、經(jīng)費(fèi)控制等方面進(jìn)行考察研究,從而確定可能影響項(xiàng)目得以實(shí)現(xiàn)的事件或情況[4]。對(duì)于機(jī)載設(shè)備軟件的風(fēng)險(xiǎn)識(shí)別主要是參照單位資產(chǎn)庫(kù)提供的風(fēng)險(xiǎn)信息,分析項(xiàng)目或單位內(nèi)部造成風(fēng)險(xiǎn)的基本因素,確定項(xiàng)目風(fēng)險(xiǎn)源和風(fēng)險(xiǎn)類別,特別要分析有無(wú)項(xiàng)目特有風(fēng)險(xiǎn)源,軟件項(xiàng)目負(fù)責(zé)人將識(shí)別出的風(fēng)險(xiǎn)記錄到項(xiàng)目風(fēng)險(xiǎn)列表中。我們根據(jù)機(jī)載設(shè)備軟件特點(diǎn)將風(fēng)險(xiǎn)源分為項(xiàng)目組內(nèi)、單位內(nèi)部和客戶3種,將風(fēng)險(xiǎn)類別分為需求風(fēng)險(xiǎn)、設(shè)計(jì)和實(shí)現(xiàn)風(fēng)險(xiǎn)、計(jì)劃編制相關(guān)風(fēng)險(xiǎn)、管理風(fēng)險(xiǎn)、人員風(fēng)險(xiǎn)、開(kāi)發(fā)環(huán)境風(fēng)險(xiǎn)、客戶風(fēng)險(xiǎn)、過(guò)程風(fēng)險(xiǎn)、產(chǎn)品風(fēng)險(xiǎn)9類。
風(fēng)險(xiǎn)評(píng)價(jià)是指用具體的方法評(píng)價(jià)具體的風(fēng)險(xiǎn),能否有效降低不確定性是指導(dǎo)這一過(guò)程的主要標(biāo)準(zhǔn)。根據(jù)風(fēng)險(xiǎn)理論基本定義,風(fēng)險(xiǎn)不是一個(gè)數(shù)字,也不是一條曲線或向量,而是一個(gè)三元組的完備集,即Risk={
在機(jī)載設(shè)備軟件風(fēng)險(xiǎn)評(píng)估時(shí),我們根據(jù)發(fā)生概率、風(fēng)險(xiǎn)影響、風(fēng)險(xiǎn)緊迫度,對(duì)每一風(fēng)險(xiǎn)做出評(píng)估,而項(xiàng)目組內(nèi)的風(fēng)險(xiǎn)可以根據(jù)經(jīng)驗(yàn)和相似項(xiàng)目或項(xiàng)目單元參照獲得不確定性的概率和影響程度。同時(shí)分析各階段風(fēng)險(xiǎn)的特點(diǎn),建立其風(fēng)險(xiǎn)評(píng)價(jià)指標(biāo)體系并識(shí)別出適用的評(píng)價(jià)方法,包括非正式的推測(cè)、數(shù)理模型和實(shí)踐經(jīng)驗(yàn)。
2.2.1 風(fēng)險(xiǎn)發(fā)生概率
風(fēng)險(xiǎn)發(fā)生概率使用極高、高、中、低、極低五級(jí)進(jìn)行評(píng)估,可以參考概率估計(jì)表(見(jiàn)表2)估算風(fēng)險(xiǎn)發(fā)生的可能性,其中最后一列得分用于計(jì)算風(fēng)險(xiǎn)值。
表2 風(fēng)險(xiǎn)發(fā)生概率對(duì)應(yīng)分值
2.2.2 風(fēng)險(xiǎn)影響
風(fēng)險(xiǎn)發(fā)生的影響可以從成本、進(jìn)度、用戶滿意度幾個(gè)方面來(lái)考慮,在有度量數(shù)據(jù)支持決策的情況下,可以用量化的費(fèi)用和時(shí)間等指標(biāo)來(lái)描述。在通常情況下,可以使用極高、高、中、低、極低五級(jí)進(jìn)行綜合評(píng)估。用于評(píng)價(jià)的評(píng)價(jià)表如表3,最后一列得分仍然用于計(jì)算風(fēng)險(xiǎn)值。
表3 風(fēng)險(xiǎn)影響對(duì)應(yīng)分值
2.2.3 風(fēng)險(xiǎn)緊迫度
風(fēng)險(xiǎn)緊迫度是將風(fēng)險(xiǎn)發(fā)生的緊迫度通過(guò)時(shí)間進(jìn)行量化,分為緊急、較急、一般、較緩慢四個(gè)級(jí)別進(jìn)行預(yù)測(cè),得出的最后一列分值仍然用于計(jì)算風(fēng)險(xiǎn)值。
表4 風(fēng)險(xiǎn)緊迫度對(duì)應(yīng)分值
對(duì)于已識(shí)別的風(fēng)險(xiǎn),軟件項(xiàng)目組根據(jù)風(fēng)險(xiǎn)評(píng)估結(jié)果,參照單位資產(chǎn)庫(kù)和《常見(jiàn)風(fēng)險(xiǎn)和措施表》制定風(fēng)險(xiǎn)緩解和應(yīng)急措施來(lái)避免、控制、轉(zhuǎn)移、監(jiān)督或接受風(fēng)險(xiǎn),將記錄納入到《項(xiàng)目風(fēng)險(xiǎn)列表》中。機(jī)載設(shè)備軟件風(fēng)險(xiǎn)緩解策略包括以下幾種:
1)風(fēng)險(xiǎn)規(guī)避:改變或降低要求,但仍然滿足用戶要求。
2)風(fēng)險(xiǎn)控制:采取積極步驟,轉(zhuǎn)移風(fēng)險(xiǎn)或接受風(fēng)險(xiǎn)。
3)風(fēng)險(xiǎn)轉(zhuǎn)移:重新分配需求,以緩解風(fēng)險(xiǎn),將風(fēng)險(xiǎn)轉(zhuǎn)移其他機(jī)構(gòu)、組織或人員。
4)風(fēng)險(xiǎn)接受:認(rèn)可風(fēng)險(xiǎn),但是不采取措施或當(dāng)風(fēng)險(xiǎn)出現(xiàn)時(shí)把它當(dāng)作問(wèn)題處理,不再花費(fèi)額外的資源來(lái)管理。
根據(jù)嵌入式機(jī)載設(shè)備軟件開(kāi)發(fā)特點(diǎn),我們采取的風(fēng)險(xiǎn)應(yīng)急措施方式已經(jīng)納入了組織資產(chǎn)庫(kù)。如對(duì)于需求變更導(dǎo)致開(kāi)發(fā)工作量增大無(wú)法預(yù)期交付軟件的風(fēng)險(xiǎn),可采取的應(yīng)急措施有增加人員、調(diào)整人員結(jié)構(gòu)、合理安排加班等;對(duì)于硬件資源無(wú)法按時(shí)到位的風(fēng)險(xiǎn),可采取的應(yīng)急措施有調(diào)整計(jì)劃,優(yōu)先安排與硬件資源無(wú)關(guān)的軟件開(kāi)發(fā)活動(dòng),采用其他類似硬件替代資源等。
根據(jù)帕累托80%原理,項(xiàng)目所有風(fēng)險(xiǎn)中只有小部分對(duì)項(xiàng)目威脅較大。由于每個(gè)項(xiàng)目的資源都是有限的,所以風(fēng)險(xiǎn)管理(處理、減緩、監(jiān)視和控制)必須把精力集中在最重要的風(fēng)險(xiǎn)子集上。使用以下方法確定需管理的風(fēng)險(xiǎn)項(xiàng):
1)所有風(fēng)險(xiǎn)均納入項(xiàng)目風(fēng)險(xiǎn)列表管理。風(fēng)險(xiǎn)根據(jù)風(fēng)險(xiǎn)的優(yōu)先級(jí)進(jìn)行排序,風(fēng)險(xiǎn)的優(yōu)先級(jí)是按照風(fēng)險(xiǎn)對(duì)項(xiàng)目的發(fā)生概率、影響程度和緊迫度來(lái)確定的,風(fēng)險(xiǎn)的值越大,則風(fēng)險(xiǎn)的優(yōu)先級(jí)越高。風(fēng)險(xiǎn)值=發(fā)生概率×風(fēng)險(xiǎn)影響×風(fēng)險(xiǎn)緊迫度;
2)風(fēng)險(xiǎn)值小于等于18且所有單項(xiàng)風(fēng)險(xiǎn)參數(shù)小于3為低風(fēng)險(xiǎn),大于18或者某個(gè)單項(xiàng)風(fēng)險(xiǎn)參數(shù)大于等于3且小于等于60為中風(fēng)險(xiǎn),大于60為高風(fēng)險(xiǎn);
3)對(duì)于高風(fēng)險(xiǎn),項(xiàng)目組執(zhí)行風(fēng)險(xiǎn)緩解策略并制定應(yīng)急計(jì)劃;對(duì)于中風(fēng)險(xiǎn),項(xiàng)目組啟動(dòng)緩解計(jì)劃,采取緩解措施;對(duì)于低風(fēng)險(xiǎn),風(fēng)險(xiǎn)監(jiān)控,制定風(fēng)險(xiǎn)緩解計(jì)劃。
在風(fēng)險(xiǎn)跟蹤時(shí),需確定和標(biāo)識(shí)風(fēng)險(xiǎn)的狀態(tài)。風(fēng)險(xiǎn)的狀態(tài)包括跟蹤、關(guān)閉,按照下面的方法確定和標(biāo)識(shí)風(fēng)險(xiǎn)的狀態(tài):
1)跟蹤狀態(tài)指風(fēng)險(xiǎn)處于項(xiàng)目組的監(jiān)控下并按照風(fēng)險(xiǎn)管理規(guī)程進(jìn)行處理;
2)關(guān)閉狀態(tài)指風(fēng)險(xiǎn)已經(jīng)解決不需要跟蹤或者不會(huì)再發(fā)生,對(duì)于這類風(fēng)險(xiǎn)應(yīng)該將發(fā)生概率、風(fēng)險(xiǎn)影響、風(fēng)險(xiǎn)緊迫度設(shè)置為0。
軟件風(fēng)險(xiǎn)管理正越來(lái)越廣泛地被應(yīng)用,因?yàn)樗蛔C明能夠在風(fēng)險(xiǎn)變?yōu)閱?wèn)題之前得到有效的識(shí)別和消除”[6]。隨著機(jī)載設(shè)備信息化和智能化程度不斷提升,機(jī)載設(shè)備軟件的規(guī)模和復(fù)雜度也越來(lái)越高,伴隨著各種不確定性因素的產(chǎn)生,軍用軟件項(xiàng)目的風(fēng)險(xiǎn)也不斷增大。按照GJB5000A標(biāo)準(zhǔn)要求,在軟件生命周期內(nèi)有效控制和管理風(fēng)險(xiǎn),遵循風(fēng)險(xiǎn)管理原則,根據(jù)風(fēng)險(xiǎn)狀態(tài),啟動(dòng)相應(yīng)的緩解或應(yīng)急措施,并確保措施成功實(shí)施,是提升軍用軟件質(zhì)量的有效途徑。