第一章 緒論
1.1 形成與發(fā)展
1.1.1 程序設計方法學
1.1.2 軟件工程
1.1.3 軟件方法學
1.1.4 結構化方法
1.1.5 面向對象方法
1.2 軟件生存周期
1.2.1 五個軟件時期的劃分
1.2.2 軟件定義與計劃
1.2.3 軟件分析
1.2.4 軟件設計
1.2.5 軟件實現
1.2.6 軟件運行與維護
1.3 軟件開發(fā)過程模型
1.3.1 瀑布模型
1.3.2 原型模型
1.3.3 其它模型
第二章 結構化程序及構造方法
2.1 結構化程序
2.1.1 結構化程序設計
2.1.2 關于GOTO
2.1.3 控制結構
2.1.4 正規(guī)程序
2.1.5 基本程序
2.1.6 結構化程序
2.2 結構化定理
2.2.1 程序函數
2.2.2 結構化定理
2.2.3 非結構化程序到結構化程序轉換
2.3 逐步求精方法
2.3.1 什么是逐步求精
2.3.2 逐步求精技術
2.4 程序形式推導技術
2.4.1 語句的HOARE表示
2.4.2 謂詞變換器
2.4.3 程序的形式語義
2.4.4 面向目標的推導
2.4.5 不變式推導
2.5 程序變換技術
2.5.1 程序變換的基本思想
2.5.2 程序變換的基本規(guī)則
2.5.3 程序的生成方法
2.5.4 遞歸消去法
第三章 結構化分析與設計
3.1 結構化分析與設計的一般步驟
3.2 數據流分析技術
3.2.1 數據流分析
3.2.2 數據流圖
3.2.3 數據字典
3.3 邏輯分析工具
3.3.1 結構化語言
3.3.2 判定樹
3.3.3 判定表
3.4 結構化設計的圖表工具
3.4.1 IPO圖
3.4.2 結構圖
3.4.3 程序流程圖
3.4.4 盒圖
3.4.5 PAD圖
3.4.6 過程設計語言PDL
3.5 面向數據流的設計
3.5.1 變換流與事務流
3.5.2 設計步驟
3.5.3 變換設計
3.5.4 事務設計
3.6 面向數據結構的設計
3.6.1 Jackson圖
3.6.2 Jackson方法
3.6.3 設計實例
3.7 模塊化技術
3.7.1 模塊與模塊化
3.7.2 模塊的特征與獨立性
3.7.3 模塊的藕合
3.7.4 模塊的內聚
3.7.5 模塊設計一般準則
3.7.6 模塊的作用域與控制域
3.8 應用實踐
第四章 程序測試與正確性證明
4.1 程序正確性定義
4.2 HOARE公理化方法
4.2.1 HOARE基本法則
4.2.2 簡單語句證明法則
4.2.3 循環(huán)語句證明法則
4.3 FLOYD方法
4.3.1 不變式斷言法
4.3.2 良序集法
4.4 遞歸程序正確性證明
4.4.1 遞歸與迭代
4.4.2 遞歸的程序模式
4.4.3 遞歸計算規(guī)則
4.4.4 結構歸納法
4.4.5 良好歸納法
4.5 測試的基本功概念
4.5.1 軟件測試
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.7.4 邊界值分析
4.8 調試
4.8.1 靜態(tài)查找
4.8.2 消去法
4.8.3 回溯法
第五章 面向對象的概念
5.1 對象與類
5.1.1 對象
5.1.2 消息與方法
5.1.3 類
5.2 基本特征
5.2.1 協(xié)議與封裝
5.2.2 繼承性
5.2.3 多態(tài)性與動態(tài)聯編
5.3 軟件生存周期與開發(fā)模型
5.3.1 面向對象的軟件生存周期
5.3.2 面向對象方法與快速原型技術
第六章 面向對象分析與設計
6.1 前言
6.1.1 OOA形成
6.1.2 多層次多組成模型
6.1.3 OOA步驟
6.2 標識類/對象
6.2.1 為什么要標識類型/對象
6.2.2 如何確定對象
6.2.3 實例
6.3 標識結構
6.3.1 什么是結構
6.3.2 為什么要定義結構
6.3.3 如何定義結構
6.4 標識主題
6.4.1 什么是主題
6.4.2 為什么要引入主題
6.4.3 如何定義主題
6.5 定義屬性
6.5.1 為什么要定義屬性
6.5.2 如何定義屬性
6.6 定義服務
6.6.1 什么是服務
6.6.2 如何定義服務
6.6.3 表示所需要的服務
6.6.4 標識消息連接
6.6.5 說明服務
6.7 面向對象設計
6.7.1 轉向面對象的設計
6.7.2 OOD準則與步驟
6.7.3 匯集OOA文檔資料
第七章 面向對象程序設計
7.1 前言
7.1.1 OOD與實現語言
7.1.2 面向對象程序設計語言
7.1.3 面向對象程序的特點
7.2 Smalltalk面向對象編程
7.2.1 對象、類、實例及繼承性
7.2.2 變量名與文字句法
7.2.3 消息表達式
7.2.4 塊表達式
7.2.5 基本控制結構
7.2.6 方法
7.3 C++面向對象編程
7.3.1 C++面向對象概念
7.3.2 C++類
7.3.3 成員函數
7.3.4 對象
7.3.5 構造函數與析構函數
7.3.6 繼承性與派生類
7.3.7 多態(tài)性與虛擬函數
7.3.8 友元
7.3.9 一個例子
第八章 軟件質量與維護
8.1 軟件質量
8.1.1 軟件質量標準
8.1.2 軟件質量保證
8.2 軟件質量度量模型
8.2.1 Boehm模型
8.2.2 McCall模型
8.2.3 ISO建議模型
8.2.4 軟件質量模型
8.3 軟件質量評價方法
8.3.1 McCabe軟件復雜性度量
8.3.2 Halstad軟件復雜性度量方法
8.3.3 軟件可靠性度量方法
8.4 軟件維護的概念
8.4.1 軟件維護的類型
8.4.2 軟件的可維護性
8.4.3 軟件維護工作量模型
8.4.4 軟件維護的典型問題
8.4.5 維護的代價與副作用
8.5 維護過程與方法
8.5.1 維護組織
8.5.2 維護模型
8.5.3 維護報告
8.5.4 維護的記錄與評價
8.6 面向對象軟件質量與維護
8.6.1 軟件質量保證和可維護性
8.6.2 面向對象軟件質量與維護的新課題
參考文獻