軟件工程學習第二篇,什么是軟件工程?
隨着軟件規模越來越大,復雜度不斷增加,在軟件項目開發和維護的過程中逐漸暴露出來了一些問題,如:軟件產品質量低劣、維護工作量大、成本不斷上升,進度不可控、程序人員無限度的增加(增加人員並沒有按時交付),“軟件危機”這一概念被提了出來。而軟件工程是為了研究和克服軟件危機而產生的學科。
軟件工程的本質是用工程化的方法去規范軟件開發,讓項目可以按時完成、成本可控、質量有保證。
核心是圍繞軟件項目開發,對開發過程的組織,對方法的運用,對工具的使用。
我們所說的工程是指有人參與、有計划、有步驟的造出一件有用的產品。前提條件是有用,造出來的是無用的產品,我們不能稱為工程。
有人參與,產生了各種角色:項目經理、產品經理、程序員(客戶端開發人員、服務端開發人員)、設計師、測試、運維。
有計划、有步驟,軟件開發的過程參考了建築工程,被分成了幾個階段:需求定義與分析、設計、實現、測試、交付和維護,這些組成了軟件項目的生命周期。對參與的人及整個過程的管理,我們稱之為“項目管理”。
對上述階段進一步演化,衍生出了一套最基礎的過程模型:瀑布模型。
因瀑布模型不能很好的應對需求的變更,又衍生出了V模型、快速原型模型、增量模型、螺旋模型,試圖改善瀑布模型存在的一些缺陷。
基於軟件過程,我們有了角色分工,有了對過程的管理和工具,對過程中每個階段細分的方法學和工具。
簡單總結:軟件工程就是用工程化的方法來開發維護軟件。也就是用一定的過程,采用科學的方法,借助工具來開發軟件。
用公式表達就是:軟件工程=工具+方法+過程。