王 璐, 雷 玲
(中國(guó)兵器裝備集團(tuán)自動(dòng)化研究所, 四川 綿陽(yáng) 621000)
隨著國(guó)防現(xiàn)代化的發(fā)展, 在武器裝備中計(jì)算機(jī)的應(yīng)用已非常廣泛而深入, 軟件也隨之在武器裝備中大量應(yīng)用。 為此,總裝備部于2008 年頒布《GJB5000A 軍用軟件研制能力成熟度模型》標(biāo)準(zhǔn),用于規(guī)范軍用軟件研制單位的軟件研發(fā)過(guò)程, 提高軍用軟件的產(chǎn)品質(zhì)量和研制單位的軟件過(guò)程能力[2]。
本文以作者實(shí)際參與的項(xiàng)目為例, 簡(jiǎn)單介紹項(xiàng)目策劃、 配置管理以及過(guò)程和產(chǎn)品質(zhì)量保證在軍用嵌入式驅(qū)動(dòng)軟件中的應(yīng)用。
軟件項(xiàng)目策劃是開(kāi)展項(xiàng)目過(guò)程控制的前提, 根據(jù)作者所在單位體系文件要求, 項(xiàng)目策劃分為以下6 個(gè)基本步驟。
在發(fā)布開(kāi)發(fā)計(jì)劃之前,項(xiàng)目負(fù)責(zé)人應(yīng)組織開(kāi)展軟件項(xiàng)目的早期策劃工作,形成項(xiàng)目“策劃計(jì)劃”。主要活動(dòng)如下:
(1)項(xiàng)目負(fù)責(zé)人根據(jù)《軟件研制任務(wù)書》或《技術(shù)協(xié)議》等輸入文檔,明確項(xiàng)目研制周期;確定軟件項(xiàng)目的組織結(jié)構(gòu)和人員及分工。
(2)項(xiàng)目負(fù)責(zé)人分配策劃期間的工作任務(wù),根據(jù)項(xiàng)目研制周期,明確策劃期間的監(jiān)控周期以及監(jiān)控內(nèi)容、策劃期間的相關(guān)方參與要求、 數(shù)據(jù)管理要求以及人員培訓(xùn)需求等。
(3)項(xiàng)目CM 建立配置管理系統(tǒng),分配權(quán)限。
(4)開(kāi)展需求溝通理解、進(jìn)行軟件研制任務(wù)書評(píng)審等。
因本軟件為嵌入式驅(qū)動(dòng)軟件,無(wú)歷史項(xiàng)目可供參考,規(guī)模小,周期短,根據(jù)組織的《軟件開(kāi)發(fā)生命周期模型選擇指南》,明確新研瀑布型為本軟件的生命周期模型。 此外, 根據(jù)項(xiàng)目實(shí)際情況提出了將軟件概要設(shè)計(jì)與軟件詳細(xì)設(shè)計(jì)合并為軟件設(shè)計(jì)的申請(qǐng), 提出了裁剪單元集成測(cè)試的申請(qǐng)。 經(jīng)過(guò)裁剪后的軟件項(xiàng)目生命周期模型如圖1 所示。

