第1章 軟件工程概述
1. 1 軟件的概念. 特點和分類
1. 1. 1 軟件的概念與特點
1. 1. 2 軟件的分類
1. 2 軟件的發(fā)展和軟件危機
1. 3 軟件工程過程和軟件生存期
1. 3. 1 軟件工程過程(software engineering process)
1. 3. 2 軟件生存期(life cycle)
1. 4 軟件生存期模型
1. 4. 1 瀑布模型(waterfall model)
1. 4. 2 演化模型(evolutional model)
1. 4. 3 螺旋模型(spiral model)
1. 4. 4 噴泉模型(water fountain model)
1. 4. 5 智能模型(intelligence model)
1. 5 軟件工程的基本目標
1. 5. 1 軟件工程的定義
1. 5. 2 軟件工程項目的基本目標
第2章 軟件需求分析
2. 1 軟件需求分析概述
2. 1. 1 軟件需求分析的任務
2. 1. 2 需求分析的過程
2. 1. 3 軟件需求分析的原則
2. 2 結構化分析方法
2. 2. 1 數據流圖(DFD, data flow diagram)
2. 2. 2 數據詞典(DD, data dictionary)
2. 2. 3 加工邏輯說明
2. 3 結構化數據系統開發(fā)方法(DSSD)--面向數據結構的分析方法之
2. 3. 1 Warnier圖
2. 3. 2 DSSD的分析方法
2. 4 Jackson系統開發(fā)方法(JSD)--面向數據結構的分析方法之二
2. 4. 1 進程模型
2. 4. 2 JSD方法的步驟
2. 4. 3 實體動作分析
2. 4. 4 實體結構分析
2. 4. 5 定義初始模型
2. 5 原型化方法(Prototyping)
2. 5. 1 軟件原型的分類
2. 5. 2 快速原型開發(fā)模型
2. 6 系統動態(tài)分析
2. 6. 1 狀態(tài)遷移圖
2. 6. 2 Petri網
2. 7 結構化分析與設計方法(SADT)
第3章 軟件設計
3. 1 軟件設計的目標和任務
3. 1. 1 軟件設計在開發(fā)階段中的重要性
3. 1. 2 軟件設計任務
3. 2 程序結構與程序結構圖
3. 2. 1 程序的樹狀結構和網狀結構
3. 2. 2 結構圖(structure chart, 簡稱SC)
3. 3 模塊的獨立性
3. 3. 1 模塊(module)
3. 3. 2 模塊獨立性(module independence)
3. 3. 3 耦合性(coupling)
3. 3. 4 內聚性(cohesion)
3. 3. 5 信息隱蔽
3. 4 結構化設計方法--面向數據流的設計方法
3. 4. 1 典型的系統結構形式
3. 4. 2 變換分析
3. 4. 3 事務分析
3. 4. 4 軟件模塊結構的改進
3. 5 結構化數據系統開發(fā)方法(DSSD)--面向數據結構的設計方法之一
3. 5. 1 一種簡化的設計方法
3. 5. 2 導出邏輯輸出結構
3. 5. 3 導出邏輯處理結構(LPS)
3. 6 Jackson系統開發(fā)方法(JSD)--面向數據結構的分析與設計方法之二
3. 6. 1 JSD功能描述
3. 6. 2 決定系統時間特性
3. 6. 3 實現
第4章 詳細設計描述的工具
4. 1 程序流程圖(Program flow chart)
4. 2 N-S圖
4. 3 PAD
4. 4 FDL
第5章 程序編碼
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 語句結構
5. 3. 4 輸入和輸出(I/O)
5. 4 程序復雜性度量
5. 4. 1 代碼行度量法
5. 4. 2 McCabe度量法
5. 4. 3 Halstead的軟件科學
第6章 面向對象技術
6. 1 面向對象的概念
6. 2 基于復用的開發(fā)過程
6. 2. 1 應用生存期
6. 2. 2 類生存期
6. 3 面向對象分析與模型化
6. 3. 1 面向對象分析(OOA, object-oriented analysis)
6. 3. 2 論域分析(domain analysis)
6. 3. 3 應用分析(application analysis)
6. 3. 4 對象模型技術(OMT, object model tech. )
6. 4 高層設計
6. 5 類的設計
6. 5. 1 通過復用設計類
6. 5. 2 類設計的方針
6. 5. 3 類設計的過程
6. 6 Coad與Yourdon面向對象分析與設計技術
6. 6. 1 面向對象的分析
6. 6. 2 面向對象的設計
6. 7 Booch的方法
6. 7. 1 Booch方法的設計過程
6. 7. 2 Booch方法的基本的模型
6. 8 面向對象設計的實現
6. 8. 1 類的實現
6. 8. 2 系統的實現
第7章 軟件測試
7. 1 軟件測試的基礎
7. 1. 1 什么是軟件測試
7. 1. 2 軟件測試的目的和原則
7. 1. 3 軟件測試的對象
7. 1. 4 測試信息流
7. 1. 5 測試與軟件開發(fā)各階段的關系
7. 2 測試用例設計
7. 3 白盒測試的測試用例設計
7. 3. 1 邏輯覆蓋
7. 3. 2 語句覆蓋
7. 3. 3 判定覆蓋
7. 3. 4 條件覆蓋
7. 3. 5 判定-條件覆蓋
7. 3. 6 條件組合覆蓋
7. 3. 7 路徑測試
7. 4 黑盒測試的測試用例設計
7. 4. 1 等價類劃分
7. 4. 2 邊界值分析
7. 4. 3 錯誤推測法
7. 4. 4 因果圖
7. 5 軟件測試的策略
7. 5. 1 單元測試(unit testing)
7. 5. 2 組裝測試(integrated testing)
7. 5. 3 確認測試(validation testing)
7. 5. 4 系統測試(system testing)
7. 5. 5 測試的步驟及相應的測試種類
7. 6 人工測試
7. 6. 1 靜態(tài)分析
7. 6. 2 人工測試
7. 7 調試(Debug, 排錯)
7. 7. 1 調試的步驟
7. 7. 2 幾種主要的調試方法
7. 7. 3 調試原則
第8章 軟件維護
8. 1 軟件維護的概念
8. 1. 1 軟件維護的定義
8. 1. 2 影響維護工作量的因素
8. 1. 3 軟件維護的策略
8. 2 軟件維護活動
8. 2. 1 軟件維護申請報告
8. 2. 2 軟件維護工作流程
8. 2. 3 維護檔案記錄
8. 2. 4 維護評價
8. 3 程序修改的步驟及修改的副作用
8. 3. 1 分析和理解程序
8. 3. 2 修改程序
8. 3. 3 重新驗證程序
8. 4 軟件可維護性
8. 4. 1 軟件可維護性的定義
8. 4. 2 可維護性的度量
8. 5 提高可維護性的方法
8. 5. 1 建立明確的軟件質量目標和優(yōu)先級
8. 5. 2 使用提高軟件質量的技術和工具
8. 5. 3 進行明確的質量保證審查
8. 5. 4 選擇可維護的程序設計語言
8. 5. 5 改進程序的文檔
8. 6 逆向工程和再工程
第9章 軟件工程標準化與軟件文檔
9. 1 軟件工程標準化
9. 1. 1 什么是軟件工程標準
9. 1. 2 軟件工程標準化的意義
9. 1. 3 軟件工程標準的層次
9. 1. 4 中國的軟件工程標準化工作
9. 2 軟件質量認證
9. 2. 1 ISO 9000系列標準及軟件質量認證
9. 2. 2 ISO 9000系列標準的內容
9. 2. 3 制定與實施ISO 9000系列標準
9. 2. 4 ISO 9000-3的要點
9. 3 在開發(fā)機構中推行軟件工程標準化
9. 4 軟件文檔的作用與分類
9. 4. 1 軟件文檔的作用和分類
9. 4. 2 對文檔編制的質量要求
9. 4. 3 文檔的管理和維護
9. 5 軟件過程成熟度模型
9. 5. 1 軟件機構的成熟性
9. 5. 2 軟件過程成熟度模型
9. 5. 3 關鍵過程領域
9. 5. 4 成熟度提問單
第10章 軟件管理
10. 1 軟件生產率和質量的度量
10. 1. 1 軟件度量
10. 1. 2 面向規(guī)模的度量
10. 1. 3 面向功能的度量
10. 1. 4 軟件質量的度量
10. 1. 5 影響軟件生產率的因素
10. 2 軟件項目的估算
10. 2. 1 對估算的看法
10. 2. 2 軟件項目計劃的目標
10. 2. 3 軟件的范圍
10. 2. 4 軟件開發(fā)中的資源
10. 2. 5 軟件項目估算
10. 2. 6 分解技術
10. 3 軟件開發(fā)成本估算
10. 3. 1 軟件開發(fā)成本估算方法
10. 3. 2 專家判定技術
10. 3. 3 軟件開發(fā)成本估算的經驗模型
10. 4 軟件項目進度安排
10. 4. 1 軟件開發(fā)小組人數與軟件生產率
10. 4. 2 任務的確定與并行性
10. 4. 3 制定開發(fā)進度計劃
10. 4. 4 進度安排的方法
10. 4. 5 項目的追蹤和控制
10. 5 軟件項目的組織與計劃
10. 5. 1 軟件項目管理的特點
10. 5. 2 制定計劃
10. 5. 3 軟件項目組織的建立
10. 5. 4 人員配備
10. 5. 5 指導與檢驗
10. 6 軟件配置管理
10. 6. 1 軟件配置管理
10. 6. 2 配置標識
10. 6. 3 版本控制
10. 6. 4 變更控制
10. 6. 5 配置狀態(tài)報告(configuration status reporting, CSR)
10. 6. 6 配置審計(configuration audit)
附錄 軟件產品開發(fā)文檔編寫指南
參考文獻