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