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