本書是《軟件工程(第4版)》的配套教材。全書共分為16章。每章由3部分組成:第1部分簡明扼要地復習每一章的重點內容;第2部分給出原教材每一章后的習題;第3部分是習題解析,不是簡單地給出答案,而是仔細分析題目,講解解題思路,從而有助于讀者舉一反三,學會用軟件工程方法學分析問題和解決問題。
本書還提供了3個附錄,分別給出了綜合應用題解析、課程設計指導和模擬試題與參考答案。
本書既可以與《軟件工程(第4版)》配合使用,也可以供學習軟件工程的讀者單獨使用(包括參加計算機等級考試或相關專業自學考試),以加深對所學內容的理解并檢驗學習效果。
1.軟件工程課程設計可以使用。 2.本書附錄將給出幾套模擬試題,檢驗學習效果。
第1章 軟件工程概述
1.1 軟件危機與軟件工程的起源
1.1.1 軟件危機的出現
1.1.2 軟件危機介紹
1.1.3 產生軟件危機的原因
1.1.4 消除軟件危機的途徑
1.2 軟件工程
1.2.1 什么是軟件工程
1.2.2 軟件工程的基本原理
1.3 軟件工程包含的領域
習題
習題解析
第2章 軟件過程
2.1 軟件生命周期的基本任務
2.2 瀑布模型 第1章 軟件工程概述
1.1 軟件危機與軟件工程的起源
1.1.1 軟件危機的出現
1.1.2 軟件危機介紹
1.1.3 產生軟件危機的原因
1.1.4 消除軟件危機的途徑
1.2 軟件工程
1.2.1 什么是軟件工程
1.2.2 軟件工程的基本原理
1.3 軟件工程包含的領域
習題
習題解析
第2章 軟件過程
2.1 軟件生命周期的基本任務
2.2 瀑布模型
2.3 快速原型模型
2.4 增量模型
2.5 螺旋模型
2.6 噴泉模型
2.7 Rational統一過程
2.7.1 最佳實踐
2.7.2 RUP的10個要素
2.7.3 RUP生命周期
2.8 敏捷過程與極限編程
2.8.1 敏捷過程概述
2.8.2 極限編程
2.9 能力成熟度模型
2.9.1 能力成熟度模型的結構
2.9.2 能力成熟度等級
2.9.3 關鍵過程域
2.9.4 應用CMM
習題
習題解析
第3章 結構化分析
3.1 概述
3.2 與用戶溝通的方法
3.2.1 訪談
3.2.2 簡易的應用規格說明技術
3.2.3 軟件原型
3.3 分析建模與規格說明
3.3.1 分析建模
3.3.2 軟件需求規格說明
3.4 “實體-關系”圖
3.5 數據流圖
3.6 狀態轉換圖
3.6.1 狀態
3.6.2 事件
3.6.3 符號
3.7 數據字典
3.8 結構化分析的實際應用
3.8.1 問題陳述
3.8.2 問題定義
3.8.3 可行性研究
3.8.4 需求分析
習題
習題解析
第4章 結構化設計
4.1 結構化設計與結構化分析的關系
4.2 軟件設計的概念和原理
4.2.1 模塊化
4.2.2 抽象
4.2.3 逐步求精
4.2.4 信息隱藏
4.3 模塊獨立
4.3.1 耦合
4.3.2 內聚
4.4 啟發規則
4.5 表示軟件結構的圖形工具
4.5.1 層次圖和HIPO圖
4.5.2 結構圖
4.6 面向數據流的設計方法
4.6.1 概念
4.6.2 變換分析
4.6.3 事務分析
4.6.4 設計優化
4.7 人-機界面設計
4.7.1 人-機界面設計問題
4.7.2 人-機界面設計過程
4.7.3 界面設計指南
4.8 過程設計
4.9 過程設計的工具
4.9.1 程序流程圖
4.9.2 盒圖(N-S圖)
4.9.3 PAD圖
4.9.4 判定表
4.9.5 判定樹
4.9.6 過程設計語言
4.10 面向數據結構的設計方法
習題
習題解析
第5章 結構化實現
5.1 編碼
5.1.1 選擇程序設計語言
5.1.2 編碼風格
5.2 軟件測試基礎
5.2.1 測試目標
5.2.2 黑盒測試和白盒測試
5.2.3 測試準則
5.2.4 流圖
5.3 白盒測試技術
5.3.1 邏輯覆蓋
5.3.2 控制結構測試
5.4 黑盒測試技術
5.4.1 等價劃分
5.4.2 邊界值分析
5.4.3 錯誤推測
5.5 測試策略
5.5.1 測試步驟
5.5.2 單元測試
5.5.3 集成測試
5.5.4 確認測試
5.6 調試
5.6.1 調試過程
5.6.2 調試途徑
5.7 軟件可靠性
5.7.1 基本概念
5.7.2 估算平均無故障時間的方法
習題
習題解析
第6章 面向對象方法學導論
6.1 面向過程與面向對象程序設計
6.1.1 用對象分解取代功能分解
6.1.2 設計類等級
6.1.3 定義屬性和服務
6.2 面向對象方法學概述
6.2.1 面向對象方法學的要點
6.2.2 面向對象的軟件過程
6.3 面向對象方法學的主要優點
6.4 面向對象的概念
6.4.1 對象
6.4.2 其他概念
6.5 面向對象建模
6.6 對象模型
6.6.1 表示類的符號
6.6.2 表示關系的符號
6.7 動態模型
6.8 功能模型
6.9 3種模型之間的關系
習題
習題解析
第7章 面向對象分析
7.1 分析過程
7.1.1 概述
7.1.2 3個子模型與5個層次
7.2 需求陳述
7.3 建立對象模型
7.3.1 確定類與對象
7.3.2 確定關聯
7.3.3 劃分主題
7.3.4 確定屬性
7.3.5 識別繼承關系
7.3.6 反復修改
7.4 建立動態模型
7.4.1 編寫腳本
7.4.2 設想用戶界面
7.4.3 畫事件跟蹤圖
7.4.4 畫狀態圖
7.4.5 審查動態模型
7.5 建立功能模型
7.6 定義服務
習題
習題解析
第8章 面向對象設計
8.1 面向對象設計的準則
8.2 啟發規則
8.3 系統分解
8.3.1 子系統之間的兩種交互方式
8.3.2 組織系統的兩種方案
8.3.3 設計系統的拓撲結構
8.4 設計問題域子系統
8.5 設計人-機交互子系統
8.5.1 設計人-機交互界面的準則
8.5.2 設計人-機交互子系統的策略
8.6 設計任務管理子系統
8.6.1 分析并發性
8.6.2 設計任務管理子系統
8.7 設計數據管理子系統
8.7.1 選擇數據存儲管理模式
8.7.2 設計數據管理子系統
8.8 設計類中的服務
8.8.1 確定類中應有的服務
8.8.2 設計實現服務的方法
8.9 設計關聯
8.10 設計優化
8.10.1 確定優先級
8.10.2 提高效率的幾項技術
8.10.3 調整繼承關系
習題
習題解析
第9章 面向對象實現
9.1 程序設計語言
9.1.1 面向對象語言的優點
9.1.2 面向對象語言的技術特點
9.1.3 選擇面向對象語言
9.2 程序設計風格
9.2.1 提高可重用性
9.2.2 提高可擴充性
9.2.3 提高健壯性
9.3 測試策略
9.3.1 面向對象的單元測試
9.3.2 面向對象的集成測試
9.3.3 面向對象的確認測試
9.4 設計測試用例
9.4.1 測試類的方法
9.4.2 集成測試方法
習題
習題解析
第10章 統一建模語言
10.1 概述
10.1.1 UML的系統結構
10.1.2 UML的圖
10.1.3 UML的應用領域
10.2 靜態建模機制
10.2.1 用例
10.2.2 類圖、對象圖和包
10.3 動態建模機制
10.3.1 消息
10.3.2 狀態圖
10.3.3 順序圖
10.3.4 協作圖
10.3.5 活動圖
10.4 描述物理架構的機制
10.4.1 邏輯架構和物理架構
10.4.2 構件圖
10.4.3 部署圖
10.5 使用和擴展UML
10.5.1 使用UML的準則
10.5.2 擴展UML的機制
習題
習題解析
第11章 計劃
11.1 度量軟件規模
11.1.1 代碼行技術
11.1.2 功能點技術
11.2 工作量估算
11.2.1 靜態單變量模型
11.2.2 動態多變量模型
11.2.3 COCOMO2模型
11.3 進度計劃
11.3.1 基本原則
11.3.2 估算軟件開發時間
11.3.3 Gantt圖
11.3.4 工程網絡
11.3.5 估算進度
11.3.6 關鍵路徑
11.3.7 機動時間
習題
習題解析
第12章 組織
12.1 民主制程序員組
12.2 主程序員組
12.3 現代程序員組
12.4 軟件項目組
12.4.1 3種組織方式
12.4.2 4種組織范型
習題
習題解析
第13章 控制
13.1 風險管理
13.1.1 軟件風險分類
13.1.2 風險識別
13.1.3 風險預測
13.1.4 處理風險的策略
13.2 質量保證
13.2.1 軟件質量
13.2.2 軟件質量保證措施
13.3 配置管理
13.3.1 軟件配置
13.3.2 軟件配置管理過程
習題
習題解析
第14章 軟件維護及軟件文檔
14.1 軟件維護
14.1.1 軟件維護的過程
14.1.2 軟件維護的分類
14.1.3 軟件的可維護性
14.1.4 軟件維護的副作用
14.2 軟件文檔
習題
習題解析
第15章 形式化方法
15.1 應用形式化方法的準則
15.2 有窮狀態機
15.2.1 基本概念
15.2.2 評論
15.3 Petri網
15.4 Z語言
15.4.1 簡介
15.4.2 評論
習題
習題解析
第16章 軟件重用
16.1 可重用的軟件成分
16.2 軟件重用過程
16.2.1 構件組裝模型
16.2.2 類構件
16.2.3 重用過程模型
16.3 領域工程
16.3.1 分析過程
16.3.2 領域特征
16.3.3 結構建模和結構點
16.4 開發可重用的構件
16.4.1 為了重用的分析與設計
16.4.2 基于構件的開發
16.5 分類和檢索構件
16.5.1 描述可重用的構件
16.5.2 重用環境
16.6 軟件重用的效益
習題
習題解析
附錄A 綜合應用題解析
附錄B 課程設計指導
附錄C 模擬考試題與參考答案
試卷(一)
試卷(一)參考答案
試卷(二)
試卷(二)參考答案
試卷(三)
試卷(三)參考答案
參考文獻