「軟體工程(Software Engineering)」
之所以能夠在初期以一個全新的概念被提出,爾後經過了數十年間的研究與討論,逐步演變及發展成為了一門獨立的科學,全都源自於在一九六八年的秋季,一群一流的程式人員、電腦的科學家與工業界的巨頭為了擺脫軟體危機此一事件而造就。
「軟體危機(Software Crisis)」
意指使用落後的軟體生產方式在軟體的開發及維護的過程中,所遇到的一系列嚴重的問題,這些問題皆有可能導致軟體產品的壽命縮短、甚至夭折。
軟體危機由一九六零年代中期開始逐漸發酵,起因源自於早期的電腦,大多是數學家與科學家的工具,主要是利用於數學的運算,因此大部分的程式都是一個人針對特定的使用目的與特定製造的硬體互相搭配所獨力完成。但是當硬體的運算能力逐漸增強與其使用者相對普遍化之後,對於軟體的需求日益增加,對軟體的要求諸多變化,這時候電腦可以實現的事情也就越來越多,但此時的軟體產品不再只是個人的創作,而是整個團隊合作的成果,但是在沒有標準的工作程序下,慘案就不斷的發生。慘案的發生讓人們意識到中大型軟體系統與小型軟體系統本質上的差異;中大型軟體系統的開發週期長、費用昂貴、品質無法保證、生產率降低,且難以沿襲小型工作室的開發模式。
但軟體的生產危機不僅止於此,上述硬體的成長快速與使用者的需求量大增,嚴重的造成軟體生產的規模化、商品化以及生產效率的阻礙,縱使克服困難在時程之內完成了產品,交付給客戶,但對軟體產品的成本和進度的估計並不準確。而為了趕進度和節約成本所採取的一些權宜之計又往往損害了軟體產品的質量,用戶對已完成的軟體系統不滿意的現象經常發生。軟體開發人員和用戶之間的信息交流往往很不充分,無法了解真正的需求必然導致最終的產品不符合用戶實際的需要。
又由於開發過程沒有統一的、公認的規範,軟體開發人員按各自的風格工作。很多程式中的錯誤是非常難以改正的,實際上不可能使這些程式適應新的硬體環境及適應用戶要求增加新的功能需求,導致軟體的重複使用性不高。電腦軟體應該不僅僅只是程式,還需要有一整套的文檔資料。這些文檔資料應該是在軟體開發過程中產生出來的,而且應該是與程式代碼完全一致。
基於種種的錯誤與經驗,迫使軟體工程迅速的被修正與成長…
資料來源:
維基百科:軟體危機