魏鉅熔
(江西聯創精密機電有限公司 江西省南昌市 330096)
軟件是信息化裝備的重要組成部分,信息化裝備對軟件的功能和性能等要求正在逐步增加,對裝備軟件化的程度要求也在不斷提升,軟件的規模和復雜度日漸提高,軟件的重要性日益凸顯,軟件質量嚴重影響信息化裝備的質量。因此加強軟件質量管理已經迫在眉睫,而軟件研制過程質量控制作為軟件質量管理的重要階段,加強軟件研制過程的質量控制的重要性尤為突出。
當前,基于GJB5000A-2008《軍用軟件研制能力成熟度模型》標準的軍用軟件研制能力評價工作,正在各類軍工單位中如火如荼地開展,已有不少單位通過了二級或三級評價,也有部分單位正在試點四級的管理。不論是二級評價還是三級評價,在試點實施過程中,或多或少有一些共性的或容易被忽視的方面,將會對缺乏實施經驗的軟件過程改進組織帶來困惑甚至產生問題。
GJB5000A 將組織軟件研制能力成熟度分為五個等級[1],其中1 級(或ML1)稱為初始級,2 級(或ML2)稱為已管理級,3 級(或ML3)稱為已定義級,4 級(或ML4)為已定量管理級,5 級(或ML5)稱為優化級,如圖1 所示。
GJB5000A 二級(已管理級)包括需求管理(ReqM)、項目策劃(PP)、項目監控(PMC)、配置管理(CM)、測量與分析(MA)、過程和產品質量保證(PPQA)、供方協議管理(SAM)共7 個過程域[1]。
(1)需求管理(ReqM):二級中唯一的工程類過程域,是針對工程活動、面向產品的要求。主要活動包括需求提供者和接收者一起對需求進行分析、討論,按照相應準則對需求含義達成共識;需求基線必須納入配置管理,并得到控制和維護;同時,建立需求和其他工作產品的雙向可追溯性,正向跟蹤確保需求沒有遺漏、反向跟蹤確保需求沒有多余,需求變更沒有遺漏,總結為“不多不少、變更不落”。
(2)項目策劃(PP):是在軟件項目啟動后,對項目進行科學合理的策劃,制定項目計劃,是軟件項目管理的一個重要過程。主要活動包括確定軟件生命周期模型、建立工作分解結構(WBS)、進行軟件項目估計、估計軟件項目工作量及估算項目資源等。同時,對可能存在的風險進行分析和識別,并按優先級排序。以此制定詳細的軟件項目計劃,作為項目監控的依據。
(3)項目監控(PMC):是在項目計劃制定后,按照項目計劃定期監督實際績效和進展。主要包括項目過程數據的日常收集、項目執行情況的定期監督、項目任務活動的再細化和調整,糾正措施的跟蹤管理以及風險跟蹤等活動。當實際績效和結果顯著偏離計劃時,需納入軟件問題跟蹤表,對軟件問題進行分析和處理,直至結束。