圖1 瀑布型生命周期模型Fig.1 Life cycle model of waterfall
此步主要是進(jìn)行WBS分解,即估計(jì)軟件項(xiàng)目的范圍,作為軟件規(guī)模、工作量及關(guān)鍵資源估計(jì)的基礎(chǔ)。
根據(jù)嵌入式驅(qū)動(dòng)軟件的特點(diǎn),WBS 分解時(shí)主要采取基于產(chǎn)品的方法,自頂向下進(jìn)行分解。 此外,在分解時(shí),應(yīng)考慮到WBS 最底層次任務(wù)的細(xì)節(jié)或深度, 結(jié)構(gòu)太深會(huì)產(chǎn)生許多難于管理的小任務(wù),而結(jié)構(gòu)太淺又會(huì)使項(xiàng)目控制得不夠詳細(xì)。作者的一般做法是WBS 中的每個(gè)工作包不大于一個(gè)監(jiān)控周期, 在項(xiàng)目策劃階段可先做粗粒度拆分,對(duì)近期執(zhí)行的工作(當(dāng)前階段、或本月的任務(wù))需要細(xì)分到不大于一個(gè)監(jiān)控周期,后續(xù)階段的工作可在下一個(gè)階段或即將開(kāi)始時(shí)再細(xì)化任務(wù)。
由于嵌入式驅(qū)動(dòng)軟件與硬件結(jié)合相當(dāng)緊密, 調(diào)試受硬件影響較大,如信號(hào)輸入出錯(cuò),調(diào)試線纜連接出錯(cuò),硬件設(shè)計(jì)缺陷等都會(huì)影響驅(qū)動(dòng)軟件的調(diào)試進(jìn)度。因此,軟件規(guī)模和工作量估計(jì)的有效性至關(guān)重要, 過(guò)多或過(guò)少估計(jì)規(guī)模與工作量,都會(huì)造成計(jì)劃安排不合理,實(shí)際值與估計(jì)值存在較大偏差。
在估計(jì)時(shí),一般需要注意以下幾點(diǎn):
(1)估計(jì)軟件規(guī)模時(shí)應(yīng)包含代碼規(guī)模與難度系數(shù)。
(2)選擇同領(lǐng)域的有類似開(kāi)發(fā)經(jīng)驗(yàn)與管理經(jīng)驗(yàn)的同行為估計(jì)專家。
(3)估計(jì)假設(shè)盡可能的詳盡,如:軟件運(yùn)行環(huán)境、功能、性能、復(fù)雜度、可靠性要求、開(kāi)發(fā)語(yǔ)言、編譯環(huán)境、是否可重用等。
作者單位編制進(jìn)度表在軟工平臺(tái)上進(jìn)行。 一般步驟參考如下:
(1)依據(jù)《軟件研制任務(wù)書》中規(guī)定的里程碑節(jié)點(diǎn)以及生命周期模型劃分階段、標(biāo)識(shí)里程碑。
(2)根據(jù)WBS 分解結(jié)果,細(xì)化各階段任務(wù),確定各任務(wù)之間的依賴關(guān)系并標(biāo)識(shí)出關(guān)鍵路徑; 確保階段工作總量與估計(jì)值的偏差在閾值范圍內(nèi)。
(3)標(biāo)識(shí)各任務(wù)屬性(技術(shù)工作或管理工作)、工作量、起始時(shí)間、完成時(shí)間以及責(zé)任人。
(4)根據(jù)以上步驟結(jié)果編排整個(gè)項(xiàng)目的實(shí)施進(jìn)度,形成進(jìn)度表,并通過(guò)甘特圖體現(xiàn)[3]。
作者實(shí)際項(xiàng)目的甘特圖如圖2 所示。

