航天計(jì)算機(jī)產(chǎn)業(yè)中應(yīng)用軟件的發(fā)展戰(zhàn)略
【摘 要】從市場(chǎng)經(jīng)濟(jì)的角度,以影響軟件市場(chǎng)生命力的幾個(gè)重要因素為線索,探討了如何面對(duì)市場(chǎng)的競(jìng)爭(zhēng),開(kāi)發(fā)出有生命力的應(yīng)用軟件產(chǎn)品,特別指出要抓住INTERNET漢語(yǔ)軟件尚不完善的契機(jī),應(yīng)用工程化管理,實(shí)施軟件開(kāi)發(fā)人海戰(zhàn)術(shù),搶灘市場(chǎng)。
軟件作為計(jì)算機(jī)的靈魂,從計(jì)算機(jī)誕生之日起就主宰著計(jì)算機(jī)產(chǎn)業(yè)的發(fā)展。從二進(jìn)制的指令到最先進(jìn)的語(yǔ)音及圖像識(shí)別系統(tǒng),勾勒出了軟件發(fā)展的趨勢(shì),即面向用戶,方便用戶,贏得用戶。微軟公司的成功有力地說(shuō)明了這一指導(dǎo)思想在軟件開(kāi)發(fā)中的重要性。
由于我國(guó)在基礎(chǔ)工業(yè)和基礎(chǔ)技術(shù)上的先天不足,使得計(jì)算機(jī)工業(yè)從一開(kāi)始就存在著硬件技術(shù)落后的嚴(yán)重缺陷。因此,盡快制定正確的軟件發(fā)展戰(zhàn)略是調(diào)整我國(guó)計(jì)算機(jī)工業(yè)跨世紀(jì)發(fā)展戰(zhàn)略的一個(gè)極其重要的先決條件。為了彌補(bǔ)硬件落后帶來(lái)的問(wèn)題,面向中國(guó)市場(chǎng)的高性能軟件的開(kāi)發(fā)是唯一的出路。要發(fā)展高性能的軟件,必須重視以下幾點(diǎn):軟件開(kāi)發(fā)管理中的工程性;軟件的商業(yè)性及其版權(quán)保護(hù);跟蹤國(guó)際先進(jìn)軟硬件技術(shù),重視應(yīng)用軟件的創(chuàng)造性開(kāi)發(fā)。
一、軟件工程的問(wèn)題
軟件工程的概念是由最初的軟件模塊化和結(jié)構(gòu)化概念演繹而來(lái)的。初期的應(yīng)用軟件,多數(shù)是以功能為主的。在編制應(yīng)用軟件時(shí),雖然也有將其搞成通用軟件的良好愿望,但在實(shí)際上卻做不到,客觀上是因?yàn)橛布阅艿南拗疲词垢愠隽诉@樣的程序也無(wú)法進(jìn)行調(diào)試。同時(shí),由于各專業(yè)之間缺乏妥善的協(xié)調(diào),主觀上也缺少將各功能塊有機(jī)地聯(lián)結(jié)起來(lái)的機(jī)制。
隨著硬件技術(shù)的發(fā)展,使得通用程序的編制成為可能。雖然受到內(nèi)存規(guī)模及字長(zhǎng)的限制,但通過(guò)“模塊化”處理后,軟件的功能得到了大大的擴(kuò)充。從軟件本身的功能看,最初的程序是“一題一解”;輸入/輸出;矩陣生成;求解;渾成一體。由于內(nèi)存和速度的限制,對(duì)大型矩陣的存儲(chǔ)要進(jìn)行復(fù)雜的編碼處理,為了施加不同的約束條件,也要進(jìn)行類似的處理。這時(shí)“模塊化”的概念被逐步引進(jìn)。為了節(jié)約內(nèi)存,具有類似處理功能的程序段被相對(duì)集中起來(lái)組成所謂“模塊”,可以允許其它程序段調(diào)用。但由于計(jì)算語(yǔ)言本身的限制,這種“模塊”的“邊緣”并不十分清晰。通過(guò)對(duì)當(dāng)時(shí)比較通用的計(jì)算語(yǔ)言如ALGOL和FORTRAN等進(jìn)行所謂“ 結(jié)構(gòu)化”改造,程序員有可能將通用程序各功能模塊的邊緣定義得更清晰,這時(shí)就產(chǎn)生了各模塊間的協(xié)調(diào)問(wèn)題,仿照機(jī)械加工中公差配合的概念,軟件工作者提出了 “軟件工程”這一概念,實(shí)際上,就是一套規(guī)范各模塊間數(shù)據(jù)傳遞格式的標(biāo)準(zhǔn)。當(dāng)軟件變得越來(lái)越“通用”后,一個(gè)軟件中涉及的內(nèi)容已經(jīng)不是單一學(xué)科的問(wèn)題,靠一個(gè)人或幾個(gè)人是無(wú)法完成整個(gè)軟件的,而多學(xué)科的問(wèn)題(有很多個(gè)“模塊”)會(huì)產(chǎn)生大量的模塊間協(xié)調(diào)問(wèn)題,這也使得“軟件工程”的概念受到更多的重視。“軟件工程”的真正含義就是在保證軟件所含內(nèi)容一致性的前提下,將軟件編制從個(gè)人化的小作坊模式轉(zhuǎn)變成由多學(xué)科協(xié)調(diào)作戰(zhàn)的大生產(chǎn)模式。下面從著名的有限元結(jié)構(gòu)分析軟件MSC/NASTRAN和最流行的系統(tǒng)軟件Microsoft Windows的成功來(lái)看看我們可以從中得到什么啟示和教訓(xùn)。
作為一個(gè)有限元結(jié)構(gòu)分析軟件,MSC/NASTRAN在1995年的水平除了在程序功能上稍有區(qū)別外,在其它方面與我們?cè)诋?dāng)時(shí)已擁有的通用結(jié)構(gòu)分析軟件SAP-V及我們自行編制的分析軟件并沒(méi)有太大的差別,但到了1996年,NASTRAN就推出了XL-前后處理模塊這一使其產(chǎn)生重大飛躍的軟件包。其功能是使原來(lái)十分煩瑣的輸入/輸出由抽象的數(shù)據(jù)流轉(zhuǎn)變?yōu)橹庇^的圖像。為了開(kāi)發(fā)XL,MSC公司投入了大量的人力和時(shí)間,在這種“大生產(chǎn)”的模式下如果不對(duì)軟件工程給予足夠的重視,很難想象最后的結(jié)果會(huì)是什么樣子。當(dāng)時(shí)我們了解到了NASTRAN的這一動(dòng)向后,也曾試圖完善自編分析軟件的前后處理功能,但由于各方面條件所限,加之技術(shù)領(lǐng)導(dǎo)部門對(duì)這一問(wèn)題缺乏應(yīng)有的重視,使我們失掉了一個(gè)有可能趕上國(guó)際先進(jìn)水平的時(shí)機(jī)。
Microsoft Windows開(kāi)發(fā)的成功,也說(shuō)明了軟件工程在軟件開(kāi)發(fā)中的重要性,作為一個(gè)“視窗”型系統(tǒng)軟件,它采用了先進(jìn)的圖形功能,并為了適應(yīng)各種外設(shè)的需要,建立了一個(gè)強(qiáng)大的設(shè)備驅(qū)動(dòng)程序庫(kù),而所有的這一切都是在很短的時(shí)間內(nèi)完成的,試想如果沒(méi)有在開(kāi)發(fā)過(guò)程中很好地應(yīng)用軟件工程技術(shù),這么龐大的系統(tǒng)軟件怎么有可能在這么短的時(shí)間內(nèi)調(diào)試成功。每個(gè)程序員都有自己的風(fēng)格,自己的癖好,如果各行其是,沒(méi)有約束,雖然每一個(gè)模塊都可以單獨(dú)正確運(yùn)行,但整個(gè)程序?qū)⑹且槐P散沙,根本無(wú)法運(yùn)行。
在當(dāng)今激烈競(jìng)爭(zhēng)的軟件市場(chǎng)中,那種不考慮開(kāi)發(fā)效率,只考慮軟件功能的開(kāi)發(fā)思想已被淘汰了。由于一個(gè)好的設(shè)計(jì)思想很容易遭到剽竊,而在最后的產(chǎn)品出來(lái)之前又無(wú)法獲得版權(quán)的保護(hù),因此開(kāi)發(fā)效率實(shí)際上就是關(guān)系到軟件開(kāi)發(fā)是否成功的關(guān)鍵因素。為了提高軟件開(kāi)發(fā)效率,多學(xué)科的協(xié)調(diào)是必不可少的,所以對(duì)軟件工程是否重視就直接影響到開(kāi)發(fā)商的經(jīng)濟(jì)利益。因?yàn)樵诋?dāng)今多媒體新技術(shù)的沖擊下,僅靠幾個(gè)軟件程序員是無(wú)法完成一個(gè)涉及圖像、聲音、動(dòng)畫、通訊、人工智能等多學(xué)科領(lǐng)域?qū)iT知識(shí)的超大規(guī)模軟件的。
強(qiáng)調(diào)軟件工程的另一個(gè)主要原因是到目前為止,在航天計(jì)算機(jī)產(chǎn)業(yè)中,軟件的開(kāi)發(fā)還停留在小作坊的模式,這一方面是體制本身帶來(lái)的問(wèn)題,另一方面與我們對(duì)軟件工程的重視程度有關(guān)。我們的優(yōu)勢(shì)在于擁有大量的廉價(jià)高級(jí)勞動(dòng)力,如果我們能夠充分重視軟件工程在各類應(yīng)用軟件開(kāi)發(fā)中的應(yīng)用,我們的產(chǎn)品將會(huì)具有很強(qiáng)的競(jìng)爭(zhēng)力。特別是,當(dāng)我們無(wú)法在短期內(nèi)擺脫硬件落后的客觀現(xiàn)實(shí)的情況下,這一點(diǎn)尤為重要。
二、軟件的商業(yè)性及版權(quán)問(wèn)題
由于缺乏商品意識(shí),在很長(zhǎng)的一段時(shí)間里,我們軟件產(chǎn)品缺乏應(yīng)有的包裝,用現(xiàn)在的話講就是缺少用戶友善的界面。軟件工作者只滿足于自己的產(chǎn)品可以實(shí)現(xiàn)某些功能,多數(shù)僅限于學(xué)術(shù)性考慮,甚至連同行都無(wú)法輕松地理解和使用這類軟件。
筆者的一位同事,曾經(jīng)將美國(guó)噴氣推進(jìn)實(shí)驗(yàn)室發(fā)表的一個(gè)用當(dāng)時(shí)比較先進(jìn)的FORTRAN語(yǔ)言編寫的顫振計(jì)算程序“還原”成ALGOL-60版本,以便可以在國(guó)產(chǎn)719型計(jì)算機(jī)上運(yùn)行。這個(gè)工作大約花了他兩年半的時(shí)間,雖然在由上海交大幾位教授主持的評(píng)審會(huì)上得以通過(guò),但因其界面令人望而卻步而被束之高閣,研究者兩年半的心血從此付諸東流,實(shí)在是可惜。
筆者另一位曾經(jīng)在德國(guó)斯圖加特大學(xué)進(jìn)修了兩年的同學(xué),回國(guó)前,一段小小的偶極子計(jì)算軟件被學(xué)校收購(gòu),賣了兩千馬克。國(guó)外對(duì)軟件產(chǎn)品的重視,實(shí)際上是對(duì)知識(shí)的尊重,也是對(duì)人力和物力資源的珍視和節(jié)約,這種做法既可以有效地避免低層次重復(fù)開(kāi)發(fā),又充分調(diào)動(dòng)了開(kāi)發(fā)人員的積極性。
除了軟件開(kāi)發(fā)人員本身缺乏應(yīng)有的商品意識(shí)外,長(zhǎng)期以來(lái)對(duì)軟件版權(quán)缺乏完善的保護(hù)機(jī)制和強(qiáng)有力的措施,也是我國(guó)軟件工業(yè)不能健康發(fā)展的一個(gè)原因。要真正做好版權(quán)保護(hù)工作,除要完善保護(hù)機(jī)制外,還需培養(yǎng)國(guó)民的知識(shí)產(chǎn)權(quán)法律意識(shí)。
從MSC/NASTRAN和Microsoft Windows的成功看國(guó)外軟件的商品意識(shí)。1995年的NASTRAN版本中前后處理功能還基本上沒(méi)有,而且有限元分析在當(dāng)時(shí)對(duì)一般的工程設(shè)計(jì)人員來(lái)講還是一個(gè)很抽象的概念,大量繁雜的數(shù)據(jù)輸入令人望而卻步,而抽象的數(shù)據(jù)輸出又令人不得要領(lǐng),這給軟件的推廣應(yīng)用帶來(lái)了很大的障礙。為了給用戶一個(gè)“友善”的界面,NASTRAN及時(shí)地推出了XL圖像界面,使得輸入變得輕松,而輸出變得直觀,既推廣了軟件的應(yīng)用,又提高了每個(gè)軟件的附加值,真是一舉兩得。而微軟公司的“窗口”更是在贏得用戶方面達(dá)到了登峰造極的地步,它一改操作系統(tǒng)“學(xué)究”式的面孔,使不懂計(jì)算機(jī)的人在幾分鐘內(nèi)就學(xué)會(huì)如何操作原來(lái)帶有“神秘”面紗的電腦,在推銷自己本身的同時(shí),也推銷了計(jì)算機(jī)。“微軟”的成功,首先是有美國(guó)完善的知識(shí)產(chǎn)權(quán)保護(hù)系統(tǒng)的支持;其次是其重視軟件產(chǎn)品的商品性;第三才是技術(shù)方面的諸如軟件工程概念的運(yùn)用及跟蹤先進(jìn)技術(shù),提倡創(chuàng)造性開(kāi)發(fā)等。沒(méi)有完善的知識(shí)產(chǎn)權(quán)保護(hù)系統(tǒng)就不可能有 “微軟”。
三、跟蹤先進(jìn)技術(shù),提倡創(chuàng)造性開(kāi)發(fā)
為了縮小與先進(jìn)國(guó)家在計(jì)算機(jī)技術(shù)上的差距,我們必須要做好技術(shù)跟蹤工作,密切注視硬件發(fā)展的動(dòng)態(tài)和我國(guó)可資利用的硬件技術(shù),其中包括技術(shù)交流和技術(shù)轉(zhuǎn)讓,特別是在決定最底層軟件性能的芯片指令方面要下大功夫。
在軟件開(kāi)發(fā)方面要充分發(fā)揮我國(guó)人力資源豐富的優(yōu)勢(shì),積極運(yùn)用軟件工程概念,采用高技術(shù)領(lǐng)域的人海戰(zhàn)術(shù),搶灘由INTERNET帶來(lái)的新的軟件市場(chǎng),特別要提倡創(chuàng)造性開(kāi)發(fā)。所謂創(chuàng)造性,就是不要僅限于國(guó)外現(xiàn)有軟件的漢化,而是應(yīng)該積極開(kāi)發(fā)適應(yīng)我國(guó)文化的軟件。我國(guó)目前的很多產(chǎn)品開(kāi)發(fā),模仿的多,創(chuàng)造的少,由此帶來(lái)的是產(chǎn)品淘汰速度快,開(kāi)發(fā)成本高,經(jīng)濟(jì)效益低。而一個(gè)好的產(chǎn)品,不是去與同類產(chǎn)品爭(zhēng)市場(chǎng),而是在還沒(méi)有同類產(chǎn)品的時(shí)候占領(lǐng)市場(chǎng),在出現(xiàn)同類產(chǎn)品后再去開(kāi)辟新的市場(chǎng),永遠(yuǎn)走在市場(chǎng)的前面,這樣的產(chǎn)品才是有競(jìng)爭(zhēng)力和生命力的產(chǎn)品。
軟件是一個(gè)帶有很重文化色彩的行業(yè),法國(guó)和德國(guó)已經(jīng)提出限制英語(yǔ)軟件在本國(guó)網(wǎng)上的上網(wǎng)率,提倡采用本國(guó)文字的軟件。我國(guó)人口眾多,市場(chǎng)巨大,隨著我國(guó)知識(shí)產(chǎn)權(quán)保護(hù)制度的日益完善,我國(guó)的軟件市場(chǎng)是一個(gè)有著巨大潛在經(jīng)濟(jì)效益的市場(chǎng),我們要抓住這個(gè)機(jī)遇,拿出具有中國(guó)文化特色的軟件產(chǎn)品,就像比爾·蓋茨當(dāng)初開(kāi)發(fā)“窗口”一樣,開(kāi)發(fā)出既便于使用又使老百姓喜聞樂(lè)見(jiàn)的軟件產(chǎn)品來(lái)。
要做到這一點(diǎn),首先要有航天總公司有關(guān)部門的大力支持和倡導(dǎo),同時(shí)也要有一個(gè)保障機(jī)制,使得在航天總公司這個(gè)相對(duì)小的范圍內(nèi)能夠在軟件開(kāi)發(fā)過(guò)程中實(shí)施軟件工程概念管理,并重視產(chǎn)品的商品化,定期進(jìn)行優(yōu)秀軟件的評(píng)比,評(píng)獎(jiǎng)的標(biāo)準(zhǔn)應(yīng)該以其創(chuàng)造的經(jīng)濟(jì)效益為主。沒(méi)有了效益,就沒(méi)有了開(kāi)發(fā)基金,沒(méi)有了開(kāi)發(fā)基金也就沒(méi)有了開(kāi)發(fā)本身。我們過(guò)去的教訓(xùn),就在于只講技術(shù),不講效益,只考慮產(chǎn)品的學(xué)術(shù)價(jià)值,不考慮其經(jīng)濟(jì)價(jià)值,這樣不僅沒(méi)有效益,同時(shí)也葬送了學(xué)術(shù)研究本身。
四、結(jié)束語(yǔ)
綜上所述,從市場(chǎng)經(jīng)濟(jì)角度看,目前形勢(shì)下航天計(jì)算機(jī)產(chǎn)業(yè)中軟件開(kāi)發(fā)的重點(diǎn)應(yīng)該放在以漢語(yǔ)(注意這里用漢語(yǔ)而不用漢字以區(qū)別于“漢化”的進(jìn)口軟件)為載體的INTERNET應(yīng)用軟件上,因?yàn)檫@是一個(gè)巨大的有待開(kāi)發(fā)的市場(chǎng),從各方面的資料顯示這個(gè)市場(chǎng)具有巨大的潛在效益。