張軍威
(解放軍駐黃河機(jī)器制造廠軍事代表室,陜西 西安710043)
如何對軍用產(chǎn)品的嵌入式實時控制軟件進(jìn)行有效的品質(zhì)控制,是一個重要研究課題。為解決軟件危機(jī)而產(chǎn)生和發(fā)展起來的軟件工程,不僅對軟件開發(fā)、設(shè)計和生產(chǎn)有直接影響,而且對提高軟件品質(zhì)有顯著成效。軟件工程,是指按照工程的規(guī)律,來組織軟件的生產(chǎn)與開發(fā)。軟件工程化,要求以軟件品質(zhì)控制為核心,緊緊抓住軟件生產(chǎn)方法、需求分析、軟件設(shè)計、軟件生產(chǎn)工具、測試、驗證與確認(rèn)、評審和管理等主要環(huán)節(jié)。
軟件需求分析的目的,是使軟件設(shè)計人員和用戶之間進(jìn)行全面深入的溝通。溝通內(nèi)容包括將要開發(fā)的軟件所涉及的概念、定義、目標(biāo)、指標(biāo)、功能、執(zhí)行過程和特點等。需求分析后產(chǎn)生的軟件規(guī)格說明書,是軟件設(shè)計、調(diào)試和測試的基礎(chǔ),也是軟件評審、鑒定和驗收的依據(jù)。軟件需求分析的過程,也是軟件設(shè)計方案的醞釀過程。通過分析得出用戶需求的正確性、合理性和完整性的結(jié)論;得出軟件付諸實現(xiàn)的可行性、可靠性和安全性的結(jié)論。
軟件設(shè)計方法,主要有面向數(shù)據(jù)流的設(shè)計、面向?qū)ο蟮脑O(shè)計和面向數(shù)據(jù)的設(shè)計等。目前,大多數(shù)嵌入式實時控制軟件,使用的是面向數(shù)據(jù)流的設(shè)計方法。該方法的目標(biāo),是以一種全局的軟件觀點和體系結(jié)構(gòu)設(shè)計的角度,派生出程序結(jié)構(gòu)。面向數(shù)據(jù)流的設(shè)計,又稱為結(jié)構(gòu)化設(shè)計。其強(qiáng)調(diào)模塊化、層次化和自頂向下的設(shè)計思想。根本目的是對復(fù)雜問題的解決采用一個簡化過程,以獲得滿意的答案。軟件可靠性設(shè)計,主要將軟件的檢錯、避錯、容錯和異常處理技術(shù),灌輸?shù)杰浖O(shè)計中去。設(shè)計時應(yīng)處處關(guān)心以下方面:控制邏輯的完整性;軟件與硬件、軟件與軟件界面之間的協(xié)調(diào)性;人機(jī)交互的有效性;信息交換的正確性;設(shè)備控制的安全性;時序控制的合理性;數(shù)學(xué)運(yùn)算中變量定義域的合法性。
從軟件生存周期看,軟件測試是保證軟件品質(zhì)的最后一道關(guān)口。但軟件測試并不僅僅局限于這個階段,而應(yīng)貫穿于軟件開發(fā)的全過程。用于實時控制系統(tǒng)一類的復(fù)雜軟件,自認(rèn)為沒有錯誤的想法,是不切合實際的。因此,測試的主要目的,是要對軟件的品質(zhì)或可接受性作出判斷,發(fā)現(xiàn)問題。
測試的設(shè)計,難在利用測試用例找出軟件的全部問題。設(shè)計的測試用例文檔格式中,含有測試管理信息——測試用例標(biāo)識和執(zhí)行史。測試用例標(biāo)識,是按一定規(guī)律統(tǒng)一為每個測試用例賦予的代號,便于需求追蹤。執(zhí)行史中有測試日期、測試結(jié)果、版本號和主管的測試者簽字,這些都是有保存價值的資料。測試用例需要精心設(shè)計、編寫、評審、使用、管理和保存。
軟件測試要求在測試過程中采集軟件可靠性數(shù)據(jù),并利用軟件可靠性模型進(jìn)行可靠性評估,分析其是否達(dá)到了預(yù)期的可靠性要求,并據(jù)此作出該軟件能否放行的決斷。若不滿足要求,需繼續(xù)進(jìn)行測試,直到滿足要求為止。
軟件管理主要包括軟件項目管理、軟件配置管理、軟件可靠性管理和軟件品質(zhì)管理等方面。
軟件項目管理的內(nèi)容,包括軟件開發(fā)過程管理、軟件可靠性度量、風(fēng)險管理、確定項目任務(wù)、建立可操作的工程計劃等。軟件項目管理,是軟件管理工作的第一層,需要強(qiáng)調(diào)的是,它不是一個階段,也不僅僅是個步驟,而是貫穿于整個軟件開發(fā)工程中的一個層次,其管理得好壞,直接影響產(chǎn)品的品質(zhì)。軟件配置管理是軟件人員和管理人員確定、組織和開展軟件修改的手段,目的是在軟件修改過程中設(shè)法少犯差錯,來最大限度地提高軟件產(chǎn)品的生產(chǎn)率。軟件配置管理涉及軟件配置項和基線的確定。軟件配置項??衫斫鉃樵谲浖a(chǎn)的某個階段應(yīng)具備的軟件文檔和保存軟件的介質(zhì)等軟件基線。軟件配置項經(jīng)軟件驗證、確認(rèn)、評審和認(rèn)定后,形成了軟件基線,也就成了該階段的一個基準(zhǔn)。下一個階段只能在這個基準(zhǔn)上進(jìn)行開發(fā)活動。
軟件配置管理要求軟件修改必須遵循軟件更改規(guī)范;未經(jīng)批準(zhǔn)的更改,任何人無權(quán)修改;更改后必須測試、驗證和確認(rèn);軟件驗收必須對相應(yīng)的軟件進(jìn)行評審。具備評審的條件,包括相對該基線的軟件配置項齊全,有測試結(jié)果和測試分析報告及軟件優(yōu)化報告。文檔管理要求文檔編寫規(guī)范、文實相符、文文相符,描述具有一致性、確切性和簡明性,簽署完整、職責(zé)明確。
(1)部分系統(tǒng)的軟件開發(fā),由硬件人員承擔(dān),硬件、軟件、模型設(shè)計均由一個組完成,仍是典型的“自編、自導(dǎo)、自演”的“小作坊”工作方式。
(2)不習(xí)慣于工程化、規(guī)范化、結(jié)構(gòu)化和模塊化的軟件生產(chǎn)方法。
(3)缺少配套的軟件測試工具。試圖利用實時控制系統(tǒng)進(jìn)行軟件的調(diào)試、測試、驗證、確認(rèn)和試驗工作,這樣的軟件測試必然是不完整的,也是有局限性的。
(4)實時控制系統(tǒng)軟件可靠性工程的研究是自發(fā)的,未納入實時控制系統(tǒng)研制計劃,影響了這項工作的深入開展。
(5)對實時控制系統(tǒng)軟件工程化還存在若干模糊認(rèn)識,認(rèn)為軟件就是編程,沒有測試工具照樣可以開發(fā)出軟件,在軟件可靠性上花更多的成本不值得等等。
(6)實時控制系統(tǒng)軟件可靠性指標(biāo)不好定,原因是軟件可靠性的評估涉及模型、方法、工具和條件等問題。
針對軟件產(chǎn)品研制生產(chǎn)的特點及GJB439—88《軍用軟件質(zhì)量保證規(guī)范》、GJB2786—96《武器系統(tǒng)軟件開發(fā)》等軍用軟件開發(fā)標(biāo)準(zhǔn)的要求,我們在某型號裝備立項研制工作之初,就制定了《軟件配置庫管理規(guī)程》,通過完善法規(guī),達(dá)到正確引導(dǎo)和管理軟件開發(fā)、生產(chǎn)的目的。
按照規(guī)定,首先建立了軟件配置庫。由軟件開發(fā)庫、軟件受控庫和軟件產(chǎn)品庫共同構(gòu)成。通過對軟件配置庫的集中管理.達(dá)到控制軟件研制生產(chǎn)品質(zhì)的目的。
計算機(jī)軟件配置項,是指軟件產(chǎn)品在生存周期的各個階段所產(chǎn)生的各種形式的信息和各種版本的文檔、程序及其數(shù)據(jù)。在對軟件配置庫的管理工作中,主要是對計算機(jī)軟件配置項所規(guī)定的內(nèi)容進(jìn)行管理。根據(jù)各型號的實際情況,一般將下列內(nèi)容納入配置管理的范圍:
(1)相應(yīng)型號軟件開發(fā)計劃中規(guī)定的所有系統(tǒng)和階段設(shè)計文檔,如軟件開發(fā)計劃、軟件需求規(guī)格說明、接口需求規(guī)格說明、軟件設(shè)計文檔、軟件測試計劃、軟件測試報告、軟件開發(fā)程序員手冊、軟件開發(fā)環(huán)境說明等。
(2)軟件開發(fā)過程中各階段所產(chǎn)生的計算機(jī)軟件部件、計算機(jī)軟件單元及其源程序代碼、目標(biāo)代碼和數(shù)據(jù)定義文檔。
(3)軟件開發(fā)過程中各階段進(jìn)行軟件測試的測試用例和測試結(jié)果等。
(4)開發(fā)完成的產(chǎn)品軟件的加載和固化操作說明。
軟件必須經(jīng)過評審或測試,確認(rèn)正確之后才能入庫,入受控庫的程序必須經(jīng)過代碼走查和單元測試,其所嵌入的系統(tǒng)必須已經(jīng)通過驗收試驗;入產(chǎn)品庫的程序必須經(jīng)過綜合測試,其嵌入的系統(tǒng)必須為可交付的產(chǎn)品,并填寫相應(yīng)的“軟件入庫申請單”。在進(jìn)行軟件配置項的入庫操作時,軟件設(shè)計師按本規(guī)程的要求填寫相應(yīng)的入庫申請單,經(jīng)主任設(shè)計師審核、研制單位領(lǐng)導(dǎo)批準(zhǔn)后,與配置管理人員一起完成軟件配置項入庫操作。受控的軟件產(chǎn)品,若需要出庫,應(yīng)辦理出庫手續(xù)。在對產(chǎn)品庫的軟件進(jìn)行固化生產(chǎn)時,應(yīng)填寫“交付產(chǎn)品軟件生產(chǎn)申請單”。
在軟件配置庫中管理的軟件,實行“雙密碼”控制。
產(chǎn)品庫中的軟件必須憑配置庫專職軟件配置管理員和品質(zhì)管理部門軟件配置管理人員掌握的密碼組合,才能完成軟件配置項的出庫;受控庫的軟件,必須憑專職軟件配置管理員和項目軟件設(shè)計師掌握的密碼組合,才能完成軟件配置項的出庫;配置管理人員根據(jù)批準(zhǔn)后的“軟件出庫申請單”辦理軟件出庫。
未經(jīng)軟件編制單位領(lǐng)導(dǎo)、型號研制總師和主管軍代表的共同批準(zhǔn),配置庫管理人員不得向任何人出示、摘錄、拷貝配置庫中的軟件。在需要進(jìn)行軟件配置項的出庫操作時,軟件/固件生產(chǎn)人員依據(jù)生產(chǎn)指令,按要求填寫相應(yīng)的產(chǎn)品軟件生產(chǎn)申請單,經(jīng)審核和部門領(lǐng)導(dǎo)批準(zhǔn)后,與配置管理人員一起到軟件配置庫完成出庫操作。
在軟件產(chǎn)品交付時,還應(yīng)有檢驗單位和軍代表等相關(guān)人員到軟件配置庫現(xiàn)場監(jiān)控,確認(rèn)后簽署相應(yīng)的交付產(chǎn)品軟件生產(chǎn)申請單。軟件配置系統(tǒng)管理員提供配置庫的另一部分密碼,并完成具體的入/出庫操作。同時,軟件配置系統(tǒng)管理員還應(yīng)完成所有電子申請單(報告單)的管理、系統(tǒng)維護(hù)和定期的配置狀態(tài)審核及定期備份工作。申請單(報告單)以電子表格和書面表格兩種形式存在。電子表格由軟件配置系統(tǒng)管理員入庫管理,軟件更改報告單的書面表格應(yīng)由檔案部門負(fù)責(zé)管理。
通過嚴(yán)格的入庫、出庫管理及相關(guān)的更改控制措施,確保了在本裝備研制過程中沒有出現(xiàn)軟件品質(zhì)問題,有效地確保了型號研制品質(zhì)和進(jìn)度。
綜上所述,通過描述對某型號裝備研制過程中軟件質(zhì)量控制的具體做法,可清晰的看見,軟件需求分析、軟件設(shè)計、軟件測試和軟件管理對軍用產(chǎn)品的嵌入式實時控制的重要性,為裝備研制質(zhì)量的大幅提升和控制打下了堅實的基礎(chǔ)。
[1]朱少民.全程軟件測試[M].北京:電子工業(yè)出版社,2007.
[2]陳雄峰,等.軟件工程化之有效實現(xiàn)[J].閩江學(xué)院學(xué)報,2005,25(2):97-100.
[3]董曉霞.軟件測試工程化的研究與實踐[J].計算機(jī)工程與設(shè)計,2006,(27):56-57.