本書是全國教育科學“十一五”規(guī)劃課題研究成果,針對應用型本科計算機及相關專業(yè)而編寫,從實用的角度出發(fā),結合大量軟件項目的實例分析,以軟件的生存周期作為主線索,闡述軟件工程方法、應用技術和實用工具。本書主要包括軟件工程概述、軟件立項與合同、需求分析、系統(tǒng)設計、軟件實現(xiàn)、軟件測試、軟件發(fā)布與實施、軟件維護、軟件配置管理、軟件項目管理、軟件工程常用工具及開發(fā)實例,每章均配有習題,其中很多章節(jié)還安排了典型例題解析,最后一章是開發(fā)實例,可供學生練習使用。
本書注重基礎性、系統(tǒng)性、實用性和新穎性,內容深入淺出,可以作為計算機類或信息類相關專業(yè)的教材,也可供從事計算機工程與應用工作的科技工作者參考。
內容清晰:以軟件項目為對象,將軟件開發(fā)技術和軟件工程管理等方面的知識結合起來,介紹整個軟件生存周期的軟件工程活動。 實踐性強:融合實踐經驗和引用大量的典型案例,并對當前流行的和常用的軟件工具進行講解,通用且實踐性強! ⌒路f易讀:書中介紹的各種軟件工具都是最新版本的,內容新穎,圖文并茂,原理、方法與實例相結合,敘述通俗易懂。
第1章 軟件工程概述
1.1 軟件與軟件危機
1.1.1 軟件的定義與特點
1.1.2 軟件的發(fā)展
1.1.3 軟件危機
1.2 軟件工程簡述
1.2.1 軟件工程定義
1.2.2 軟件工程目標與原理
1.2.3 軟件工程的基本原則
1.2.4 軟件工程的內容
1.3 軟件開發(fā)方法和理論
1.3.1 軟件工程的3種開發(fā)方法
1.3.2 軟件工程的5個面向理論
1.4 軟件生存周期
1.4.1 軟件生存周期的定義
第1章 軟件工程概述
1.1 軟件與軟件危機
1.1.1 軟件的定義與特點
1.1.2 軟件的發(fā)展
1.1.3 軟件危機
1.2 軟件工程簡述
1.2.1 軟件工程定義
1.2.2 軟件工程目標與原理
1.2.3 軟件工程的基本原則
1.2.4 軟件工程的內容
1.3 軟件開發(fā)方法和理論
1.3.1 軟件工程的3種開發(fā)方法
1.3.2 軟件工程的5個面向理論
1.4 軟件生存周期
1.4.1 軟件生存周期的定義
1.4.2 軟件生存周期劃分階段的原則
1.4.3 軟件生存周期各階段的任務
1.5 軟件開發(fā)模型
1.5.1 瀑布模型
1.5.2 增量模型
1.5.3 螺旋模型
1.5.4 快速原型模型
1.5.5 噴泉模型
1.5.6 統(tǒng)一過程
1.6 典型例題解析
1.7 本章小結
1.8 習題
第2章 軟件立項與合同
2.1 軟件項目立項
2.1.1 軟件項目分類
2.1.2 項目立項
2.1.3 項目可行性分析
2.1.4 可行性研究報告的主要內容
2.1.5 召開項目啟動會議
2.2 系統(tǒng)流程圖
2.3 成本一效益分析
2.3.1 成本估算方法
2.3.2 效益分析
2.4 軟件投標及簽訂合同
2.5 制定項目任務書
2.6 軟件項目計劃
2.7 利用Project制定項目計劃
2.8 典型例題解析
2.9 本章小結
2.10 習題
第3章 需求分析
3.1 需求分析概述
3.1.1 需求分析的定義
3.1.2 需求分析的重要性
3.1.3 需求分析的困難
3.2 需求分析的任務、過程和主要步驟
3.2.1 需求分析的任務
3.2.2 需求分析的工作過程
3.2.3 需求分析的主要步驟
3.2.4 需求分析的原則
3.3 需求調查的開展
3.3.1 需求調查規(guī)程
3.3.2 需求調查的方法
3.4 需求分析方法
3.5 結構化分析方法及工具
3.5.1 自頂向下逐層分解
3.5.2 數(shù)據流圖
3.5.3 數(shù)據字典
3.5.4 加工邏輯說明
3.6 面向對象分析方法
3.6.1 面向對象的基本概念
3.6.2 面向對象分析過程
3.6.3 面向對象分析的3個模型
3.6.4 面向對象分析的5個層次
3.6.5 統(tǒng)一建模語言
3.7 軟件需求規(guī)格說明書
3.8 需求變更
3.8.1 需求變更的代價和風險
3.8.2 需求變更控制過程
3.8.3 需求變更控制報告
3.9 典型例題解析
3.10 本章小結
3.11 習題
第4章 系統(tǒng)設計
4.1 系統(tǒng)設計的基本概念
4.2 系統(tǒng)設計的目的和任務
4.2.1 概要設計的基本任務
4.2.2 詳細設計的基本任務
4.3 概要設計
4.3.1 概要設計原理
4.3.2 軟件結構優(yōu)化準則
4.3.3 軟件結構設計的圖形工具
4.3.4 面向數(shù)據流的設計方法
4.3.5 軟件體系結構設計
4.3.6 概要設計說明書
4.4 詳細設計
4.4.1 結構化程序設計方法
4.4.2 詳細設計描述工具
4.4.3 用戶界面設計
4.4.4 Jackson方法
4.4.5 詳細設計說明書
4.5 數(shù)據庫設計
4.5.1 數(shù)據庫設計的目標
4.5.2 數(shù)據庫設計的步驟
4.5.3 數(shù)據庫設計的內容
4.6 面向對象設計
4.7 典型例題解析
4.8 本章小結
4.9 習題
第5章 軟件實現(xiàn)
5.1 程序設計語言選擇
5.2 結構化程序設計
5.2.1 關于GOTO語句的爭論
5.2.2 結構化程序設計的原則
5.2.3 程序設計自頂向下、逐步求精
5.3 源程序設計風格
5.3.1 源程序文檔化
5.3.2 語句結構
5.3.3 數(shù)據說明
5.3.4 輸入和輸出
5.3.5 效率
5.4 程序復雜性度量
5.4.1 代碼行度量法
5.4.2 McCabe度量方法
5.4.3 Halstead度量方法
5.5 軟件實現(xiàn)文檔
5.6 典型例題解析
5.7 本章小結
5.8 習題
第6章 軟件測試
6.1 軟件測試目的和任務
6.2 軟件測試的原則
6.3 軟件測試的內容
6.4 軟件測試方法
6.4.1 靜態(tài)測試與動態(tài)測試
6.4.2 黑盒測試與白盒測試
6.5 軟件測試步驟
6.5.1 單元測試
6.5.2 集成測試
6.5.3 確認測試
6.6 測試案例分析
6.6.1 測試引言
……
第7章 軟件發(fā)布與實施
第8章 軟件維護
第9章 軟件配置管理
第10章 軟件項目管理
第11章 軟件工程常用工具
第12章 開發(fā)實例
附錄
參考文獻