1.引言:一個(gè)令人困惑不解的現(xiàn)象

  對(duì)于屬于信息系統(tǒng)的氣象應(yīng)用系統(tǒng)而言,其靈魂是運(yùn)行于硬件平臺(tái)之上的應(yīng)用軟件系統(tǒng);因此軟件工程之于應(yīng)用軟件系統(tǒng)的作用,基本等同于對(duì)應(yīng)用系統(tǒng)的作用。

  雖然軟件工程以信息系統(tǒng)建設(shè)管理規(guī)范的身份昂然進(jìn)入氣象界,并被業(yè)務(wù)職能部門某些官員自覺運(yùn)用于指導(dǎo)行業(yè)信息化建設(shè)過程的法則,還是最近若干年的事。但其方法論中的一些具體措施、方法和規(guī)范,早在七十年代末BQS系統(tǒng)建設(shè)初期,便已被日本工程師引入到我國氣象行業(yè)信息化建設(shè)中的大規(guī)模應(yīng)用軟件研發(fā)過程中,并在日后的歲月里余脈不絕。九十年代中期中國氣象局頒布的《氣象軟件工程規(guī)范(試行)》和《氣象信息系統(tǒng)工程規(guī)范(試行)》,可視為這一珍貴工作經(jīng)驗(yàn)的歸納、提煉和希冀用于指導(dǎo)氣象界信息化建設(shè)愿望的具體體現(xiàn)。近年來隨著行業(yè)信息化建設(shè)日益社會(huì)化的趨勢(shì),軟件工程已成為一些深諳經(jīng)營之道的專業(yè)軟件公司妝扮自己的妖冶粉黛。而一些職能部門的管理者,也往往以能夠運(yùn)用軟件工程的規(guī)范指導(dǎo)具體業(yè)務(wù)單位應(yīng)用軟件研發(fā)項(xiàng)目,做為體現(xiàn)自己專業(yè)化工作水平的標(biāo)志。目前,軟件工程方法論正在氣象行業(yè)信息化建設(shè)的管理層面中悄然流行,漸有成為應(yīng)用軟件研發(fā)過程規(guī)范寶典的可能。

  然而另一方面,氣象行業(yè)中真正從事應(yīng)用軟件研發(fā)工作的人員,卻幾乎無一例外地對(duì)這些規(guī)范有所保留。尤其是那些承擔(dān)規(guī)模小、經(jīng)費(fèi)少、時(shí)間緊的“短平快”項(xiàng)目的軟件研發(fā)人員,更是對(duì)這些規(guī)范中的繁文縟節(jié)怨聲載道,并在實(shí)踐中態(tài)度消極?!跋染幋a、后文檔”的現(xiàn)象十分普遍,甚至一些受過軟件工程規(guī)范培訓(xùn)的團(tuán)隊(duì)和個(gè)人也概莫能外。對(duì)于他們來說,被有意安排在項(xiàng)目建設(shè)后期的技術(shù)文檔編寫過程是一段缺乏激情的、乏味、痛苦而又無奈的過程。

  筆者曾是軟件工程虔誠的推崇者,深知造成這種“有法不依”局面的原因并非這些研發(fā)人員認(rèn)知水平有限、缺乏專業(yè)化培訓(xùn)或組織紀(jì)律性不強(qiáng),而是另有原因。

  下文就是筆者的一些思考結(jié)果。

  2.幾個(gè)可能被忽略的地方

  在職能部門以及一些項(xiàng)目管理者當(dāng)中,有幾個(gè)地方也許被忽略了,其中較為關(guān)鍵的有兩點(diǎn):(1)軟件工程的服務(wù)對(duì)象和第一受益者究竟是誰?(2)應(yīng)當(dāng)怎樣看待應(yīng)用系統(tǒng),是把它當(dāng)成一件一成不變的產(chǎn)品?還是將其視為一個(gè)不斷變化發(fā)展的生命體?

  2.1 軟件工程主要是為軟件公司服務(wù)的

  近年來,由于國家層面的規(guī)范化運(yùn)作,氣象行業(yè)中等以上規(guī)模應(yīng)用軟件的研制主要以外包形式完成。承擔(dān)研制的單位基本上是社會(huì)上的專業(yè)軟件公司,這些公司有很強(qiáng)的軟件設(shè)計(jì)能力和編碼能力,但對(duì)氣象業(yè)務(wù)的理解基本處于極其低淺的水平;其唯一值得稱道之處在于這些公司全部采用軟件工程方法指導(dǎo)其軟件研制的全過程。在這些公司富有感染力的宣傳中,軟件工程似乎是應(yīng)用軟件研制成功的不二法門。

  然而我們知道,“軟件工程”的概念是為有效控制軟件危機(jī)的發(fā)生而被提出的,而軟件危機(jī)的主要特征表現(xiàn)在軟件公司研制軟件的完工日期一再拖后、經(jīng)費(fèi)一再超支,甚至工程最終宣告失敗等方面。因此通俗地講,軟件工程是為那些以工業(yè)化生產(chǎn)模式研制軟件產(chǎn)品的軟件公司提供的一套規(guī)避風(fēng)險(xiǎn)的方法論。它關(guān)注的重點(diǎn)是解決軟件產(chǎn)品研制過程中因?qū)I(yè)化分工所引發(fā)出來的一系列協(xié)調(diào)、控制、質(zhì)量、經(jīng)費(fèi)、進(jìn)度等問題。事實(shí)上,軟件工程的中心目標(biāo)就是把軟件作為一種物理的工業(yè)產(chǎn)品來開發(fā),要求“采用工程化的原理與方法對(duì)軟件進(jìn)行計(jì)劃、開發(fā)和維護(hù)”。

  所以說,軟件工程不是針對(duì)軟件需求者提出來的,而是針對(duì)于專業(yè)化軟件生產(chǎn)者提出來的。它的第一受益者和適用載體是那些擁有專業(yè)設(shè)計(jì)研發(fā)乃至測(cè)試能力,但對(duì)軟件需求者所屬行業(yè)(至少在初期)一無所知或所知甚少的社會(huì)上專以生產(chǎn)軟件為業(yè)的團(tuán)體或單位。它的適用對(duì)象是那些大型、超大型專業(yè)應(yīng)用軟件的生產(chǎn),惟其如此,專業(yè)化分工才能施展其特有的優(yōu)勢(shì),軟件工程的長處也才可能發(fā)揮出來。

  尤其需要強(qiáng)調(diào)的是,工業(yè)化生產(chǎn)的特點(diǎn)決定了,軟件工程是以最終生產(chǎn)出軟件產(chǎn)品為目的的;因此對(duì)待用戶需求的處理策略,軟件制作過程中和軟件制作完成后呈現(xiàn)出兩種完全不同的階段性特征:軟件制作過程中要求對(duì)用戶的需求盡可能全面、準(zhǔn)確的了解、把握并予以實(shí)現(xiàn);但一旦進(jìn)入制作后期,用戶的需求就必須予以“凍結(jié)”;而對(duì)于用戶于軟件制作完成后提出的新的需求,則一般不被納入本軟件的工作(包括維護(hù))范圍。如同生產(chǎn)照相機(jī)等工業(yè)產(chǎn)品一樣,一旦這款產(chǎn)品定型并形成,對(duì)其進(jìn)行的任何修改和調(diào)整便不屬于本款產(chǎn)品的工作范圍,而是下一款產(chǎn)品的工作內(nèi)容了?!靶枨蠊芾怼薄ⅰ靶枨罂刂啤钡缺闶擒浖こ逃纱伺缮鰜淼囊恍┚唧w的操作規(guī)程和方法。

責(zé)任編輯:admin