軟件
1983年IEEE這么定義:軟件是計算機程序、方法、規則、相關的文檔資料和在計算機上運行程序所必需的數據。
軟件工程
1983年IEEE這么定義:軟件工程是軟件開發、運行、維護和修復軟件的系統方法。
1993年IEEE這么定義:軟件工程是:1)把系統化的、規范的、可度量的途徑應用於軟件開發、運行和維護的過程,也就是把工程化應用於軟件中;
2)研究1)中提到的途徑。
軟件危機
指在計算機軟件的開發和維護過程中所遇到的一系列嚴重問題。
產生原因:一是和軟件本身特點有關,另一方面也和軟件開發與維護的方法不正確有關。
解決途徑:從技術(方法和工具)上和管理上努力。
軟件工程七大原理
1、用分階段的生命周期計划嚴格管理
2、堅持進行階段評審
3、實行嚴格的產品控制
4、采用現代程序設計技術
5、結果應能清楚地審查
6、開發小組的人員應該少而精
7、承認不斷改進軟件實踐的必要性
軟件工程三要素
方法、工具、過程
使用最廣泛的軟件工程方法學
傳統方法學
又稱生命周期方法學或結構化范型(范型與方法學在軟件工程同義)。
特征:要等到前一階段完成,后一階段才開始。
缺點:當軟件的需求隨着時間的變化時,不適合用此范型,往往不成功。這種方法數據和方法想脫離。
面向對象方法學
又稱面向對象范型
特征:面向對象方法=對象+類+繼承+用消息通信
擴展:如果只有對象和消息,只能說是基於對象的方法(如javascript),如果只有對象、類、消息只能說是基於類的方法,當滿足公式時才能說是面向對象的方法。
優點:將數據和行為結合在了一起。
擴展
軟件開發設計過程從抽象層次上分析,往往是從行為域開始,以低層的結構域(結構化方法)結束。