圖2 項(xiàng)目甘特圖Fig.2 Gantt chart of Sample Project
按照GJB438B、GJB2786A 以及組織文檔模板編制軟件開(kāi)發(fā)計(jì)劃以及各項(xiàng)子計(jì)劃。 其中子計(jì)劃應(yīng)包含評(píng)審計(jì)劃、軟硬件資源計(jì)劃、需求管理計(jì)劃、利益相關(guān)方參與計(jì)劃、培訓(xùn)計(jì)劃、測(cè)量分析計(jì)劃、風(fēng)險(xiǎn)計(jì)劃、數(shù)據(jù)管理計(jì)劃、人力資源計(jì)劃等。 并將所有計(jì)劃在軟工平臺(tái)上發(fā)布。
配置管理的目的是利用配置標(biāo)識(shí)、配置控制、配置狀態(tài)紀(jì)實(shí)和配置審核建立和維護(hù)工作產(chǎn)品的完整性。 配置管理的主要活動(dòng)主要分為以下5 類。
軟件的配置管理活動(dòng)需要按照項(xiàng)目的配置管理計(jì)劃來(lái)執(zhí)行,因此在策劃期間,項(xiàng)目CM 應(yīng)依據(jù)《軟件研制任務(wù)書》、“項(xiàng)目策劃計(jì)劃”、《軟件開(kāi)發(fā)計(jì)劃》 進(jìn)行配置管理策劃,制定配置管理計(jì)劃。 其中主要應(yīng)明確:配置管理的組織機(jī)構(gòu)、相關(guān)的配置項(xiàng)和控制力度、相關(guān)的基線、軟件配置管理的相關(guān)活動(dòng)、完成的工作產(chǎn)品和服務(wù),同時(shí)應(yīng)明確活動(dòng)的時(shí)間或頻度,并加以維護(hù)。此外,還應(yīng)明確:配置項(xiàng)的名稱、標(biāo)識(shí);明確本軟件需要建立的基線、基線標(biāo)識(shí)和基線版本規(guī)則等。
為了更好的對(duì)軟件配置項(xiàng)、 基線和權(quán)限的控制進(jìn)行統(tǒng)一、有效的管理,需要搭建配置管理系統(tǒng)。 配置管理系統(tǒng)就是對(duì)軟件配置項(xiàng)、基線和權(quán)限等進(jìn)行控制和管理。對(duì)這些要素的控制和管理就需要建立軟件配置庫(kù)。 這就需要軟件配置管理員根據(jù)配置計(jì)劃規(guī)定配置庫(kù)的結(jié)構(gòu)和人員職責(zé)。配置管理員根據(jù)計(jì)劃來(lái)維護(hù)配置庫(kù),對(duì)整個(gè)配置管理系統(tǒng)進(jìn)行管理[4]。
基線是一種通過(guò)正式評(píng)審和認(rèn)可的配置項(xiàng), 它可以作為進(jìn)一步開(kāi)發(fā)的基礎(chǔ), 并且只有通過(guò)正式的變更控制過(guò)程才能修改它。 基線建立與發(fā)布的目的是確保組成基線的配置項(xiàng)及時(shí)受控。一般來(lái)說(shuō),基線建立與發(fā)布的流程如下:
(1)當(dāng)計(jì)劃基線建立時(shí)機(jī)到達(dá)后,項(xiàng)目CM 按照《配置管理計(jì)劃》中基線的標(biāo)識(shí)方法對(duì)基線進(jìn)行標(biāo)識(shí),明確基線版本等信息后,提出基線建立申請(qǐng)。
(2)所級(jí)CCB 對(duì)基線的建立申請(qǐng)進(jìn)行審批。
(3)申請(qǐng)通過(guò)后,項(xiàng)目CM 發(fā)布基線,并及時(shí)通知相關(guān)方。
配置審核的目的是確認(rèn)工作產(chǎn)品和配置管理活動(dòng)的一致性、完整性和符合性,并記錄審核結(jié)果。 配置審核包括功能配置審核、物理配置審核和配置管理審核。這3 類審核對(duì)應(yīng)的審核時(shí)機(jī)以及角色如表1 所示。

表1 配置審核一覽表Tab.1 Configuration audit
在實(shí)際項(xiàng)目研發(fā)過(guò)程中,變更是不可避免的。當(dāng)已通過(guò)評(píng)審入受控庫(kù)的配置項(xiàng)發(fā)生變更時(shí), 需跟蹤和控制配置項(xiàng)的變更,對(duì)變更過(guò)程實(shí)施有效控制,防止隨意修改造成的失控和混亂,導(dǎo)致軟件工作的損失。變更的大致步驟如下:
(1)項(xiàng)目負(fù)責(zé)人提出變更申請(qǐng),說(shuō)明變更原因、更改方案、影響域分析并明確需變更的配置項(xiàng)。
(2)變更申請(qǐng)經(jīng)部門CCB 審核后,由所級(jí)CCB 審批。
(3)變更申請(qǐng)審批通過(guò)后通知利益相關(guān)方。
(4)變更執(zhí)行人按照要求進(jìn)行變更,變更完成后,通知變更驗(yàn)證人進(jìn)行驗(yàn)證。
(5) 變更驗(yàn)證人根據(jù)驗(yàn)證方案對(duì)變更后的配置項(xiàng)進(jìn)行驗(yàn)證。
(6)變更后的配置項(xiàng)重新申請(qǐng)入受控庫(kù)并更新版本號(hào)。變更流程如圖3 所示。

