- 軟件研發行業創新實戰案例解析
- 茹炳晟主編
- 900字
- 2023-11-17 17:09:58
2.1 軟件工程1.0
“軟件工程1.0”,即第一代軟件工程,自然是受建筑工程、水利工程等影響的傳統軟件工程,它的誕生可以追溯到1968年。當20世紀五六十年代軟件出現危機時,小弗雷德里克·布魯克斯(Frederick P.Brooks,Jr.)在《人月神話》一書中描述了如下場景:軟件開發被喻為眾多史前巨獸在焦油坑中痛苦掙扎卻無力擺脫,它們掙扎得越猛烈,焦油糾纏得越緊,如圖2-1所示。“軟件危機”迫使人們去尋找產生危機的內在原因,進而找出消除危機的解決方案。面對“軟件危機”,人們調查研究了軟件開發的實際情況,逐步認識到工程化的方法對軟件系統的開發和維護的必要性。為了克服這一危機,大家走到一起,共同探討,以獲得問題的解決途徑。于是,在1968年NATO(North Atlantic Treaty Organization,北大西洋公約組織)的計算機科學家在聯邦德國召開國際會議討論軟件危機問題,正式提出了“軟件工程”(Software Engineering)這一術語,從此一門新的工程學科誕生了,并得以不斷發展,逐漸成熟起來。傳統軟件工程主要是向土木工程和工業工程學習,吸收其百年實踐積累下來的方法和經驗,以及沉淀下來的思想。軟件工程1.0體現了以下特征。

圖2-1 《人月神話》原著封面
(1)產品化:只是交付符合質量標準的組件、構件和系統,沒有認識到軟件的柔性和數字化特性,把軟件當作傳統工業的產品,由此產生“軟件工廠”這樣的思想。
(2)結構化:受傳統建筑工程的影響,重視框架和結構的設計,表現為以架構設計為中心進行結構化分析、結構化設計、結構化編程等。
(3)過程決定結果:流程質量決定產品質量,一環扣一環,相信良好的過程產生良好的產品,關注過程勝過關注人,非常關注過程評估和過程改進,CMMI (Capability Maturity Model Integration,能力成熟度模型集成)就是其典型代表。
(4)重視質量管理:引入傳統的質量管理體系,包括以顧客為中心的全面質量管理和缺陷預防。
(5)階段性明確:需求評審通過才能開始設計;設計評審通過才能開始實施(編程),編程結束再進行測試等,瀑布模型是其典型代表模型。
(6)責任明確:角色定義清晰,分工細致。
(7)文檔規范化:強調規范的文檔,定義了大量的文檔模板。
(8)計劃性強:具有完整的計劃并嚴格控制變更。
(9)注重項目管理:圍繞項目開展管理工作,包括風險預防、里程碑控制、關鍵路徑法等。