目 錄
《計算機等級考試教程》再版序言
前言
第1篇 軟件工程原理
第1章 軟件工程概論
1.1 軟件工程產生的背景與軟件危機
1.1.1 軟件開發(fā)技術的發(fā)展時期
1.1.2 軟件危機
1.1.3 軟件工程
1.2 軟件生存周期
1.2.1 軟件生存周期的概念
1.2.2 軟件開發(fā)的瀑布模型
1.3 軟件質量評價
習題
第2章 可行性研究
2.1 可行性研究的任務
2.2 可行性研究的步驟
2.3 系統(tǒng)流程圖
習題
第3章 需求分析
3.1 需求分析的基本概念
3.1.1 需求分析的任務
3.1.2 需求分析步驟
3.1.3 軟件需求規(guī)格說明書
3.2 結構化分析(SA)方法
3.2.1 自頂向下逐層分解
3.2.2 描述方式
3.2.3 SA導出邏輯模型的步驟
3.3 數據流圖
3.3.1 數據流圖的成分和對系統(tǒng)的分解
3.3.2 怎樣畫數據流圖
3.4 數據詞典
3.4.1 數據詞典的內容
3.4.2 數據的定義方法
3.4.3 數據詞典的實現(xiàn)和使用
3.5 數據處理的描述方法
3.5.1 數據處理的描述
3.5.2 結構化語言
3.5.3 判定表
3.5.4 判定樹
3.5.5 三種描述方法的比較
3.6 需求分析階段的其它工作
習題
第4章 總體設計
4.1 引言
4.2 軟件工程學的基本原則
4.2.1 模塊化
4.2.2 抽象
4.2.3 信息隱藏
4.2.4 信息局部化
4.2.5 其它原則
4.3 模塊獨立性的度量
4.3.1 模塊獨立性的概念
4.3.2 模塊獨立性的度量之一:耦合性
4.3.3 模塊獨立性的度量之二:內聚性
4.3.4 耦合、內聚與模塊獨立性關系
4.4 軟件結構的優(yōu)化準則
4.5 結構設計中的圖形工具
4.5.1 層次圖和HIPO圖
4.5.2 結構圖
4.6 面向數據流的設計方法
4.6.1 面向數據流設計方法的基本概念
4.6.2 變換型數據流圖到軟件結構的設計
4.6.3 事務型數據流圖到軟件結構的設計
4.6.4 綜合型數據流圖到軟件結構的設計
4.6.5 導出軟件初始結構中的有關問題
4.6.6 設計優(yōu)化
4.7 總體設計的其它工作
習題
第5章 詳細設計
5.1 詳細設計的概念
5.2 結構化程序設計(SP)方法
5.3 詳細設計的描述方法
5.3.1 程序流程圖
5.3.2 盒圖(N-S圖)
5.3.3 問題分析圖(PAD)
5.3.4 把非結構化程序變換為結構化程序的方法
5.3.5 過程設計語言(PDL)
5.3.6 模塊開發(fā)卷宗
5.4 Jackson程序設計方法
5.4.1 Jackson方法的設計步驟
5.4.2 Jackson方法的三種基本結構和圖式
5.4.3 由數據結構的對應關系導出程序結構
5.4.4 列出和分配操作
5.4.5 用偽碼表示程序
5.4.6 結構沖突
5.5 Warnier程序設計方法
5.5.1 Warnier圖
5.5.2 Warnier方法
習題
第6章 編碼
6.1 引言
6.2 程序語言的選擇
6.3 程序設計風格
6.3.1 程序內部的文檔
6.3.2 變量命名與匈牙利命名規(guī)則
6.3.3 數據說明
6.3.4 語句構造
6.3.5 輸入/輸出
6.3.6 效率
習題
第7章 測試
7.1 測試的基本概念
7.1.1 什么是軟件測試
7.1.2 測試的基本原則
7.1.3 軟件測試步驟及與各開發(fā)階段的關系
7.1.4 軟件測試信息流
7.2 軟件測試策略
7.2.1 靜態(tài)測試方法與動態(tài)測試方法
7.2.2 白盒測試與黑盒測試
7.2.3 窮舉測試
7.2.4 人工測試
7.3 白盒測試技術
7.3.1邏輯覆蓋
7.3.2最少測試用例數計算
7.3.3測試覆蓋準則
7.3.4符號測試
7.4 黑盒測試技術
7.4.1 等價類劃分
7.4.2 邊界值分析
7.4.3 因果圖
7.4.4 錯誤推測和判定表驅動測試
7.4.5 綜合策略
7.5 單元測試
7.6 集成測試
7.6.1 自頂向下結合
7.6.2 自底向上結合
7.7 驗收測試
7.7.1 驗收測試標準
7.7.2 軟件配置復查
7.7.3 Alpha(a)和Beta(β)測試
7.8 系統(tǒng)測試
7.9 調試
7.9.1 調試方法
7.9.2 調試策略
習題
第8章 軟件維護
8.1 軟件維護的概念
8.1.1 軟件維護的定義
8.1.2 軟件維護的生產特性
8.2 軟件維護的困難和問題
8.2.1 結構化與非結構化的維護
8.2.2 軟件維護的成本
8.3 軟件維護的組織和實施
8.3.1 軟件維護的組織
8.3.2 維護報告
8.3.3 軟件維護的事件流
8.3.4 存檔軟件維護的記錄
8.4 軟件維護的副作用
8.4.1 修改代碼的副作用
8.4.2 修改數據的副作用
8.4.3 文檔的副作用
8.5 軟件配置管理
8.5.1 軟件配置管理的概念
8.5.2 軟件配置項(SCI)
8.5.3 軟件配置管理的內容
8.5.4 軟件配置管理的處理
8.5.5 軟件文檔管理
習題
第9章 軟件工程管理
9.1 軟件項目計劃
9.1.1 軟件項目計劃的概念
9.1.2 軟件項目計劃內容
9.1.3 制定和實施軟件工程規(guī)范
9.2 成本估算
9.2.1 COCOMO模型
9.2.2 Putnam估算模型
9.2.3 軟件成本估算的其它方法
9.3 進度計劃管理
9.3.1 軟件開發(fā)任務的并行性
9.3.2 Gantt圖
9.3.3 工程網絡圖
9.3.4 估算進度
9.4 資源管理
9.4.1 人員資源
9.4.2 硬件資源
9.4.3 軟件資源
9.5 人員組織
9.6 軟件質量保證
習題
第2篇 計算機輔助軟件工程——軟件開發(fā)環(huán)境
第10章 軟件開發(fā)環(huán)境的概念
10.1 軟件開發(fā)環(huán)境的類型和發(fā)展
10.1.1 什么是軟件開發(fā)環(huán)境
10.1.2 軟件開發(fā)環(huán)境的發(fā)展
10.1.3 軟件開發(fā)環(huán)境的類型
10.2 對軟件開發(fā)環(huán)境的要求
10.3 軟件開發(fā)環(huán)境的邏輯模型
10.3.1 邏輯模型
10.3.2 處理
10.3.3 方法
10.3.4 自動化
10.4 軟件開發(fā)環(huán)境的構成和框架
10.4.1 軟件開發(fā)環(huán)境的構成
10.4.2 軟件工程環(huán)境的框架
習題
第11章 軟件設計方法
11.1 引言
11.2 面向對象的設計方法
11.2.1 面向對象設計的概念
11.2.2 面向對象方法的設計步驟
11.2.3 面向對象方法的其它設計技術
11.3 面向可再用的軟件設計方法
11.3.1 軟件再用的基本概念
11.3.2 可再用設計方法的工作模式
11.3.3 可再用構件塊的描述模式
11.4 原型方法
11.4.1 原型方法的概念
11.4.2 計算機輔助原型系統(tǒng)
習題
第12章 軟件工具
12.1 軟件工具的基本概念
12.1.1 什么是軟件工具
12.1.2 當前軟件工具發(fā)展的特點
12.1.3 軟件工具的分類
12.1.4 軟件工具的評價和選擇
12.1.5 幾種主要工具簡介
12.2 工具間集成的概念
12.2.1 工具的集成性
12.2.2 集成性與靈活性
12.3 基于程序設計系統(tǒng)的
結構設計工具(SPD)
12.3.1 SPD的基本概念
12.3.2 SPD的成分
習題
第13章 用戶界面與用戶界面
開發(fā)系統(tǒng)(UIMS)
13.1 圖形用戶界面(GUI)
13.1.1 圖形用戶界面的概念
13.1.2 圖形用戶界面的標準化
13.2 用戶界面開發(fā)系統(tǒng)(UIMS)
13.2.1 用戶界面開發(fā)系統(tǒng)的結構模型
13.2.2 UIMS的任務和組成
13.2.3 UIMS的描述方法
13.3 UIMS的實例——HyperNews系統(tǒng)
13.3.1 HyperNews簡介
13.3.2 HyperNews的對象類層次模型與設計模型
13.3.3 界面實現(xiàn)
13.3.4 通信能力——對話控制層的主體
13.3.5 對應用的連接——應用界面模型
習題
第14章 軟件工程環(huán)境的數據庫
14.1軟件工程環(huán)境信息庫的作用和對它的要求
14.1.1 環(huán)境信息庫的作用
14.1.2 對環(huán)境信息庫的要求
14.2 傳統(tǒng)數據庫的不足
14.2.1 數據庫的非傳統(tǒng)應用
14.2.2 傳統(tǒng)數據庫對非傳統(tǒng)
應用的不適應性
14.3 可擴充的數據庫系統(tǒng)
14.3.1 面向應用的擴充
14.3.2 面向系統(tǒng)的擴充
14.4 可擴充的DBMS實例
習題
參考文獻