圖1:軍用軟件研制能力成熟度的五個等級
(4)配置管理(CM):是軟件技術狀態管理過程,主要活動包括建立配置庫結構及規定訪問權限;標識、建立配置項和基線,控制對配置項、基線的變更及維護維護基線完整性等。首先是建立配置庫包括開發庫、受控庫和產品庫,并按要求對“三庫”實行管理;其次是基線的建立、管理和維護過程,含標識配置項,在不同階段建立和發布基線并將基線納入受控庫中進行管理,建立配置管理記錄、執行配置審核、維護基線的完整性并對配置項和基線進行跟蹤和更改控制。
(5)測量與分析(MA):是對軟件項目管理和技術活動中產生的數據進行測量和分析,提供管理決策以支持管理和技術活動的改進。根據組織的方針,制定項目測量目標,明確測量項的采集時機、分析時機、報告時機和存儲規程等,明確如何對測量數據進行分析和報告。測量分析結果在相應節點與利益相關方進行交流。
(6)過程和產品質量保證活動(PPQA):貫穿整個軟件生命周期,客觀評價是質量保證活動的準則,其要求客觀地評價所實施的過程活動、工作產品對適用的過程要求、標準和規程的符合性。軟件質量師(QA)根據質量保證計劃對所實施的過程活動及形成的文檔、源代碼等工作產品進行審核并保存相關記錄。同時,質量保證組組長對QA 工作進行審核。
(7)供方協議管理(SAM):是約束、管理和控制供方產品及過程的活動。與GJB9000 標準的供方管理相類似,評價供方的能力,選擇供方,通過與供方建立協議,明確獲取產品的方式,執行供方協議,監督供方的過程,評價供方提供的產品并接收產品。
綜述:目的是確保軟件項目的過程得到策劃和執行,以此來監督、控制軟件項目研制進度,使軟件研制過程具體化、可視化、精細化,解決軟件開發的抽象性、不可控性等問題[2]。
3.1.1 領導“真重視”
軟件過程改進是一個系統工程,是跨部門的組織活動,有其特有的軟件工程要求和管理特點。首次建立軟件過程改進組織、試點實施軟件工程化體系,在組織體系上需要一個有力的領導來組織,并將一定的壓力向各個業務部門傳導才能夠保證有效落實。
在軟件過程改進實施過程中會占據大量人力、物力等資源,有時可能會出現與型號項目相沖突,不能完全保證人員和資源到位。在試點實施初期,由于實施人員對標準和體系的理解不透徹,許多工作達不到要求會返工重做,工作效率甚至會降低等一系列問題。如果高層領導不重視、認識不到位,則資源和監管等都得不到保證,這就使體系推進緩慢,甚至無法運行步履維艱;如果高層領導思想觀念不轉變、仍以GJB9000 質量管理體系要求推進工作,做的不夠細致、不夠充分,軟件過程改進工作也將屢屢碰壁。
3.1.2 一線有“明白人”
實施中需要有一定的軟件工程和項目經驗的人員作為EPG 成員,即一線要有“明白人”,否則,軟件工程體系文件將頻繁修改,項目實施經常性返工和重做。在試點實施初期,煩瑣的過程控制要求會降低軟件研發效率,體系的不確定性會引起項目組的抵觸情緒和行為,阻礙軟件過程改進實施。
如果組織內有“明白人”,過程實施工作將事半功倍,否則實施工作難度將加大、周期變長,且實施效果可能不盡人意。“明白人”的要求最好是具備以下全部或部分能力:一是熟悉軟件相關的國軍標(如GJB2786A、GJB438B、GJB5000A 等)、熟悉調整后的評價流程;二是具有一定的軟件工程化知識、最好是編寫過相關的軍用軟件文檔、熟悉行業內軟件研制程序及所用的開發模型;三是熟悉企業內部組織結構、深得領導和同事的信任;四是要有較高的情商、溝通表達能力較好,有一定的號召力;五是對軟件工程化有興趣,能堅持、有耐心、不怕繁瑣。
3.1.3 充分的資源保障
軟件過程改進涉及研發、質量、管理等多個部門,在人員安排和跨部門協調有時會存在一些困難,特別是中小軍工單位,在人手不夠、項目較多情況下會面臨項目疊加和人員工作沖突等矛盾。此時更需要公司領導和部門主管的鼎力支持,合理規劃,并提供人員、物力和財力等各類資源保障。特別是財力保障,因為績效激勵是有效的潤滑劑,可促使項目組成員在煩瑣的事務中持續地工作。
項目實施期間會產生大量的管理文件和記錄,同時需收集各類信息和數據,人工采集和編制會占用大量時間、耗費大量精力,而且數據會出錯甚至可能錯漏百出,建議選擇適宜的項目管理工具或輔助研發工具進行文件和記錄等證據的管理,這樣可以減輕實施人員的工作量,也可降低數據的錯誤,提升工作效率。
實施GJB5000A 二級過程中難免存在問題和疑惑,主要體現在對軍標理解不透徹、體系理解不到位、項目實施不徹底等三個方面。但通過共同努力實踐,所有問題均會得到有效解決。
3.2.1 軍標理解不透徹
GJB5000A 標準不好理解,很難讀懂。GJB5000A 來源于CMMI 并略有刪減,為了更好地理解軍標,可以從軟件工程化角度思考軟件研制過程。從某個角度來描述如何更好地將軟件開發和維護進行過程監控和研究,將軟件開發的抽象性、不可見與不可控等變得具體、可見與可控,使軟件過程得到清晰的定義、管理、測量、控制和有效。將軟件研制能力分級,每級含一定數量的過程域,每個過程域中具有一定的目標,以及為了達到這些目標必須要做到的行動步驟,即最佳實踐。為了更好地理解軍標,建議多看、多思考、多總結,參加新時代認證中心組織的學習班,在體系運行過程中再回頭看。同時,也可加強與同行專家的交流,多向專家請教、不恥下問。
3.2.2 體系理解不到位
體系文件是軟件過程改進的約束性文件,是項目實施的根本依據。體系文件依據國軍標編制,是結合本單位的項目特點和軟件管理情況的本地化文件,所以不能圖快圖省事,從其他單位或咨詢公司拿來就用。但可通過調研學習其它單位在實施GJB5000A 二級過程中積累的經驗和注意事項,找出本單位在軟件工程化方面的薄弱環節和差距,并提出改進建議,以此構建本單位的軟件工程體系。在構建體系文件時期,研發、質量、管理、測試等各類人員充分溝通多交流,確定初版后,找一兩個試點項目運行找出其中的問題,以確定基本可行的版本。
體系文件的理解不會一蹴而就,是一個循序漸進的過程。在此次期間可以針對性地增加體系文件的培訓、學習交流討論會等活動。另外也存在體系文件描述不夠清晰、詳盡,造成項目組對體系文件理解不夠透徹、不到位,而且相同問題會在不同項目組中反復發生。這就需要加強體系文件培訓,先系統層面后按過程域或按角色開展。
3.2.3 項目實施不徹底
項目實施不徹底的原因就來自上述兩類情況,特別會表現在之前接觸較少的方面,如測量與分析和配置管理過程域。測量與分析中測量項不準確、有遺漏,測量采集時機、分析方法不完整等。測量項是項目監控的數據來源,測量項若有遺漏如項目平均生產率、不符合項分布等,會失去測量和監控的意義,無法支撐和促進后續的改進。在選擇測量項時需結合組織特點,測量數據要有一定的意義,統計和促進哪個方面的改進和完善。
配置管理是控制軟件技術狀態的過程,若配置控制出現問題,則整個研制過程和軟件狀態會出現不可控情況,所以配置控制顯得尤為重要。在實施中出現過“三庫”職責和權限不清晰,出入受控庫和產品庫時機不明確等常見問題,在仔細研究相關國軍標或咨詢同行專家的情況下,結合GJB9000 質量體系中對軟件“三庫”及配置管理的要求進行融合,制定確實可行的配置管理程序。
GJB 5000A 二級實施過程中會遇到各種各樣的困難和問題,但通過反復實踐所有困難和問題終會迎刃而解,試點前的疑慮和困擾將云散月明、撥云見日。且在實施之初不能以過級為目的,而應該是實實在在地想提升軟件工程化水平為目標,那么在評價通過后也不會出現“兩張皮”的現象。本文就實踐過程中遇到的問題和過程情況進行了總結,概述了GJB5000A 二級各過程域主要活動內容、實施要點,常見問題與處理措施,希望對中小軍工企業在軟件過程改進實施過程中有一定的提示和參考作用,盡量少走彎路。