張圓圓 劉 琪
(中國電子科技集團(tuán)公司電子科學(xué)研究院 北京 100041)
軟件開發(fā)技術(shù)及工程管理技術(shù)的不斷提高,為涉密軟件研發(fā)機(jī)構(gòu)提供了良好的發(fā)展機(jī)遇,同時也提出了嚴(yán)峻的挑戰(zhàn)。一方面,涉密軟件產(chǎn)品事關(guān)國家安全,對產(chǎn)品的性能和質(zhì)量都有極其嚴(yán)格的要求;另一方面,如何在涉密軟件產(chǎn)品項目研制過程中,妥善做好涉密數(shù)據(jù)、文件的保密管理工作,做到秘密不失,是一個亟待解決的問題。
為了對涉密軟件項目進(jìn)行更加科學(xué)的過程管理,建立長效管理機(jī)制,加強(qiáng)對涉密單位的保密監(jiān)督,本文針對涉密軟件項目研制的特點,結(jié)合軟件工程化管理及軟件過程改進(jìn)理念,提出了將工作流技術(shù)應(yīng)用于涉密軟件項目過程管理的設(shè)計方案,在不斷改進(jìn)軟件過程的同時,對各類項目管理過程進(jìn)行建模,通過執(zhí)行工作流程,實現(xiàn)項目管理過程的自動化流轉(zhuǎn)、各類紙質(zhì)審批單據(jù)電子化、以及數(shù)據(jù)存取控制自動化等等功能;而通過對工作流狀態(tài)進(jìn)行跟蹤和查詢,可以大大簡化保密檢查的工作強(qiáng)度,從而促使軟件開發(fā)項目組能夠在項目開發(fā)的整個生命周期妥善管理各類涉密配置項及文檔、數(shù)據(jù)的保密管理工作,保證項目開發(fā)安全、順利地進(jìn)行。
CMM(Capability Maturity Model,軟件成熟度模型)[1]是90年代初提出的一套軟件過程管理模型,用來協(xié)助軟件開發(fā)人員持續(xù)改進(jìn)流程的成熟度以及軟件質(zhì)量,不斷提高軟件研制過程的工程化程度,從而達(dá)到在預(yù)算范圍內(nèi),按時、按質(zhì)生產(chǎn)出合格軟件產(chǎn)品的目的。在此基礎(chǔ)上,軍方于2008年提出了軍用軟件研制能力成熟度模型[2](Capability maturity model for m ilitary software development,GJB 5000A-2008,以下簡稱5000A),通過分級定義涉密軟件研制方的主要管理過程域及工程實踐集,為項目組織提供一條軟件過程改進(jìn)(Software Process Improvement,SPI)的持續(xù)進(jìn)化路徑,以及進(jìn)行組織的軟件過程能力評估(Software Process Assessment,SPA)的方法。5000A分為五個成熟度等級:初始級,可重復(fù)級,已定義級,已管理級,以及優(yōu)化級。每一成熟度等級由若干個關(guān)鍵過程域(Key Process Area,KPA)構(gòu)成,每個KPA由若干相關(guān)實踐組成,當(dāng)這些實踐被全部實現(xiàn)時,就能滿足該過程域的改進(jìn)目標(biāo)。
工作流(work flow)[3]是業(yè)務(wù)流程在計算機(jī)支持下的自動化執(zhí)行過程。工作流管理系統(tǒng)預(yù)先定義業(yè)務(wù)過程的執(zhí)行過程、規(guī)則及參與者,在工作流引擎的驅(qū)動下,使文檔、數(shù)據(jù)、代碼等業(yè)務(wù)產(chǎn)品及業(yè)務(wù)操作在不同的參與者之間進(jìn)行自動傳遞和執(zhí)行。一個完整的工作流管理系統(tǒng)應(yīng)該具有三個方面的功能特性:一是對工作流程的建模和定義;二是在運行環(huán)境中驅(qū)動并控制工作流程,實現(xiàn)業(yè)務(wù)的自動流轉(zhuǎn);三是能夠自動將操作和數(shù)據(jù)分發(fā)給具有操作權(quán)限的用戶進(jìn)行處理。
對于涉密軟件開發(fā)項目來說,有了工作流管理系統(tǒng)的支持,可以很方便的通過在流程的各個階段對各個角色的權(quán)限定義來最終實現(xiàn)基于工作流的數(shù)據(jù)存取控制;同時,對工作流程的建模過程,也正是在項目管理過程中不斷積累工作經(jīng)驗,固化軟件開發(fā)過程中的標(biāo)準(zhǔn)、規(guī)程及方法,從而建立標(biāo)準(zhǔn)過程集(庫)的過程,是達(dá)到CMM 3級——已定義級的必要條件和基礎(chǔ)。換言之,使用工作流管理系統(tǒng)對涉密軟件項目進(jìn)行管理,可以將軟件企業(yè)對項目軟件過程能力的持續(xù)改進(jìn),體現(xiàn)在對日常業(yè)務(wù)流程的持續(xù)修正、更新和剪裁,使之不斷科學(xué)化的過程中。
下面以某單位涉密軟件項目開發(fā)系統(tǒng)為例,說明日常涉密軟件項目開發(fā)流程化管理系統(tǒng)的設(shè)計。下圖為該單位的開發(fā)系統(tǒng)流程圖。
工作流定義:在實際項目過程管理過程中,通過不斷的過程資產(chǎn)積累,以及對CMM標(biāo)準(zhǔn)過程集進(jìn)行適當(dāng)?shù)募舨?,根?jù)需要抽取過程域中的某些共用實踐及專用實踐,組成具有一定執(zhí)行順序的工作流。工作流程的定義是對項目管理過程的建模過程,其開發(fā)可以是瀑布式的,也可以采用螺旋型漸進(jìn)開發(fā)方式,先生成一個相對簡單的工作流原型,并工作過程中不斷改進(jìn)。
權(quán)限管理:采用電子權(quán)限認(rèn)證系統(tǒng)實現(xiàn)工作流程中的用戶權(quán)限管理。每個系統(tǒng)操作人員對應(yīng)一個USB KEY,用來唯一確定登錄系統(tǒng)的人員身份。根據(jù)組織視圖中的不同職能崗位劃分角色,將用戶指派為一種或幾種角色,通過角色所賦予的權(quán)限來進(jìn)行審批、資源訪問等操作。工作流定義人員對工作流程的每個步驟指定特定的角色來進(jìn)行操作[4]。用戶、角色、以及操作權(quán)限之間的關(guān)系如圖二所示。
圖2 用戶、角色、操作權(quán)限關(guān)系圖
工作流運轉(zhuǎn)過程:在日常項目管理過程中,當(dāng)需要執(zhí)行某個操作時,就由具有操作權(quán)限的人員啟用相應(yīng)的工作流程。流程可以進(jìn)行人工啟動,或由工作流引擎在滿足啟動條件時作為子流程自動啟動。流程啟動后,工作流引擎驅(qū)動流程按順序流轉(zhuǎn),并對流程中相應(yīng)操作所指定的角色開放相應(yīng)的操作權(quán)限,提示角色所屬人員執(zhí)行相應(yīng)操作以使工作流轉(zhuǎn),直至流程結(jié)束。下面以配置管理流程中的配置項[5](需求規(guī)格說明書)變更流程及涉密文件歸檔及打印流程為例,說明工作流管理系統(tǒng)在涉密項目中的工作方式。
圖3 涉密軟件開發(fā)項目工作流程定義示意圖
操作留痕及查詢審計:工作流管理系統(tǒng)可以將工作人員進(jìn)行的各類操作自動留痕,并提供豐富的查詢功能,方便涉密項目保密檢查人員及軟件過程能力評估人員進(jìn)行查詢審計。流程運行過程中,為方便各類操作人員了解流程運轉(zhuǎn)情況,查詢相關(guān)電子文檔,填寫審核意見,可以將流程操作界面制作成電子表單的形式。每啟動一個工作流程,系統(tǒng)即自動生成一個唯一的流程序號,該序號可以與流程發(fā)起人,流程參與人,流程狀態(tài)(進(jìn)行中,已完成,掛起等等),流程運行時間段,以及項目編號,配置項編號,操作類型等等一起作為關(guān)鍵字進(jìn)行查詢。并將流程過程中的輸入、輸出與流程本身關(guān)聯(lián)起來,方便進(jìn)行項目查詢與跟蹤,從而在很大程度上簡化日常涉密檢查的工作強(qiáng)度。
綜上所述,在當(dāng)前形勢下,涉密軟件項目研發(fā)領(lǐng)域機(jī)遇與挑戰(zhàn)并存,唯有學(xué)習(xí)并運用先進(jìn)的軟件項目管理手段,才能有效提高軟件質(zhì)量。使用工作流技術(shù),將涉密項目管理操作過程與項目軟件管理過程結(jié)合并固化,能夠大大提高日常各項保密管理操作的工作效率,保證涉密科研項目的研制過程安全順利地進(jìn)行。
[1]Raynus J.CMM軟件過程改進(jìn)指南[M].邱仲潘等譯.北京:電子工業(yè)出版社,2002.
[2]軍用軟件研制能力成熟度模型 GJB 5000A-2008
[3]基于CMM I的配置管理工作流模型的研究與實現(xiàn),謝蕓,合肥工業(yè)大學(xué),2006.5
[4]雷建云,基于工作流的數(shù)據(jù)存取權(quán)限管理[J].微計算機(jī)應(yīng)用,2005(26)4:452-454.
[5]徐曉春,李高健 軟件配置管理 清華大學(xué)出版社 2002,7