《實用軟件工程技術》按照概念、工具、方法和管理這一主線對軟件工程技術進行了全面介紹。書中介紹了軟件工程中的基本概念、實用軟件工程工具、傳統軟件工程方法(結構化方法和面向對象方法)、軟件工程管理等內容。重點講解了軟件工程分析、設計和實現的方法及技術,并附以簡單實用的例子來進行分析,便于讀者理解和熟悉。《實用軟件工程技術》可作為本科及大專院校計算機及相關專業軟件工程的教材,也可供相關技術人員參考使用。
第一篇 軟件工程概念
第1章 軟件工程概述
1.1 軟件及軟件危機
1.1.1 軟件的概念
1.1.2 軟件的分類
1.1.3 軟件的發展
1.1.4 軟件危機
1.1.5 軟件危機產生的原因
1.1.6 解決軟件危機的途徑
1.2 軟件工程
1.2.1 軟件工程的定義
1.2.2 軟件工程研究內容
1.2.3 軟件工程目標
1.2.4 軟件工程的基本原則 前言
第一篇 軟件工程概念
第1章 軟件工程概述
1.1 軟件及軟件危機
1.1.1 軟件的概念
1.1.2 軟件的分類
1.1.3 軟件的發展
1.1.4 軟件危機
1.1.5 軟件危機產生的原因
1.1.6 解決軟件危機的途徑
1.2 軟件工程
1.2.1 軟件工程的定義
1.2.2 軟件工程研究內容
1.2.3 軟件工程目標
1.2.4 軟件工程的基本原則
1.2.5 軟件工程的三要素
1.2.6 軟件工程所面臨的問題
1.3 小結
習題
第2章 軟件過程
2.1 軟件生命周期的基本任務
2.1.1 軟件定義階段
2.1.2 軟件設計階段
2.1.3 運行與維護階段
2.2 軟件生命周期模型
2.2.1 瀑布模型
2.2.2 增量模型
2.2.3 同步-穩定模型
2.2.4 螺旋模型
2.2.5 噴泉模型
2.2.6 基于知識的模型
2.3 軟件開發方法
2.3.1 結構化方法
2.3.2 Jackson方法
2.3.3 維也納開發方法
2.3.4 面向對象的方法
2.4 軟件開發工具與開發環境
2.4.1 軟件開發工具
2.4.2 軟件開發環境
2.4.3 計算機輔助軟件工程
2.5 小結
習題
第二篇 軟件工程工具
第3章 Project
3.1 Project 2010簡介
3.1.1 Project的設計目的
3.1.2 Project 2010的功用
3.1.3 Project的版本歷史
3.1.4 Project的優勢
3.2 Project 2010工作界面
3.2.1 Project 2010工作界面展示
3.2.2 項目管理專用術語概述
3.3 Project 2010項目管理
3.3.1 Project操作入門
3.3.2 利用Project進行項目管理
3.4 小結
習題
第4章 Visio
4.1 Visio簡介
4.2 Visio的安裝步驟
4.3 Visio建模舉例
4.3.1 業務流程圖
4.3.2 數據流程圖
4.4 小結
習題
第5章 PowerDesigner
5.1 PowerDesigner概述
5.1.1 PowerDesigner簡介
5.1.2 PowerDesigner的功用
5.1.3 PowerDesigner的版本歷史
5.1.4 PowerDesigner的優勢
5.2 PowerDesigner工作界面
5.3 PowerDesigner數據模型及使用
5.3.1 業務處理模型
5.3.2 概念數據模型
5.3.3 物理數據模型
5.4 小結
習題
第6章 Rational Rose
6.1 Rational Rose簡介
6.2 Rational Rose的安裝步驟
6.3 Rational Rose建模舉例
6.3.1 業務用例圖
6.3.2 用例圖
6.3.3 類圖
6.3.4 協作圖
6.3.5 活動圖
6.3.6 狀態圖
6.3.7 構件圖和部署圖
6.4 小結
習題
第三篇 軟件工程方法學
第7章 結構化的分析技術
7.1 可行性分析
7.1.1 可行性分析的任務
7.1.2 可行性分析的步驟
7.1.3 可行性分析的主要內容
7.1.4 方案選擇與可行性分析報告
7.2 需求分析
7.2.1 需求分析的任務
7.2.2 需求獲取的途徑
7.2.3 需求分析過程
7.2.4 需求分析技術
7.2.5 需求規格及評審
7.3 小結
習題
第8章 結構化的設計技術
8.1 概要設計
8.1.1 概要設計的概念和任務
8.1.2 概要設計的原則
8.1.3 軟件設計的步驟和方法
8.1.4 軟件設計規則和圖形工具的應用
8.2 詳細設計
8.2.1 詳細設計的概念和任務
8.2.2 過程設計的工具
8.2.3 面向數據結構的設計方法
8.2.4 人機交互界面設計
8.2.5 程序復雜度的度量
8.3 小結
習題
第9章 結構化的實現技術
9.1 軟件實現
9.1.1 程序語言的選擇
9.1.2 編碼風格的重要性
9.2 軟件測試
9.2.1 軟件測試的任務和目標
9.2.2 軟件測試方法
9.2.3 軟件測試步驟
9.2.4 調試策略和常用調試技術
9.2.5 估算軟件平均無故障時間
9.3 小結
習題
第10章 面向對象的方法學和統一建模語言UML
10.1 面向對象方法概述
10.1.1 面向對象方法學的優點
10.1.2 面向對象的概念
10.2 統一建模語言UML概述
10.2.1 UML的產生和發展
10.2.2 UML內容
10.2.3 UML的語義和表示法
10.3 UML的圖
10.3.1 用例圖
10.3.2 類圖
10.3.3 對象圖
10.3.4 狀態圖
10.3.5 順序圖
10.3.6 活動圖
10.3.7 協作圖
10.3.8 構件圖
10.3.9 部署圖
10.4 小結
習題
第11章 面向對象方法應用
11.1 面向對象分析
11.1.1 面向對象分析過程概述
11.1.2 面向對象分析的模型和層次
11.2 建立對象模型
11.2.1 確定類和對象
11.2.2 確定類之間的關聯
11.2.3 劃分主題
11.3 建立動態模型
11.3.1 編寫腳本
11.3.2 設計用戶界面
11.3.3 畫順序圖
11.3.4 畫狀態圖
11.4 建立功能模型
11.5 面向對象設計
11.5.1 面向對象設計準則
11.5.2 系統設計
11.5.3 對象設計
11.6 面向對象實現
11.6.1 程序設計語言的選擇
11.6.2 設計面向對象程序設計
11.6.3 面向對象的測試
11.7 小結
習題
第12章 軟件維護
12.1 軟件維護的內容
12.1.1 軟件維護的特點
12.1.2 軟件維護的分類
12.1.3 軟件維護策略
12.2 軟件維護的過程
12.2.1 建立維護機構
12.2.2 軟件維護工作流程
12.3 軟件的可維護性管理
12.3.1 軟件可維護性概念
12.3.2 軟件可維護性度量指標
12.3.3 提高可維護性方法
12.4 小結
習題
第四篇 軟件工程管理
第13章 軟件項目計劃管理
13.1 軟件項目計劃的制定
13.1.1 進度安排
13.1.2 軟件工程標準
13.1.3 軟件項目成本估算方法
13.2 軟件項目組織管理
13.2.1 民主制程序員組
13.2.2 主程序員組
13.2.3 現代程序員組
13.2.4 軟件項目組織形式
13.3 軟件配置管理
13.3.1 配置管理的意義
13.3.2 軟件配置過程
13.4 小結
習題
第14章 軟件風險管理
14.1 軟件風險概述
14.1.1 軟件風險定義
14.1.2 常見軟件風險
14.1.3 軟件風險管理的意義
14.2 軟件風險的識別
14.2.1 軟件風險識別依據
14.2.2 軟件風險識別過程
14.2.3 軟件風險識別方法技術
14.3 軟件風險分析
14.3.1 軟件風險分析過程
14.3.2 軟件風險分析方法技術
14.4 軟件風險監控與規避
14.4.1 軟件風險監控
14.4.2 軟件風險規避
14.5 RMMM計劃
14.6 小結
習題
第15章 軟件企業成熟度模型
15.1 CMM概述
15.1.1 CMM的產生和發展
15.1.2 CMM各等級特征
15.2 CMM的結構
15.2.1 關鍵過程域
15.2.2 關鍵實踐
15.2.3 共同特性
15.3 CMM各級中關鍵過程域
15.3.1 可重復級中的關鍵過程域
15.3.2 已定義級中的關鍵過程域
15.3.3 已管理級中的關鍵過程域
15.3.4 優化級的關鍵過程域
15.4 CMM應用
15.4.1 軟件過程評估和軟件能力評價
15.4.2 軟件過程改進
15.5 CMM的實施與評估
15.5.1 軟件過程評估必要性
15.5.2 CMM評估步驟
15.5.3 企業實施CMM過程
15.6 中國軟件企業CMM的應用現狀與趨勢
15.7 小結
習題
參考文獻
前言
第一篇 軟件工程概念
第1章 軟件工程概述
1.1 軟件及軟件危機
1.1.1 軟件的概念
1.1.2 軟件的分類
1.1.3 軟件的發展
1.1.4 軟件危機
1.1.5 軟件危機產生的原因
1.1.6 解決軟件危機的途徑
1.2 軟件工程
1.2.1 軟件工程的定義
1.2.2 軟件工程研究內容
1.2.3 軟件工程目標
1.2.4 軟件工程的基本原則 前言
第一篇 軟件工程概念
第1章 軟件工程概述
1.1 軟件及軟件危機
1.1.1 軟件的概念
1.1.2 軟件的分類
1.1.3 軟件的發展
1.1.4 軟件危機
1.1.5 軟件危機產生的原因
1.1.6 解決軟件危機的途徑
1.2 軟件工程
1.2.1 軟件工程的定義
1.2.2 軟件工程研究內容
1.2.3 軟件工程目標
1.2.4 軟件工程的基本原則
1.2.5 軟件工程的三要素
1.2.6 軟件工程所面臨的問題
1.3 小結
習題
第2章 軟件過程
2.1 軟件生命周期的基本任務
2.1.1 軟件定義階段
2.1.2 軟件設計階段
2.1.3 運行與維護階段
2.2 軟件生命周期模型
2.2.1 瀑布模型
2.2.2 增量模型
2.2.3 同步-穩定模型
2.2.4 螺旋模型
2.2.5 噴泉模型
2.2.6 基于知識的模型
2.3 軟件開發方法
2.3.1 結構化方法
2.3.2 Jackson方法
2.3.3 維也納開發方法
2.3.4 面向對象的方法
2.4 軟件開發工具與開發環境
2.4.1 軟件開發工具
2.4.2 軟件開發環境
2.4.3 計算機輔助軟件工程
2.5 小結
習題
第二篇 軟件工程工具
第3章 Project
3.1 Project 2010簡介
3.1.1 Project的設計目的
3.1.2 Project 2010的功用
3.1.3 Project的版本歷史
3.1.4 Project的優勢
3.2 Project 2010工作界面
3.2.1 Project 2010工作界面展示
3.2.2 項目管理專用術語概述
3.3 Project 2010項目管理
3.3.1 Project操作入門
3.3.2 利用Project進行項目管理
3.4 小結
習題
第4章 Visio
4.1 Visio簡介
4.2 Visio的安裝步驟
4.3 Visio建模舉例
4.3.1 業務流程圖
4.3.2 數據流程圖
4.4 小結
習題
第5章 PowerDesigner
5.1 PowerDesigner概述
5.1.1 PowerDesigner簡介
5.1.2 PowerDesigner的功用
5.1.3 PowerDesigner的版本歷史
5.1.4 PowerDesigner的優勢
5.2 PowerDesigner工作界面
5.3 PowerDesigner數據模型及使用
5.3.1 業務處理模型
5.3.2 概念數據模型
5.3.3 物理數據模型
5.4 小結
習題
第6章 Rational Rose
6.1 Rational Rose簡介
6.2 Rational Rose的安裝步驟
6.3 Rational Rose建模舉例
6.3.1 業務用例圖
6.3.2 用例圖
6.3.3 類圖
6.3.4 協作圖
6.3.5 活動圖
6.3.6 狀態圖
6.3.7 構件圖和部署圖
6.4 小結
習題
第三篇 軟件工程方法學
第7章 結構化的分析技術
7.1 可行性分析
7.1.1 可行性分析的任務
7.1.2 可行性分析的步驟
7.1.3 可行性分析的主要內容
7.1.4 方案選擇與可行性分析報告
7.2 需求分析
7.2.1 需求分析的任務
7.2.2 需求獲取的途徑
7.2.3 需求分析過程
7.2.4 需求分析技術
7.2.5 需求規格及評審
7.3 小結
習題
第8章 結構化的設計技術
8.1 概要設計
8.1.1 概要設計的概念和任務
8.1.2 概要設計的原則
8.1.3 軟件設計的步驟和方法
8.1.4 軟件設計規則和圖形工具的應用
8.2 詳細設計
8.2.1 詳細設計的概念和任務
8.2.2 過程設計的工具
8.2.3 面向數據結構的設計方法
8.2.4 人機交互界面設計
8.2.5 程序復雜度的度量
8.3 小結
習題
第9章 結構化的實現技術
9.1 軟件實現
9.1.1 程序語言的選擇
9.1.2 編碼風格的重要性
9.2 軟件測試
9.2.1 軟件測試的任務和目標
9.2.2 軟件測試方法
9.2.3 軟件測試步驟
9.2.4 調試策略和常用調試技術
9.2.5 估算軟件平均無故障時間
9.3 小結
習題
第10章 面向對象的方法學和統一建模語言UML
10.1 面向對象方法概述
10.1.1 面向對象方法學的優點
10.1.2 面向對象的概念
10.2 統一建模語言UML概述
10.2.1 UML的產生和發展
10.2.2 UML內容
10.2.3 UML的語義和表示法
10.3 UML的圖
10.3.1 用例圖
10.3.2 類圖
10.3.3 對象圖
10.3.4 狀態圖
10.3.5 順序圖
10.3.6 活動圖
10.3.7 協作圖
10.3.8 構件圖
10.3.9 部署圖
10.4 小結
習題
第11章 面向對象方法應用
11.1 面向對象分析
11.1.1 面向對象分析過程概述
11.1.2 面向對象分析的模型和層次
11.2 建立對象模型
11.2.1 確定類和對象
11.2.2 確定類之間的關聯
11.2.3 劃分主題
11.3 建立動態模型
11.3.1 編寫腳本
11.3.2 設計用戶界面
11.3.3 畫順序圖
11.3.4 畫狀態圖
11.4 建立功能模型
11.5 面向對象設計
11.5.1 面向對象設計準則
11.5.2 系統設計
11.5.3 對象設計
11.6 面向對象實現
11.6.1 程序設計語言的選擇
11.6.2 設計面向對象程序設計
11.6.3 面向對象的測試
11.7 小結
習題
第12章 軟件維護
12.1 軟件維護的內容
12.1.1 軟件維護的特點
12.1.2 軟件維護的分類
12.1.3 軟件維護策略
12.2 軟件維護的過程
12.2.1 建立維護機構
12.2.2 軟件維護工作流程
12.3 軟件的可維護性管理
12.3.1 軟件可維護性概念
12.3.2 軟件可維護性度量指標
12.3.3 提高可維護性方法
12.4 小結
習題
第四篇 軟件工程管理
第13章 軟件項目計劃管理
13.1 軟件項目計劃的制定
13.1.1 進度安排
13.1.2 軟件工程標準
13.1.3 軟件項目成本估算方法
13.2 軟件項目組織管理
13.2.1 民主制程序員組
13.2.2 主程序員組
13.2.3 現代程序員組
13.2.4 軟件項目組織形式
13.3 軟件配置管理
13.3.1 配置管理的意義
13.3.2 軟件配置過程
13.4 小結
習題
第14章 軟件風險管理
14.1 軟件風險概述
14.1.1 軟件風險定義
14.1.2 常見軟件風險
14.1.3 軟件風險管理的意義
14.2 軟件風險的識別
14.2.1 軟件風險識別依據
14.2.2 軟件風險識別過程
14.2.3 軟件風險識別方法技術
14.3 軟件風險分析
14.3.1 軟件風險分析過程
14.3.2 軟件風險分析方法技術
14.4 軟件風險監控與規避
14.4.1 軟件風險監控
14.4.2 軟件風險規避
14.5 RMMM計劃
14.6 小結
習題
第15章 軟件企業成熟度模型
15.1 CMM概述
15.1.1 CMM的產生和發展
15.1.2 CMM各等級特征
15.2 CMM的結構
15.2.1 關鍵過程域
15.2.2 關鍵實踐
15.2.3 共同特性
15.3 CMM各級中關鍵過程域
15.3.1 可重復級中的關鍵過程域
15.3.2 已定義級中的關鍵過程域
15.3.3 已管理級中的關鍵過程域
15.3.4 優化級的關鍵過程域
15.4 CMM應用
15.4.1 軟件過程評估和軟件能力評價
15.4.2 軟件過程改進
15.5 CMM的實施與評估
15.5.1 軟件過程評估必要性
15.5.2 CMM評估步驟
15.5.3 企業實施CMM過程
15.6 中國軟件企業CMM的應用現狀與趨勢
15.7 小結
習題
參考文獻