專題一 軟件工程課程概述
1.1 軟件與軟件工程的概念
- 軟件的定義:
軟件 = 程序 + 數據 + 文檔
– 程序:按事先設計的功能和性能需求執行的指令序列
– 數據:是程序能正常操縱信息的數據結構
– 文檔:與程序開發,維護和使用有關的圖文材料
- 軟件的特徵:
– 軟件是開發的或者工程化的,並不是製造的
– 軟件開發環境對產品影響較大
– 軟件測試困難
– 軟件的生產是簡單的拷貝
– 軟件的開發時間難以估計
– 軟件不會磨損和老化
– 軟件會多次修改
– 軟件的開發進度幾乎沒有客觀衡量標準
– 軟件維護易產生新的問題
- 軟件的分類:(按服務對象分類:項目軟件&產品軟件)
– 系統軟件
– 應用軟件
– 支撐軟件
- 軟件工程的定義:
將系統的,規範的,可量化的方法應用於軟件的開發,運行和維護的過程
– 軟件工程是一個學科交叉的綜合性學科
1.2 軟件過程模型
– 軟件過程的定義:
是在工作產品構建過程中,所需完成的工作活動,動作和任務的集合
– 軟件過程模型:
- 是軟件開發全部過程,活動和任務結構框架
- 它能直觀表達軟件開發全過程,明確規定要完成的活動,任務和開發策略
– 軟件模型分類:
– 瀑布模型(V模型,瀑布模型的一個變種)
– 原型模型
– 螺旋模型
– 增量過程模型
– 基於構件的過程模型
– 通用軟件過程模型
– 選擇軟件過程模型的方法:
- 前期需求明確的情況下,儘量採用瀑布模型
- 用戶無系統使用經驗,需求分析人員技能不足的情況下,儘量採用原型模型
- 不確定因素很多,很多東西無法提前計劃的情況下,儘量採用增量模型或者螺旋模型
- 需求不穩定/資金成本無法一次到位,採用增量模型
- 全新系統的開發必須在總體設計完成後再開始增量/並行
1.3 軟件工程知識體系
– 軟件工程知識體系
– 軟件工程知識體系各主題之間的關聯