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