NATO會議上首次提出了「軟件工程」這個名詞,但願用工程化的原則和方法來克服軟件危機。此後,人們開展了軟件開發模型、開發方法、工具與環境的研究,提出了瀑布模型、演化模型、螺旋模型和噴泉模型等開發模型,出現了面向數據流方法、面向數據結構方法、面向對象等開發方法,以及一批CASE(Computer Aided Software Engineering,計算機輔助的軟件工程)工具和環境。程序員
一.軟件生存週期數據庫
階段 | 任務 | 參加人員 | 產生的主要文檔 |
可行性分析與項目開發計劃 | 肯定軟件的開發目標和可行性 | 用戶、項目負責人和系統分析師 | 可行性分析報告和項目開發計劃 |
需求分析 | 軟件系統的功能、性能、數據和界面等要求,從而肯定系統的邏輯模型 | 用戶、項目負責人和系統分析師 | 軟件需求說明書 |
概要設計 | 設計軟件的結構,還要設計該項目的應用系統和整體數據結構和數據庫結構。 | 系統分析師和軟件設計師 | 概要設計說明書 |
詳細設計 | 把功能描述轉變爲精確地、結構化的過程描述。 | 軟件設計師和程序員 | 詳細設計文檔 |
編碼 | 把每一個模塊的控制結構寫成某種特定程序設計語言 | 程序員 | 源程序清單 |
測試 | 在測試用例的基礎上檢查軟件的每個部分 | 另外一部門的軟件設計師或系統分析師 | 軟件測試計劃數據結構 測試用例架構 軟件測試報告框架 |
維護 | 因爲各方面緣由,對軟件進行修改。 | —— | —— |
二.軟件過程ide
軟件開發中所遵循的路線圖稱爲「軟件過程」。工具
1.能力成熟度模型(CMM)性能
軟件過程能力成熟度模型(Capability Maturity Model of Software,CMM),其研究目的是提供一種評價軟件承接方能力的方法,測試
同時它能夠幫助軟件組織改進其軟件過程。優化
CMM將軟件過程分爲5個成熟度級別。
(1)初始級 雜亂無章,項目的成功完成徹底依賴我的的努力和英雄式核心人物的做用。
(2)可重複級 有必要的過程準則來重複之前在同類項目中的成功。
(3)已定義級 管理和工程兩方面的軟件過程已經文檔化、標準化。
(4)已管理級 制定了軟件過程和產品質量的詳細度量標準。
(5)優化級 增強了定量分析,經過反饋使過程能不斷持續改進。
2.能力成熟度模型(CMMI)
CMMI是若干過程模型的綜合和改進,是支持多個工程許學科和領域的、系統的、一致的過程改進框架。
CMMI提供兩種表示方法,階段式模型(關注組織的成熟度)和連續式模型(關注每一個過程域中的能力)。
3.統一過程(UP)
統一過程模型是一種「用例和風險驅動,以架構爲中心,迭代而且增量」的開發過程,由UML方法和工具支持。
初始階段:生命週期目標
精華階段:生命週期框架
構件階段:初試運做功能
移交階段:產品發佈