1983年IEEE這麼定義:軟件是計算機程序、方法、規則、相關的文檔資料和在計算機上運行程序所必需的數據。javascript
1983年IEEE這麼定義:軟件工程是軟件開發、運行、維護和修復軟件的系統方法。java
1993年IEEE這麼定義:軟件工程是:1)把系統化的、規範的、可度量的途徑應用於軟件開發、運行和維護的過程,也就是把工程化應用於軟件中;工具
2)研究1)中提到的途徑。spa
指在計算機軟件的開發和維護過程當中所遇到的一系列嚴重問題。設計
產生緣由:一是和軟件自己特色有關,另外一方面也和軟件開發與維護的方法不正確有關。對象
解決途徑:從技術(方法和工具)上和管理上努力。繼承
一、用分階段的生命週期計劃嚴格管理生命週期
二、堅持進行階段評審ip
三、實行嚴格的產品控制開發
四、採用現代程序設計技術
五、結果應能清楚地審查
六、開發小組的人員應該少而精
七、認可不斷改進軟件實踐的必要性
方法、工具、過程
又稱生命週期方法學或結構化範型(範型與方法學在軟件工程同義)。
特徵:要等到前一階段完成,後一階段纔開始。
缺點:當軟件的需求隨着時間的變化時,不適合用此範型,每每不成功。這種方法數據和方法想脫離。
又稱面向對象範型
特徵:面向對象方法=對象+類+繼承+用消息通訊
擴展:若是隻有對象和消息,只能說是基於對象的方法(如javascript),若是隻有對象、類、消息只能說是基於類的方法,當知足公式時才能說是面向對象的方法。
優勢:將數據和行爲結合在了一塊兒。
軟件開發設計過程從抽象層次上分析,每每是從行爲域開始,以低層的結構域(結構化方法)結束。