萬盛學電腦網

 萬盛學電腦網 >> 電腦入門 >> 認識計算機軟件基礎——5 軟件危機

認識計算機軟件基礎——5 軟件危機

2.5 軟件危機

軟件危機是指在計算機軟件的開發和維護過程中所遇到的一系列嚴重問題。這些嚴重的問題阻礙著軟件生產的規模化、商品化以及生產效率。使得軟件的開發和生產成為制約軟件產業發展的“瓶徑”。

1.軟件危機的由來

(1)硬件生產率大幅提高

如今,計算機的發展已進入一個新的歷史階段。硬件產品已系列化、標准化,“即插即用”。硬件產品的生產可以采用最高精尖的現代化工具和手段、自動成批生產。生產效率幾百萬倍的提高。生產能力過剩。

(2)軟件生產復雜度隨規模增大

以美國宇航局的軟件系統為例:

1963年 水星計劃系統        200萬條指令

1967年 雙子星座計劃系統    400萬條指令

1973年 阿波羅計劃系統      1000萬條指令

1979年哥倫比亞航天飛機系統 4000萬條指令

假設1個人一年生產一萬條有效指令,那麼是否4000人生產一年,或400人生產10年就能完成任務呢?答案是否定的。一萬條指令的復雜度決不僅僅是100條指令復雜度的100倍。

(3)軟件生產率很低

伴隨計算機的普及,整個社會對計算機應用的需求越來越大。但軟件的生產卻還沿用“手工作坊”的生產方式,人工編程生產。生產效率僅提高了幾倍。生產能力極其低下。

(4)硬、軟件供需失衡

社會大量需求,生產成本高,生產過程控制復雜,生產效率低等等因素構成軟件生產的惡性循環。

2.軟件危機的具體體現

⑴ 軟件開發進度難以預測

拖延工期幾個月甚至幾年的現象並不罕見,這種現象降低了軟件開發組織的信譽。

⑵ 軟件開發成本難以控制

投資一再追加,令人難於置信。往往是實際成本比預算成本高出一個數量級。

而為了趕進度和節約成本所采取的一些權宜之計又往往損害了軟件產品的質量,從而不可避免地會引起用戶的不滿。

⑶ 用戶對產品功能難以滿足

開發人員和用戶之間很難溝通、矛盾很難統一。往往是軟件開發人員不能真正了解用戶的需求,而用戶又不了解計算機求解問題的模式和能力,雙方無法用共同熟悉的語言進行交流和描述。

在雙方互不充分了解的情況下,就倉促上陣設計系統、匆忙著手編寫程序,這種“閉門造車”的開發方式必然導致最終的產品不符合用戶的實際需要。

⑷ 軟件產品質量無法保證

系統中的錯誤難以消除。軟件是邏輯產品,質量問題很難以統一的標准度量,因而造成質量控制困難。

軟件產品並不是沒有錯誤,而是盲目檢測很難發現錯誤,而隱藏下來的錯誤往往是造成重大事故的隱患。

⑸ 軟件產品難以維護

軟件產品本質上是開發人員的代碼化的邏輯思維活動,他人難以替代。除非是開發者本人,否則很難及時檢測、排除系統故障。

為使系統適應新的硬件環境,或根據用戶的需要在原系統中增加一些新的功能,又有可能增加系統中的錯誤。

⑹ 軟件缺少適當的文檔資料

文檔資料是軟件的重要組成部分。

實際上,軟件的文檔資料是開發組織和用戶的之間權利和義務的合同書,是系統管理者、總體設計者向開發人員下達的任務書,是系統維護人員的技術指導手冊,是用戶的操作說明書。

缺乏必要的文檔資料或者文檔資料不合格,將給軟件開發和維護帶來許多嚴重的困難和問題。

copyright © 萬盛學電腦網 all rights reserved