軟件工程的定義
軟件工程一直以來都缺乏一個統一的定義,很多學者、組織機構都分別給出了自己的定義:
BarryBoehm:運用現代科學技術知識來設計並構造計算機程序及為開發、運行和維護這些程序所必需的相關文件資料。
IEEE:在軟件工程術語彙編中的定義:軟件工程是:1.將系統化的、嚴格約束的、可量化的方法應用於軟件的開發、運行和維護,即將工程化應用於軟件;2.在1中所述方法的研究
FritzBauer:在NATO會議上給出的定義:建立並使用完善的工程化原則,以較經濟的手段獲得能在實際機器上有效運行的可靠軟件的一系列方法。
《計算機科學技術百科全書》:軟件工程是應用計算機科學、數學、邏輯學及管理科學等原理,開發軟件的工程。軟件工程借鑒傳統工程的原則、方法,以提高質量、降低成本和改進算法。其中,計算機科學、數學用於構建模型與算法,工程科學用於制定規範、設計范型(paradigm)、評估成本及確定權衡,管理科學用於計劃、資源、質量、成本等管理。
比較認可的一種定義認為:軟件工程是研究和應用如何以系統性的、規範化的、可定量的過程化方法去開發和維護軟件,以及如何把經過時間考驗而證明正確的管理技術和當前能夠得到的最好的技術方法結合起來。
ISO 9000對軟件工程過程的定義是:軟件工程過程是輸入轉化為輸出的一組彼此相關的資源和活動。
軟件工程的內涵
一、軟件工程過程是指為獲得軟件產品,在軟件工具的支持下由軟件工程師完成的一系列軟件工程活動,包括以下四個方面:
1、P(Plan)——軟件規格說明。規定軟件的功能及其運行時的限制。
2、D(DO)——軟件開發。開發出滿足規格說明的軟件。
3、C(Check)——軟件確認。確認開發的軟件能夠滿足用戶的需求。
4、A(Action)——軟件演進。軟件在運行過程中不斷改進以滿足客戶新的需求。
二、從軟件開發的觀點看,它就是使用適當的資源(包括人員,軟硬件資源,時間等),為開發軟件進行的一組開發活動,在活動結束時輸入(即用戶的需求)轉化為輸出(最終符合用戶需求的軟件產品)。
三個階段:定義階段:可行性研究初步項目計劃、需求分析;開發階段:概要設計、詳細設計、實現、測試;運行和維護階段:運行、維護、廢棄
原則:1、抽像;2、信息隱蔽;3、模塊化;4、局部化;5、確定性;6,一致性;7、完備性;8、可驗證性。