软件危机
维基百科,自由的百科全书
軟體危機在確立為一個明確的主題前,是一個早期用在軟體工程上的術語。 這個術語用來描述正急遽增加之電腦的力量帶來的衝擊和可能要處理的問題的複雜性。 從本質上來說,它談到了寫出正確、可理解、可驗證的電腦程式的困難。 軟體危機的本源是複雜、期望和改變。
互相衝突的需求總是阻礙了軟體的發展流程。 舉例來說,雖然使用者要求大量吸引人的東西,但客戶通常想要把軟體的支出減到最少並要求一定的發展時間。
軟體危機這樣的概念出現在1960年代末期。 這個術語最早使用在Edsger Dijkstra於1972年圖靈獎的演說,"The Humble Programmer" (EWD340),刊登在Communications of the ACM上。Dijkstra陳述說:
- "[The major cause of the software crisis is] that the machines have become several orders of magnitude more powerful! To put it quite bluntly: as long as there were no machines, programming was no problem at all; when we had a few weak computers, programming became a mild problem, and now we have gigantic computers, programming has become an equally gigantic problem." Edsger Dijkstra: The Humble Programmer (PDF, 473Kb)
軟體危機的原因與軟體流程的整體複雜度以及軟體工程這領域的不成熟有關。 這些危機可用許多方式列出:
- 專案的進行超出預算。
- 專案的進行超出時間。
- 軟體的品質低落。
- 軟體常常不符合需求。
- 專案往往不能操縱和程式碼難以維護。
軟體危機至少有一部分可藉由各式各樣的流程和方法的實作來解決。