圖3 變更流程圖Fig3. The change control processes
過(guò)程和產(chǎn)品質(zhì)量保證的目的是使員工和管理者對(duì)過(guò)程和相關(guān)的工作產(chǎn)品能有客觀深入的了解。 過(guò)程和產(chǎn)品質(zhì)量保證主要有以下3 類。
《質(zhì)量保證計(jì)劃》是開(kāi)展軟件質(zhì)量保證活動(dòng)的依據(jù), 因此在策劃期間, 項(xiàng)目QA 應(yīng)依據(jù)《軟件研制任務(wù)書》、“項(xiàng)目策劃計(jì)劃”、《軟件開(kāi)發(fā)計(jì)劃》進(jìn)行質(zhì)量保證工作的策劃,制定《質(zhì)量保證計(jì)劃》,確保其與《軟件開(kāi)發(fā)計(jì)劃》一致。 該計(jì)劃主要應(yīng)明確:需評(píng)價(jià)的過(guò)程或工作產(chǎn)品、評(píng)價(jià)的時(shí)機(jī)和頻度、評(píng)價(jià)的方法、評(píng)價(jià)依據(jù)的標(biāo)準(zhǔn)和規(guī)程、采用的檢查單、有關(guān)責(zé)任人、審核時(shí)機(jī)、審核方式、溝通和匯報(bào)方式及時(shí)機(jī)。
過(guò)程和產(chǎn)品審核的目的是通過(guò)軟件項(xiàng)目研制過(guò)程中的QA 審核活動(dòng), 有效及時(shí)地發(fā)現(xiàn)過(guò)程及工作產(chǎn)品中存在的問(wèn)題,并及時(shí)采取糾正措施,保證項(xiàng)目過(guò)程質(zhì)量和產(chǎn)品質(zhì)量。 主要活動(dòng)包含以下幾點(diǎn):
(1)選擇合適的檢查單。
(2)實(shí)施審核。過(guò)程審核的通常安排在過(guò)程活動(dòng)執(zhí)行時(shí),工作產(chǎn)品的審核通常安排在工作產(chǎn)品評(píng)審前。
(3)標(biāo)識(shí)不符合項(xiàng),記錄審核結(jié)果。 標(biāo)識(shí)的不符合項(xiàng)需說(shuō)明判斷依據(jù),同時(shí)將不符合項(xiàng)相關(guān)信息列入“不符合項(xiàng)跟蹤表”。
項(xiàng)目QA 應(yīng)與項(xiàng)目組交流、 分析過(guò)程和產(chǎn)品審核中發(fā)現(xiàn)的不符合項(xiàng),并跟蹤每個(gè)不符合項(xiàng)直至關(guān)閉。若項(xiàng)目組內(nèi)無(wú)法解決的不符合項(xiàng), 項(xiàng)目QA 應(yīng)及時(shí)逐級(jí)上報(bào)中高層領(lǐng)導(dǎo),以保證不符合項(xiàng)得以解決。
根據(jù)作者經(jīng)驗(yàn),QA 是保證軟件質(zhì)量的關(guān)卡,QA 對(duì)提升軟件質(zhì)量起到非常大的幫助。 而一名優(yōu)秀的QA,一定要具備以下幾點(diǎn)能力:
(1)技術(shù)能力。技術(shù)水平越高的QA,越容易發(fā)現(xiàn)產(chǎn)品存在的問(wèn)題。
(2)策劃能力。 QA 的工作非常繁重,既要審核產(chǎn)品,又要審核過(guò)程,從項(xiàng)目立項(xiàng)開(kāi)始便參與其中。 若同時(shí)參與幾個(gè)項(xiàng)目,那么更是分身乏術(shù)。 如何避免主次不分,把時(shí)間和精力沒(méi)有投入到重要的任務(wù)中,值得每個(gè)QA 學(xué)習(xí)[5]。
(3)職業(yè)操守。QA 工作獨(dú)立于項(xiàng)目組,主要是發(fā)現(xiàn)項(xiàng)目研發(fā)中的各類問(wèn)題。 在開(kāi)展評(píng)價(jià)活動(dòng)時(shí)保持客觀性和有效性,而非流于形式,是QA 的基本職業(yè)操守。
研究及實(shí)踐表明,軟件過(guò)程需要不斷改善,軟件過(guò)程能力需要不斷提高[6]。 貫標(biāo)真實(shí)開(kāi)展、將軟件研制過(guò)程與標(biāo)準(zhǔn)結(jié)合起來(lái)、不斷摸索GJB5000A 二級(jí)的最佳實(shí)踐、積累組織資產(chǎn)庫(kù)、為后續(xù)項(xiàng)目提供經(jīng)驗(yàn),是各軍用軟件承制單位提高軟件生產(chǎn)率和軟件質(zhì)量、降低開(kāi)發(fā)成本、縮短開(kāi)發(fā)周期的有效途徑。