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