登錄

軟件危機

百科 > 計算機 > 軟件危機

1.什么是軟件危機

  軟件危機是指在計算機軟件的開發(fā)和維護過程中所遇到的一系列嚴重問題。

  軟件危機是落后的軟件生產(chǎn)方式無法滿足迅速增長的計算機軟件需求, 從而導(dǎo)致軟件開發(fā)與維 護過程中出現(xiàn)一系列嚴重問題的現(xiàn)象。 這些嚴重的問題阻礙著軟件生產(chǎn)的規(guī)?;?、商品化以及生產(chǎn)效率,讓軟件的開發(fā)和生產(chǎn)成為制約軟件產(chǎn)業(yè)發(fā)展的“瓶徑”。

2.軟件危機的表現(xiàn)

  (1)對軟件開發(fā)成本和進度的估計常常很不準確。這種現(xiàn)象降低了軟件開發(fā)組織的信譽。而為了趕進度和節(jié)約成本所采取的一些權(quán)宜之計又往往損害了軟件產(chǎn)品的質(zhì)量,從而不可避免地會引起用戶的不滿。

  (2)用戶對“已完成的”軟件系統(tǒng)不滿意的現(xiàn)象經(jīng)常發(fā)生。軟件開發(fā)人員和用戶之間的信息交流往往很不充分,“閉門造車”必然導(dǎo)致最終的產(chǎn)品不符合用戶的實際需要。

  (3)軟件質(zhì)量保證技術(shù)(審查、復(fù)審和測試) 沒有堅持不懈地應(yīng)用到軟件開發(fā)全過程中。

  (4)軟件常常是不可維護的。由于開發(fā)過程沒有統(tǒng)一的、公認的規(guī)范,軟件開發(fā)人員按各自的風(fēng)格工作,各行其是。很多程序中的錯誤是非常難改正的,實際上不可能使這些程序適應(yīng)新的硬件環(huán)境,難適應(yīng)用戶要求增加的新的功能需求,軟件的復(fù)用性不高。

  (5)軟件通常沒有適當(dāng)?shù)奈臋n資料。計算機軟件不僅僅是程序,還應(yīng)該有一整套文檔資料。這些文檔資料應(yīng)該是在軟件開發(fā)過程中產(chǎn)生出來的,而且應(yīng)該是“最新式的”(即和程序代碼完全一致的)。軟件通常沒有適當(dāng)?shù)奈臋n資料,文檔資料的作用是:管理和評價軟件開發(fā)過程的進展情況,開發(fā)者與用戶和開發(fā)者之間通信的工具,維護工具。

  (6)軟件成本在計算機系統(tǒng)總成本中所占的比例逐年上升。由于微電子學(xué)技術(shù)的進步和生產(chǎn)自動化程fe的不斷提高,硬件成本逐年下降,然而軟件開發(fā)需要大量人力,軟件成本隨著通貨膨脹以及軟件,規(guī)模和數(shù)量的不斷擴大而持續(xù)上升。1985年美國軟件成本占計算機系統(tǒng)總成本的比例90%。

  (7)軟件開發(fā)生產(chǎn)率提高的速度,遠遠跟不上計算機應(yīng)用迅速普及深入的趨勢。軟件產(chǎn)品“供不應(yīng)求”的現(xiàn)象使人類不能充分利用現(xiàn)代計算機硬件提供的巨大潛力。

3.軟件危機的原因

 ?。?)軟件是計算機的邏輯部件而不是物理部件。軟件問題是在開發(fā)時期引入的而在測試階段沒能測出來的故 障,修改軟件故障要修改軟件原來的設(shè)計。

  (2)軟件不同于一般程序,它的一個顯著特點是規(guī)模龐大,而且程序復(fù)雜性將隨著程序規(guī)模的增加而呈指數(shù)上升。為了在預(yù)定時間內(nèi)開發(fā)出規(guī)模龐大的軟件,必須由許多人分工合作,軟件開發(fā)工作量隨軟件規(guī)模增大非線性增長。

  (3)與早期軟件開發(fā)個體化特點有關(guān):認為軟件開發(fā)就是寫程序并設(shè)法使之運行,輕視需求分析和軟件維護。也就是說是和軟件開發(fā)和維護有關(guān)的許多錯誤認識和作法的形成,可以歸因于在計算機系統(tǒng)發(fā)展的早期階段軟件開發(fā)的個體化特點。

 ?。?)缺乏正確的理論指導(dǎo)。缺乏有力的方法學(xué)和工具方面的支持。由于軟件開發(fā)不同于大多數(shù)其他工業(yè)產(chǎn)品,其開發(fā)過程是復(fù)雜的邏輯思維過程,其產(chǎn)品極大程度地依賴于開發(fā)人員高度的智力投入。由于過分地依靠程序設(shè)計人員在軟件開發(fā)過程中的技巧和創(chuàng)造性,加劇軟件開發(fā)產(chǎn)品的個性化,也是發(fā)生軟件開發(fā)危機的一個重要原因。

評論  |   0條評論