李碩 胡山林 孫文俠 胡文麗
裝備軟件既可以實現(xiàn)裝備的戰(zhàn)技術(shù)性能,又可以提高裝備的綜合作戰(zhàn)能力,是我軍由機(jī)械化向信息化轉(zhuǎn)變過程中必須加以重視的一個環(huán)節(jié)。在有些情況下,軟件質(zhì)量會與硬件質(zhì)量放在一起進(jìn)行類別性討論。但軟件質(zhì)量與硬件質(zhì)量的不同是軟件不會出現(xiàn)物理性老化,也不會隨時間的增加而減少。而且,在軟件測試和運行過程中,由于軟件出問題時軟件錯誤可以被檢測出來并加以排除,因此,軟件的質(zhì)量會相應(yīng)隨時間的增長而不斷增加。但同時軟件的質(zhì)量也可能因修改軟件不正確而牽引出其他軟件質(zhì)量問題。
與硬件問題大多為物理故障不同的是,軟件問題主要是因設(shè)計缺陷而引起的。這使得軟件問題不具有觀測性,也更難分析和測量。基于軟件存在的這些特點,如何對軟件進(jìn)行質(zhì)量監(jiān)督及檢驗驗收一直是裝備建設(shè)中很重要的問題。
軟件作為裝備質(zhì)量評價中的重要一環(huán),對于裝備整體效能來講,起著極其重要的作用。但軟件質(zhì)量檢驗較硬件質(zhì)量檢驗來講,起步較晚,且很多驗收方法還不是十分成熟。目前,很多承制單位在檢驗軟件質(zhì)量時,一般將驗收軟件的重點放在軟件和硬件結(jié)合后的功能實現(xiàn)部分。這種驗收方法固然大大提高了軟件驗收的“效率”,但卻忽略了軟件質(zhì)量的多重性,忽略了軟件編程完畢后裝入硬件前的質(zhì)量。另外,有些軟件人員在解決軟件問題時,往往忽略了各個軟件單元之間的相互影響,從而導(dǎo)致更多的軟件問題出現(xiàn)。面對以上問題,軍事代表應(yīng)認(rèn)識到影響軟件質(zhì)量的因素很多,且錯綜復(fù)雜,不易查明。因此,對于軟件的質(zhì)量監(jiān)督及檢驗驗收應(yīng)采取系統(tǒng)化、團(tuán)隊化的質(zhì)量監(jiān)督模式。如采取習(xí)慣性“頭疼醫(yī)頭”的軟件質(zhì)量監(jiān)督模式的話,對于軟件質(zhì)量的提高來講,必然是無益的。
軟件在編寫前,首先要考慮軟件與硬件的匹配性,包括軟件大小要匹配硬件的容量,編寫軟件使用的語言應(yīng)是硬件中能夠運行的編程語言等相關(guān)問題。同時,要清楚軟件在硬件中要實現(xiàn)的功能及有可能出現(xiàn)的軟硬件不兼容等問題(如:有些編程語言可以在WINDOWS2000系統(tǒng)中進(jìn)行編程,但卻不能在win7系統(tǒng)中運行)。軟件在編寫完成后,未裝入硬件載體前,是軟件質(zhì)量監(jiān)督的重要環(huán)節(jié),但此過程容易被忽略。實際上,很多軟件中的錯誤語句、語句邏輯不通及語句繁冗等問題,是可以在軟件編寫完成后的第一時間通過相關(guān)軟件測評工具避免的。如果軟件人員在軟件編寫過程中不斷通過軟件測評工具來完善軟件,那對于保障軟件質(zhì)量來講效果是很明顯的。但此法有可能破壞軟件編程過程的連續(xù)性,及因軟件未完成而導(dǎo)致測評工具出現(xiàn)的錯誤邏輯檢測。因此,在軟件完成后第一時間利用工具軟件進(jìn)行軟件測評是十分有必要的。在首次軟件測評結(jié)束后,軟件人員應(yīng)將相關(guān)的軟件問題改正,并再次通過工具軟件驗證無誤后,再將軟件裝入硬件進(jìn)行功能測試。如功能測試中出現(xiàn)軟件質(zhì)量問題,首先將軟件問題解決后,再一次使用工具軟件對修改后軟件進(jìn)行軟件測評,在工具軟件測評無誤后,再重新裝入硬件中進(jìn)行驗證,如此循環(huán),直到軟件程序問題解決為止,如圖1所示。通過這種方式,既可以減少軟件編寫中的邏輯、語病等錯誤,又可以不斷完善軟件在硬件中的功能性能,對于保障軟件質(zhì)量來講,具有極其重要的意義。
對于軟件故障,如在發(fā)現(xiàn)軟件故障后,要求軟件開發(fā)人員逐條的檢查軟件的正確性,顯然是既費時又費力的。因為一般裝備軟件的源程序代碼至少有一萬多條,查起來不可避免地出現(xiàn)一些人為的誤操作。為提高復(fù)雜軟件系統(tǒng)的質(zhì)量和可靠性,最好的辦法是設(shè)計軟件故障樹模型。
故障樹模型是事件之間邏輯關(guān)系的圖形表示。故障樹雖然從傳統(tǒng)意義上講是用來分析硬件的,但故障樹也可以為軟件質(zhì)量提供監(jiān)督模式,如圖2所示。軟件雖不像硬件那樣具有可觀察性,但軟件卻和硬件一樣具有偶然失效的特點。因此,軟件人員可以利用軟件故障樹模型,通過軟件窮舉測試的方法,來確定軟件的實效原因及恢復(fù)修改的方法。
軟件故障樹和硬件故障樹一樣,也有可能出現(xiàn)考慮不周全的情況。因此,在利用故障樹分析軟件的過程中,也應(yīng)該同時考慮一些極有可能被忽視的軟件失效模式。如發(fā)現(xiàn)有些軟件失效模式未被考慮,則應(yīng)及時加入故障樹中,以保證軟件故障樹模型的完整性。
目前,軟件的編制往往需要一個團(tuán)隊的通力合作才能達(dá)成。因此,在軟件的編制中需要良好團(tuán)隊精神才能圓滿地完成軟件的編制工作。但在日常的軟件檢驗驗收過程中,有時會發(fā)現(xiàn)因缺乏團(tuán)隊合作精神所引起的質(zhì)量問題。例如,一個軟件由很多分單元組成,而每個分單元都有它的編寫人員,當(dāng)其中的一個軟件工程師發(fā)現(xiàn)自己的軟件存在缺陷,并自行進(jìn)行修改的話,那么對這軟件單元的修改極有可能產(chǎn)生“牽一發(fā)而動全身”的影響,從而導(dǎo)致更多的軟件問題發(fā)生。因為軟件是由多個軟件分單元組成的一個整體,如果分單元在修改時未能充分考慮與其他分單元相關(guān)聯(lián)系的話,則在軟件運行時極有可能出現(xiàn)質(zhì)量問題,從而影響整個軟件的正常運行。并且,這種因分單元軟件修改而產(chǎn)生的質(zhì)量問題,如不能及時發(fā)現(xiàn)原因,往往很難發(fā)現(xiàn)問題的癥結(jié)。面對這個問題,軍代表應(yīng)制定嚴(yán)格的軟件修改程序,并納入到承制單位的質(zhì)量保證體系中。當(dāng)軟件出現(xiàn)問題時,軍代表應(yīng)督促承制單位采取團(tuán)隊分析的方法來分析軟件的質(zhì)量問題,確保軟件質(zhì)量問題得到準(zhǔn)確的定位。同時杜絕軟件問題未經(jīng)軟件團(tuán)隊分析便擅自修改的情況發(fā)生,以達(dá)到切實保證軟件質(zhì)量的效果。
圖1 軟件質(zhì)量監(jiān)督圖
圖2 簡單的故障樹模型
在驗收軟件功能時,有時會涉及軟件輸入?yún)?shù)的情況。面對這種情況,軍代表不應(yīng)按常規(guī)方式進(jìn)行參數(shù)輸入,應(yīng)輸入軟件處在極限條件下或非正常的條件下可能出現(xiàn)的參數(shù)。這樣可以防止軟件因沒有設(shè)置參數(shù)限制條件保護(hù)而導(dǎo)致不必要的軟件崩潰。如軟件常規(guī)輸入為1到10,軍代表應(yīng)首先輸入1到10,在確認(rèn)無誤后,就應(yīng)輸入除1到10以外的數(shù)字,以此達(dá)到充分考核軟件糾錯性的效果。這樣做的目的是因為裝備交付部隊后,可能遇到各種誤操作的情況,操作軟件人員可能因為緊張等原因而出現(xiàn)輸入?yún)?shù)不符合正常條件的情況。所以,在檢驗裝備軟件功能的時候應(yīng)充分考慮軟件可能出現(xiàn)的各種情況。
由于軟件具有邏輯連貫性的特點,因此,在軟件問題修改后的驗證中往往需要一定的測試手段和時間。但有時會軟件人員在修改完軟件問題后,便立刻提交進(jìn)行檢驗驗收,并不對修改后的軟件進(jìn)行大量的測試。這樣做往往使舊的問題改過之后,在繼續(xù)驗收過程中又連帶出新的問題,從而不僅使軍代表檢驗驗收的工作量增加,而且還浪費了本應(yīng)完善軟件的相應(yīng)時間。面對這種情況,軍代表應(yīng)督促承制單位按照圖1的方式,充分驗證軟件,以達(dá)到切實保證軟件質(zhì)量的效果。
當(dāng)軟件質(zhì)量穩(wěn)定后,要控制軟件質(zhì)量,最重要的是要控制軟件版本。要控制軟件版本,就要控制好軟件在整個生命周期內(nèi)的技術(shù)狀態(tài)。如軟件出現(xiàn)更改情況,就應(yīng)在軟件更改后,充分驗證軟件的正確性。待確定軟件質(zhì)量沒有問題后,軍代表應(yīng)督促軟件人員將定型軟件存入相應(yīng)的軟件產(chǎn)品庫。對于日后軟件的提取及灌注,都應(yīng)有相關(guān)責(zé)任人負(fù)責(zé)監(jiān)督,以此杜絕軟件人員隨意修改軟件的情況發(fā)生。
當(dāng)軟件問題多次出現(xiàn),而軟件人員又多次對軟件進(jìn)行檢查卻未發(fā)現(xiàn)問題,但相同問題卻仍舊出現(xiàn)時,應(yīng)適當(dāng)分析軟件載體是否存在問題。一般情況下,面對重復(fù)出現(xiàn)的軟件問題,首先應(yīng)該組織相關(guān)人員(包括軟件人員和硬件人員)對軟件問題進(jìn)行充分的分析,以此達(dá)到區(qū)分簡單硬件問題和軟件問題的目的。如果很難確定是軟件問題或硬件問題的話,應(yīng)在不裝載軟件的情況下單獨對硬件進(jìn)行檢查,如仍未發(fā)現(xiàn)問題的話,則可判斷為軟件問題;如在不裝載軟件時,硬件仍出現(xiàn)類似問題,則可先將硬件問題解決后再將軟件重新裝載,再重復(fù)進(jìn)行測試,如圖3所示,以達(dá)到問題得到真正定位。
軟件開發(fā)環(huán)境是否健康是保證軟件質(zhì)量的基礎(chǔ)。因此,在開發(fā)軟件前,要切實保證軟件開發(fā)環(huán)境的健康運行。要保證軟件開發(fā)環(huán)境的健康運行。第一要保證使用的編程軟件是正版軟件,以防止盜版軟件中可能存在的解碼漏洞影響軟件的質(zhì)量;第二,軟件編程環(huán)境應(yīng)是隔離網(wǎng)絡(luò)的,以防止軟件在編輯的過程中受到網(wǎng)絡(luò)病毒的攻擊。同時,軍代表要督促承制單位在軟件開發(fā)環(huán)境中裝入殺毒軟件,并對組建軟件開發(fā)環(huán)境的硬盤、光盤和移動設(shè)備等介質(zhì)進(jìn)行病毒檢查,以此達(dá)到隔離軟件病毒的效果。
在軟件功能的驗收過程中,如果要驗收的軟件是定型后比較穩(wěn)定的軟件,則在軟件的功能驗收中,應(yīng)將驗收的重點放在軟件的灌注及拷貝過程上面。對于軟件來講,每一套軟件程序都是從軟件庫中提取的穩(wěn)定的定型軟件。只要灌注及拷貝過程不出現(xiàn)失誤,則在理論上是可保證每套軟件的質(zhì)量一致性的。因此,軍代表應(yīng)重點把控軟件的提取、灌注及拷貝過程。
圖3 軟硬件問題區(qū)分邏輯圖
在軟件功能的檢驗驗收過程中,如果第一套軟件無質(zhì)量問題的話,其他套軟件的驗收可以采取整套軟件功能抽檢的驗收方式。這樣做的優(yōu)點在于從源頭控制軟件質(zhì)量同時,提高了軟件檢驗的效率。因此在定型軟件質(zhì)量有保證的前提下,只要保證提取、灌注及拷貝這三個過程沒有問題,則可以說基本控制了軟件質(zhì)量。
軟件作為裝備建設(shè)中的重要一環(huán),它的質(zhì)量自誕生之日起便受到各個國家的重視。近年來,軟件的開發(fā)及應(yīng)用正以極快的速度發(fā)展著。但目前相應(yīng)的軟件質(zhì)量監(jiān)督及檢驗驗收卻仍處在發(fā)展探索的階段,公認(rèn)的切實可行的方法還未正式確立,還仍需進(jìn)一步研究和探討。對此,我軍應(yīng)加快研究軟件質(zhì)量監(jiān)督及檢驗驗收的相關(guān)方法,確保裝備質(zhì)量同步不斷提升。