張彥君 王宇飛
總裝駐常州某企業(yè)軍代室
軟件工程化是用工程的方法開發(fā)軟件,即采用可定義、可量化、可再生產(chǎn)和管理的工程實踐方法,實現(xiàn)軟件產(chǎn)品的開發(fā)過程。軟件工程化是系統(tǒng)化、規(guī)范化、數(shù)量化地進行裝備軟件開發(fā)和維護最為有效的途徑,是對裝備軟件采取有組織的質(zhì)量保證和全面質(zhì)量管理的重要方法和手段,是提高軟件質(zhì)量和可靠性水平的必要保證。隨著我軍向?qū)崿F(xiàn)機械化和信息化的目標跨越式地邁進,大量新型裝備陸續(xù)開始研制或投入生產(chǎn),提高裝備軟件質(zhì)量重要性日益突出,積極推進軟件工程化,將有效的解決當前裝備軟件質(zhì)量管理工作中存在的問題,提高裝備軟件質(zhì)量水平。
近年來,陸續(xù)頒布了一系列有關(guān)軟件管理方面的國家軍用標準和文件,這些標準和文件在一定程度上得到了貫徹和實施。然而,盡管部分科研生產(chǎn)單位按軟件工程化的要求作了有益的探索,目前裝備在研制和生產(chǎn)中軟件質(zhì)量水平有所提高,軟件質(zhì)量管理工作取得了一定進展,但在科研生產(chǎn)中存在的問題仍然很多:
表現(xiàn)在:管理工作未制度化,沒有建立行之有效的軟件項目負責制和分工協(xié)作機制,往往是個人大包大攬,個人能力決定了軟件的質(zhì)量;軟件工作缺乏計劃性,即使制訂了項目計劃,軟件人員并不按計劃行事;缺乏必要的配置管理,軟件及其組成單元、文檔的版本較為混亂,隨意變動需求的現(xiàn)象時有發(fā)生。
這是由于軟件開發(fā)的各個階段沒有開展制度化的評審活動,軟件開發(fā)中沒有進行規(guī)范化的軟件測試。
一方面科研生產(chǎn)部門沒有制定切合本單位實際的軟件工程管理標準,使軟件開發(fā)和管理工作在一定程度上無章可循;另一方面現(xiàn)有的標準由于可操作性不強在實際工作中往往不能得到有效貫徹。
如:管理者不能很好的按標準和規(guī)定行事,管理工作存在較大的隨意性;在軟件開發(fā)工作中,開發(fā)人員較少進行需求分析和設(shè)計等關(guān)鍵性的前期工作,一般更多的是關(guān)注軟件的功能性要求,而忽略其它方面的要求。
體現(xiàn)在:軟件人員水平參差不齊,項目人員的安排也不盡合理,沒有根據(jù)項目的具體情況對人員進行培訓;缺少必要的軟件工程支撐工具,如建模工具、配置管理工具;軟件在調(diào)試和使用中錯誤繁多,調(diào)試、維護工作量巨大,大量人力財力耗費在調(diào)試、維護活動中。
綜上所述,裝備軟件的質(zhì)量管理仍然是初步的,某些方面還是比較混亂的。我們要充分認識軟件質(zhì)量問題的重要性和嚴重性,大力加強對軟件開發(fā)和生產(chǎn)的質(zhì)量管理,積極推進軟件工程化。
建立分工協(xié)作的軟件工程化管理體系,制定軟件工程化的管理文件,成立軟件工程化組織,兼顧軟件全壽命周期,即系統(tǒng)分析、設(shè)計開發(fā)、系統(tǒng)集成、測試驗收、使用維護直至退役的全過程,將軟件開發(fā)過程的分劃為系統(tǒng)分析、需求分析、專題研究與試驗、概要設(shè)計、詳細設(shè)計、編碼、單元集成、配置項集成和測試、系統(tǒng)聯(lián)調(diào)和測試、使用和信息反饋等十個階段,明確各階段的工作內(nèi)容以及與硬件開發(fā)階段的對應關(guān)系,建立功能基線、分配基線和產(chǎn)品基線,建立項目管理、技術(shù)開發(fā)、測試評估、配置管理、階段評審和產(chǎn)品維護六線合一的質(zhì)量保證體系,進而規(guī)范軟件的研制和生產(chǎn)過程,使軟件在各階段的工作有章可循。
軟件配置管理是指對軟件產(chǎn)品在軟件生存期,即全壽命周期的各個階段所產(chǎn)生的各種形式和各種版本的文檔、程序及其數(shù)據(jù)的集合進行有效管理,以保證軟件的正確性、唯一性、完整性、可追溯性和安全性。研制生產(chǎn)單位、部門和開發(fā)人員分別建立軟件受產(chǎn)品、庫控庫和開發(fā)庫,規(guī)定相應的出、入庫制度和更改權(quán)限,對軟件開發(fā)過程中的各個基線進行較好的控制,按軟件配置管理規(guī)定和各軟件配置項的軟件開發(fā)計劃對其進行配置管理,組織進行配置審核,以規(guī)范軟件文檔的保存和管理。
加強軟件產(chǎn)品的技術(shù)狀態(tài)管理是規(guī)范研制生產(chǎn)過程的關(guān)鍵,軟件更改控制更是重要的一環(huán)。對一個簡單語句作一個簡單的修改,有時都可能遭致災難性的結(jié)局。軟件更改包括為了糾正研制生產(chǎn)過程中暴露出的錯誤而進行的改正性更改;為了適應外部環(huán)境變化而進行的適應性更改;為了改進原有軟件性能而進行的完善性更改。對軟件更改的控制應貫穿與軟件生存期全過程。研制生產(chǎn)單位應明確規(guī)定軟件受控庫和產(chǎn)品庫中軟件更改的報告、審批、更改、測試、評審和入庫程序,明確審批權(quán)限,并與軟件配置管理制度相結(jié)合,對軟件的更改實施嚴格的控制,確保產(chǎn)品在各階段的基線,使軟件的各種版本置于嚴格的配置管理之下。
軟件評審就是對軟件開發(fā)的各階段實施工程化管理,明確和量化各階段的轉(zhuǎn)段標準,以確保軟件質(zhì)量。軟件評審作為軟件開發(fā)的基礎(chǔ)工作,對于確定軟件在全壽命周期內(nèi)的質(zhì)量和可靠性水平有著作用。研制生產(chǎn)單位應根據(jù)軟件特點,詳細規(guī)定對軟件開發(fā)計劃、系統(tǒng)和段設(shè)計文件、質(zhì)量保證計劃、需求分析、接口需求規(guī)格說明、軟件設(shè)計、程序走查、部件測試和系統(tǒng)驗收的評審內(nèi)容和要求。只有嚴格和規(guī)范軟件評審制度,才能對軟件質(zhì)量實施真正有效的管理。
軟件測試是軟件質(zhì)量保證的關(guān)鍵步驟,軟件測試是對需求規(guī)格說明、軟件設(shè)計和編碼的最終審核。軟件測試的內(nèi)容包括軟件單元、部件、配置項、系統(tǒng)等測試,軟件測試的工作量往往占軟件開發(fā)總工作量的40%以上,測試的目的就是要在軟件投入生產(chǎn)性運行之前,盡可能多地發(fā)現(xiàn)軟件中的錯誤。因此,必須高度重視軟件測試工作。應將軟件測試工作明確納入產(chǎn)品研制計劃中,并結(jié)合硬件計劃制定考核軟件的測試計劃,所有的測試都應追溯到用戶需求。與此同時,還應根據(jù)軟件測試生命周期,建立由測試計劃、測試設(shè)計、定制個案直至測試執(zhí)行評估全過程的具有缺陷跟蹤和更改管理效能的測試管理體系,以提高軟件質(zhì)量和可靠性水平。
軟件工程化的實現(xiàn)是一個從低級到高級不斷漸進和反復迭代的過程。在一個企業(yè),軟件工程化體系能否真正運行的關(guān)鍵,就是要把軟件工程化的方法、理論、工具、組織管理與本單位的組織管理、人員、制度、硬件開發(fā)和技術(shù)等結(jié)合起來,這是一件相當細致的工作。由于執(zhí)行和實施軟件工程化要求的過程,將直接影響到對軟件的組織、管理、人員、技術(shù)等方面的變革,各個方面都將有一個長期的磨合過程。
軍代表對裝備軟件質(zhì)量監(jiān)督及驗收工作還處于起步發(fā)展階段,要充分發(fā)揮軍代表在軟件質(zhì)量管理中的作用,應注意把握以下三個方面:
當前,軟件質(zhì)量的重要性在越來越多的研制生產(chǎn)單位得到了高度重視,很多單位采取了建立軟件文檔管理制度、健全質(zhì)量保證措施、加強評審和測試等手段以保證軟件質(zhì)量,但距軟件工程化的要求還有較大差距,不少單位對軟件工程化的認識還不夠深入和全面,在研制生產(chǎn)過程中實際推行軟件工程化的單位更少。軍代表應積極督促研制生產(chǎn)單位推行軟件工程化,實施軟件工程化的組織管理、開發(fā)管理和質(zhì)量管理,推廣軟件工程化的方法、規(guī)范、工具,使各項主要過程有法可依,有章可循,以提高裝備軟件質(zhì)量水平和開發(fā)效率。
軍代表對裝備軟件質(zhì)量監(jiān)督及驗收工作,是把握軟件在研制生產(chǎn)各階段各過程中的重點環(huán)節(jié),尤其是軟件的評審、測試和驗收三個環(huán)節(jié),要加強重點監(jiān)督:
首先,軍代表應將軟件開發(fā)計劃、需求分析、軟件設(shè)計、部件測試和系統(tǒng)驗收、軟件更改作為軟件評審的重點,通過評審,對軟件需求是否符合有關(guān)標準、規(guī)范的要求,是否完整、準確的表達了分配的需求,軟件開發(fā)計劃的可行性、資源保障情況、軟件需求規(guī)格說明與軟件開發(fā)計劃之間是否一致、軟件更改是否可行等重要問題得出結(jié)論,深入研究軟件開發(fā)全過程的關(guān)鍵技術(shù)細節(jié),有針對性地對軟件質(zhì)量開展監(jiān)督;
其次,軍代表應積極參與軟件的各項測試工作,加強對軟件在各階段和過程中狀態(tài)的監(jiān)督,盡最大可能檢測和消除隱藏在軟件中的故障。加強測試方法研究,建立軟件測試隊伍,對軟件質(zhì)量進行分析評估;
第三,軍代表應規(guī)范軟件驗收工作,編制詳細的軟件驗收規(guī)范,合理確定驗收的目的、項目、方法和評判標準,在對軟件產(chǎn)品符合性和文檔全面檢查的基礎(chǔ)上,進行功能和性能測試。
軟件工程化條件下,如何開展軟件質(zhì)量監(jiān)督和控制對軍代表來說是個全新的課題。一方面,由于多種客觀原因,軟件工程化在軍品研制和生產(chǎn)單位推行時間較短,軍代表系統(tǒng)對此研究較少,目前就工程化條件下開展軟件質(zhì)量監(jiān)督和控制工作,沒有相關(guān)指導性、操作性很強的規(guī)范或細則;另一方面,雖然大多軍代表都認識到加強軟件質(zhì)量管理和監(jiān)督的重要性,但很多一線軍代表對軟件工程化的基本原理、概念和特點不甚了解,對軟件工程化的目標、任務、過程、原則和方法就更不熟悉,這就很難真正深入到軟件生存周期的各個階段和過程中去,把握住關(guān)鍵環(huán)節(jié),切實起到對軟件的質(zhì)量監(jiān)督和管理作用。因此,必須加強對人才的培養(yǎng),不僅掌握軟件工程化的基本知識和基本概念,更要掌握軟件的質(zhì)量屬性、質(zhì)量要素。了解軟件生存周期各個階段和過程中各個環(huán)節(jié)軟件錯誤發(fā)生的原因、發(fā)生的規(guī)律,要解決軍代表做什么、為什么要做、什么時機做、如何做。要加強對工程化條件下軟件質(zhì)量形成規(guī)律、特點進行研究,加強對軟件質(zhì)量監(jiān)督和管理方法研究和規(guī)律探索,及時總結(jié)、交流,并在此基礎(chǔ)上盡快形成軟件質(zhì)量監(jiān)督和控制的規(guī)范做法,用以指導軍代表更加規(guī)范、有效地開展軟件質(zhì)量監(jiān)督和控制工作,確保軟件產(chǎn)品質(zhì)量。