軟件工程的概念
背景
爲了克服軟件危機,1968年10月在北大西洋公約組織(NATO)召開的計算機科學會議上,Fritz Bauer首次提出「軟件工程」的概念,試圖將工程化方法應用於軟件開發。
定義
軟件工程是指導計算機軟件開發和維護的工程學科。採用工程的概念、原理、技術和方法來開發與維護軟件,把通過時間考驗而證實正確的管理技術和當前可以獲得的最好的技術方法結合起來,以經濟地開發出高質量的軟件並有效地維護它。
目標
軟件工程的目標是運用先進的軟件開發技術和管理方法來提升軟件的質量和生產率,也就是要以較短的週期、較低的成本生產出高質量的軟件產品,並最終實現軟件的工業化生產。
軟件質量的特性
軟件的質量能夠用功能性、可靠性、可以使用性、效率、可維護性、可移植性6個特性來衡量。
功能性:是指軟件所實現的功能達到它的設計規範和知足用戶須要的程度。
可靠性:是指在規定的時間和條件下,軟件可以正常維持其工做的能力。
可以使用性:是指爲了使用該軟件所須要的能力。
效率:是指在規定的條件下用軟件實現某種功能所須要的計算機資源的有效性。
可維護性:是指當環境改變或者軟件運行發生故障時,爲了使其恢復正常運行所作努力的程度。
可移植性:是指軟件從某一環境轉移到另外一環境時所作努力的程度。
軟件工程的基本原理
按軟件生存週期分階段制訂計劃並認真實施
堅持進行階段評審
堅持嚴格的產品控制
使用現代化程序設計技術
明確責任
用人少而精
不斷改進開發過程
軟件生命週期
如同任何其餘事物同樣,軟件也有一個孕育、誕生、成長、成熟和衰亡的生存過程,咱們稱這個爲軟件生命週期或軟件生存期。
軟件生存期由軟件定義、軟件開發和運行維護3個時期組成,每一個時期又可分爲若干個階段。
軟件定義階段的的主要任務是解決「作什麼」的問題,即肯定工程的總目標和可行性;導出實現工程目標應使用的策略及系統必須完成的功能;估計完成工程須要的資源和成本;制訂工程進度表。該時期的工做也就是常說的系統分析,由系統分析員完成。它一般又被分爲3個階段:問題分析,可行性研究和需求分析。
軟件開發時期的主要任務是解決「如何作」的問題,即具體設計和實如今前一個時期定義的軟件,一般由概要設計,詳細設計,編碼和測試4個階段組成。
軟件運行維護時期的主要任務是使軟件持久地知足用戶的需求,一般有4類維護轟動:
改正性維護,也就是診斷和改正在使用過程當中發現的軟件錯誤;
適合性維護,即修改軟件以適應環境的變化;
完善性維護,即根據用戶的要求改進或擴充軟件,使它更完善;
預防性維護,即修改軟件爲未來的維護活動預先作準備。
測試