《面向21世紀課程教材:軟體工程(第3版)》是在第2版的基礎上修改而成的,闡述了資訊時代軟體、軟體工程及軟體工程教育的地位和作用,以及基於計算機的系統和業務過程建模方面的內容。書中分析了傳統軟體開發過程向統一過程RUP的進化,系統地介紹了RUP過程、UML語言和面向對象的軟體開發方法,以及軟體開發的需求、設計、實現、測試、交付、維護、軟體度量、軟體項目管理和軟體開發組織的過程改進等專題。《面向21世紀課程教材:軟體工程(第3版)》還簡化了結構化軟體開發方法的相關內容,充實了目前常用的基於構件的軟體開發、web軟體工程等方面的內容。《面向21世紀課程教材:軟體工程(第3版)》強調理論與實踐相結合,軟體工程的技術、方法與工具相結合,軟體項目的技術活動與管理活動相結合。書中含有豐富的例題、習題和參考文獻。《面向21世紀課程教材:軟體工程(第3版)》可作為高等學校計算機專業或信息類相關專業高年級本科生教材,也可作為非計算機專業的研究生教材及軟體開發人員的參考書。
基本介紹
- 書名:面向21世紀課程教材:軟體工程
- 出版社:高等教育出版社
- 頁數:499頁
- 開本:16
- 品牌:高等教育出版社
- 作者:齊治昌 譚慶平
- 出版日期:2012年5月1日
- 語種:簡體中文
- ISBN:9787040324884, 7040324881
內容簡介,圖書目錄,
內容簡介
《面向21世紀課程教材:軟體工程(第3版)》的特點是在前兩版的基礎上,借鑑軟體工程知識體SWEBOK和SEEK的內容,針對我國高校本科軟體工程教育的實際情況對內容進行選擇和組織。著重強調以下問題:軟體中蘊含的領域知識和經驗;將軟體生存周期的階段劃分與軟體開發過程分解、分開;用統一建模描述語言UML描述RUP過程中的製品;驗證與確認貫穿RIP過程的始終;變更管理和配置管理等,以實例貫穿始終,強調理論與實踐相結合。提供與教材配套的電子教案;與《面向21世紀課程教材:軟體工程(第3版)》配套的《軟體工程實踐教程》已由高等教育出版社正式出版,以加強軟體工程課程實習,方便高校師生教學。
圖書目錄
第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.3 軟體過程模型
1.3.1 瀑布模型
1.3.2 增量過程模型
1.3.3 原型建造模型
1.3.4 螺旋模型
1.3.5 基於構件的過程模型
1.3.6 通用軟體過程模型
1.4 敏捷軟體開發原則和套用
1.4.1 敏捷軟體開發原則
1.4.2 敏捷軟體過程的極限編程實踐
1.4.3 敏捷軟體開發過程的套用
1.5 軟體工程人的因素
1.5.1 軟體工程教育
1.5.2 軟體工程學科
1.5.3 軟體工程從業人員的職業道德
1.6 軟體工具及軟體開發環境
1.6.1 軟體工具
1.6.2 軟體開發環境
1.7 基於計算機的系統
1.7.1 基於計算機的系統的概念
1.7.2 基於計算機的系統的功能組件
1.7.3 典型的基於計算機的系統
1.7.4 基於計算機的系統的研製
小結
習題
第2章 UML與RUP統一過程
2.1 案例說明
2.2 面向對象的軟體開發方法
2.2.1 面向對象的概念
2.2.2 面向對象方法的優勢
2.3 UML概述
2.4 RUP統一過程
2.4.1 RUP軟體過程框架
2.4.2 RUP的5個階段
2.4.3 RUP的9個工作流
小結
習題
第3章 需求工程概論
3.1 軟體需求的概念
3.1.1 軟體需求的分類
3.1.2 軟體需求的質量要素
3.2 需求工程的預備知識
3.2.1 與用戶交流的技巧
3.2.2 需求調查的基本方法
3.2.3 需求建模的基本方法
3.3 需求工程的過程模型
3.3.1 需求工程中的活動
3.3.2 疊代式的過程模型
3.3.3 過程模型的裁剪
小結
習題
第4章 需求獲取
4.1 軟體需求的初始表示
4.1.1 用例
4.1.2 用例圖
4.1.3 用例的表示
4.1.4 類圖
4.1.5 活動圖
4.2 需求獲取的過程模型
4.3 定義軟體問題
4.3.1 標識客戶和用戶
4.3.2 理解業務背景
4.3.3 策劃並實施需求調查
4.3.4 定義軟體系統的輪廓
4.4 創建框架用例
4.4.1 策劃並實施用例調查
4.4.2 以框架用例記錄調查結果
4.4.3 創建用例圖
4.4.4 整合併評審框架用例
4.5 精化用例
4.5.1 用例互動動作序列的描述方法
4.5.2 分解或合併用例
4.5.3 構建完整用例
4.5.4 精化用例圖
4.5.5 精化業務規則及非功能需求
4.6 評審用例模型
小結
習題
第5章 需求分析與驗證
5.1 分析模型的表示
5.1.1 順序圖
5.1.2 通信圖
5.1.3 狀態圖
5.1.4 擴充機制
5.2 需求分析的過程模型
5.3 需求優先權分析
5.3.1 確定需求項優先權
5.3.2 編排用例分析的優先順序
5.4 用例分析
5.4.1 精化領域概念模型
5.4.2 設定分析類
5.4.3 構思分析類之間的協作關係
5.4.4 導出分析類圖
5.5 利用快速原型輔助需求分析
5.5.1 分析與規劃
5.5.2 設計與實現
5.5.3 檢查與評審
5.5.4 改進
5.6 評審分析模型
5.7 需求規約
5.8 需求驗證
小結
習題
第6章 軟體設計概論
6.1 軟體設計的概念
6.1.1 軟體設計模型
6.1.2 設計模型的質量要素
6.2 軟體設計的基本原則
6.2.1 抽象與逐步求精
6.2.2 模組化
6.2.3 信息隱藏
6.2.4 關注點分離
6.3 軟體設計的過程模型
6.3.1 軟體設計活動
6.3.2 疊代式設計過程模型
6.3.3 設計過程模型的裁剪
小結
習題
第7章 軟體體系結構設計
7.1 軟體體系結構的概念
7.1.1 何謂體系結構
7.1.2 體系結構視圖
7.2 體系結構的表示
7.2.1 包圖
7.2.2 構件圖
7.2.3 部署圖
7.2.4 對象圖
7.3 體系結構設計的過程模型
7.4 體系結構設計模式
7.4.1 何謂設計模式
7.4.2 通用的體系結構模式
7.5 概念設計
7.5.1 關鍵需求辨識
7.5.2 體系結構初創
7.6 體系結構精化
7.6.1 邏輯視圖體系結構的精化
7.6.2 開發視圖體系結構的設計
7.6.3 物理視圖體系結構的設計
7.6.4 運行視圖體系結構的設計
7.6.5 數據視圖體系結構的設計
7.6.6 軟體體系結構文檔
7.7 基於構件的體系結構設計
7.7.1 軟體復用概述
7.7.2 構件創立
7.7.3 構件復用
7.8 體系結構驗證
小結
習題
第8章 人機互動設計
8.1 以用戶為中心的設計
8.1.1 以用戶為中心的設計理念
8.1.2 人類信息處理模型
8.1.3 以用戶為中心的設計方法
8.2 用戶界面設計的基本原則
8.3 用戶界面設計模型的表示
8.4 用戶界面設計的過程模型
8.5 用戶及任務分析
8.5.1 用戶分析
8.5.2 任務分析
8.6 用戶界面的概念設計
8.7 用戶界面流設計
8.8 用戶界面的精化
小結
習題
第9章 軟體詳細設計
9.1 詳細設計的任務與過程模型
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 設計構件的定製機制
9.4.3 設計構件的組裝機制
9.5 類設計
9.5.1 精化類間關係
9.5.2 精化屬性和操作
9.5.3 設計狀態圖與活動圖
9.6 數據模型設計
9.6.1 確定持久數據條目
9.6.2 確定持久數據的組織結構
9.6.3 確立持久數據操作
9.6.4 最佳化持久數據操作的性能
9.7 設計整合與驗證
9.7.1 設計規約
9.7.2 設計驗證
小結
習題
第10章 軟體實現
10.1 軟體實現的任務
10.2 軟體實現過程
10.3 軟體實現與程式設計語言
10.3.1 程式設計語言的演變和分類
10.3.2 程式設計語言的基本機制
10.3.3 程式設計語言的選擇
10.4 編程實現
10.4.1 將編程作為問題求解
10.4.2 程式設計范型
10.4.3 編程標準
10.4.4 編程風格
10.4.5 極限編程與結對編程
10.5 軟體調試
10.5.1 調試過程
10.5.2 軟體缺陷的分類
10.5.3 調試方法
10.5.4 調試技術
小結
習題
第11章 結構化軟體開發
11.1 面向數據流的分析方法
11.1.1 數據流圖與數據字典
11.1.2 實體一關係圖
11.1.3 數據流圖的實時系統擴充
11.1.4 基於數據流的分析方法
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 設計實例
小結
習題
第12章 軟體測試
12.1 軟體測試的概念
12.1.1 軟體測試的任務
12.1.2 測試階段的信息流程
12.1.3 測試用例及其設計
12.1.4 軟體測試的原則
12.2 軟體測試的過程模型
12.3 軟體測試方法
12.3.1 白盒測試
12.3.2 黑盒測試
12.4 軟體測試活動及實施策略
12.4.1 單元測試
12.4.2 集成測試
12.4.3 確認測試
12.4.4 系統測試
12.5 面向對象軟體的測試
12.5.1 類的測試
12.5.2 互動測試
12.5.3 繼承的測試
小結
習題
第13章 軟體維護
13.1 軟體維護與進化的概念
13.2 軟體維護的過程模型
13.2.1 結構化與非結構化的維護
13.2.2 維護的成本
13.2.3 可能存在的問題
13.3 可維護性
13.3.1 影響可維護性的因素
13.3.2 若干量化的測度
13.3.3 保證可維護性的複審
13.4 維護活動及實施策略
13.4.1 維護組織
13.4.2 維護的報告與評估
13.4.3 維護工作流
13.4.4 保存維護記錄
13.4.5 評價維護活動
13.5 維護的副作用
13.6 逆向工程與軟體重構
13.6.1 文檔重構
13.6.2 重組
13.6.3 逆向工程
13.6.4 再工程
小結
習題
第14章 Web軟體工程
14.1 基於Web的軟體及其特性
14.1.1 相關概念
14.1.2 Web軟體的特性
14.2 Web軟體的需求工程
14.3 Web軟體體系結構設計
14.4 Web界面設計
14.4.1 為全球範圍內不同的用戶而設計
14.4.2 面向客戶端瀏覽器的界面設計
14.4.3 導航設計
14.4.4 美工設計
14.5 Web軟體的詳細設計
14.5.1 表現層設計
14.5.2 Web層設計
14.5.3 業務層設計
小結
習題
……
第15章 軟體度量與估算
第16章 軟體項目管理與過程改進
參考文獻
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.3 軟體過程模型
1.3.1 瀑布模型
1.3.2 增量過程模型
1.3.3 原型建造模型
1.3.4 螺旋模型
1.3.5 基於構件的過程模型
1.3.6 通用軟體過程模型
1.4 敏捷軟體開發原則和套用
1.4.1 敏捷軟體開發原則
1.4.2 敏捷軟體過程的極限編程實踐
1.4.3 敏捷軟體開發過程的套用
1.5 軟體工程人的因素
1.5.1 軟體工程教育
1.5.2 軟體工程學科
1.5.3 軟體工程從業人員的職業道德
1.6 軟體工具及軟體開發環境
1.6.1 軟體工具
1.6.2 軟體開發環境
1.7 基於計算機的系統
1.7.1 基於計算機的系統的概念
1.7.2 基於計算機的系統的功能組件
1.7.3 典型的基於計算機的系統
1.7.4 基於計算機的系統的研製
小結
習題
第2章 UML與RUP統一過程
2.1 案例說明
2.2 面向對象的軟體開發方法
2.2.1 面向對象的概念
2.2.2 面向對象方法的優勢
2.3 UML概述
2.4 RUP統一過程
2.4.1 RUP軟體過程框架
2.4.2 RUP的5個階段
2.4.3 RUP的9個工作流
小結
習題
第3章 需求工程概論
3.1 軟體需求的概念
3.1.1 軟體需求的分類
3.1.2 軟體需求的質量要素
3.2 需求工程的預備知識
3.2.1 與用戶交流的技巧
3.2.2 需求調查的基本方法
3.2.3 需求建模的基本方法
3.3 需求工程的過程模型
3.3.1 需求工程中的活動
3.3.2 疊代式的過程模型
3.3.3 過程模型的裁剪
小結
習題
第4章 需求獲取
4.1 軟體需求的初始表示
4.1.1 用例
4.1.2 用例圖
4.1.3 用例的表示
4.1.4 類圖
4.1.5 活動圖
4.2 需求獲取的過程模型
4.3 定義軟體問題
4.3.1 標識客戶和用戶
4.3.2 理解業務背景
4.3.3 策劃並實施需求調查
4.3.4 定義軟體系統的輪廓
4.4 創建框架用例
4.4.1 策劃並實施用例調查
4.4.2 以框架用例記錄調查結果
4.4.3 創建用例圖
4.4.4 整合併評審框架用例
4.5 精化用例
4.5.1 用例互動動作序列的描述方法
4.5.2 分解或合併用例
4.5.3 構建完整用例
4.5.4 精化用例圖
4.5.5 精化業務規則及非功能需求
4.6 評審用例模型
小結
習題
第5章 需求分析與驗證
5.1 分析模型的表示
5.1.1 順序圖
5.1.2 通信圖
5.1.3 狀態圖
5.1.4 擴充機制
5.2 需求分析的過程模型
5.3 需求優先權分析
5.3.1 確定需求項優先權
5.3.2 編排用例分析的優先順序
5.4 用例分析
5.4.1 精化領域概念模型
5.4.2 設定分析類
5.4.3 構思分析類之間的協作關係
5.4.4 導出分析類圖
5.5 利用快速原型輔助需求分析
5.5.1 分析與規劃
5.5.2 設計與實現
5.5.3 檢查與評審
5.5.4 改進
5.6 評審分析模型
5.7 需求規約
5.8 需求驗證
小結
習題
第6章 軟體設計概論
6.1 軟體設計的概念
6.1.1 軟體設計模型
6.1.2 設計模型的質量要素
6.2 軟體設計的基本原則
6.2.1 抽象與逐步求精
6.2.2 模組化
6.2.3 信息隱藏
6.2.4 關注點分離
6.3 軟體設計的過程模型
6.3.1 軟體設計活動
6.3.2 疊代式設計過程模型
6.3.3 設計過程模型的裁剪
小結
習題
第7章 軟體體系結構設計
7.1 軟體體系結構的概念
7.1.1 何謂體系結構
7.1.2 體系結構視圖
7.2 體系結構的表示
7.2.1 包圖
7.2.2 構件圖
7.2.3 部署圖
7.2.4 對象圖
7.3 體系結構設計的過程模型
7.4 體系結構設計模式
7.4.1 何謂設計模式
7.4.2 通用的體系結構模式
7.5 概念設計
7.5.1 關鍵需求辨識
7.5.2 體系結構初創
7.6 體系結構精化
7.6.1 邏輯視圖體系結構的精化
7.6.2 開發視圖體系結構的設計
7.6.3 物理視圖體系結構的設計
7.6.4 運行視圖體系結構的設計
7.6.5 數據視圖體系結構的設計
7.6.6 軟體體系結構文檔
7.7 基於構件的體系結構設計
7.7.1 軟體復用概述
7.7.2 構件創立
7.7.3 構件復用
7.8 體系結構驗證
小結
習題
第8章 人機互動設計
8.1 以用戶為中心的設計
8.1.1 以用戶為中心的設計理念
8.1.2 人類信息處理模型
8.1.3 以用戶為中心的設計方法
8.2 用戶界面設計的基本原則
8.3 用戶界面設計模型的表示
8.4 用戶界面設計的過程模型
8.5 用戶及任務分析
8.5.1 用戶分析
8.5.2 任務分析
8.6 用戶界面的概念設計
8.7 用戶界面流設計
8.8 用戶界面的精化
小結
習題
第9章 軟體詳細設計
9.1 詳細設計的任務與過程模型
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 設計構件的定製機制
9.4.3 設計構件的組裝機制
9.5 類設計
9.5.1 精化類間關係
9.5.2 精化屬性和操作
9.5.3 設計狀態圖與活動圖
9.6 數據模型設計
9.6.1 確定持久數據條目
9.6.2 確定持久數據的組織結構
9.6.3 確立持久數據操作
9.6.4 最佳化持久數據操作的性能
9.7 設計整合與驗證
9.7.1 設計規約
9.7.2 設計驗證
小結
習題
第10章 軟體實現
10.1 軟體實現的任務
10.2 軟體實現過程
10.3 軟體實現與程式設計語言
10.3.1 程式設計語言的演變和分類
10.3.2 程式設計語言的基本機制
10.3.3 程式設計語言的選擇
10.4 編程實現
10.4.1 將編程作為問題求解
10.4.2 程式設計范型
10.4.3 編程標準
10.4.4 編程風格
10.4.5 極限編程與結對編程
10.5 軟體調試
10.5.1 調試過程
10.5.2 軟體缺陷的分類
10.5.3 調試方法
10.5.4 調試技術
小結
習題
第11章 結構化軟體開發
11.1 面向數據流的分析方法
11.1.1 數據流圖與數據字典
11.1.2 實體一關係圖
11.1.3 數據流圖的實時系統擴充
11.1.4 基於數據流的分析方法
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 設計實例
小結
習題
第12章 軟體測試
12.1 軟體測試的概念
12.1.1 軟體測試的任務
12.1.2 測試階段的信息流程
12.1.3 測試用例及其設計
12.1.4 軟體測試的原則
12.2 軟體測試的過程模型
12.3 軟體測試方法
12.3.1 白盒測試
12.3.2 黑盒測試
12.4 軟體測試活動及實施策略
12.4.1 單元測試
12.4.2 集成測試
12.4.3 確認測試
12.4.4 系統測試
12.5 面向對象軟體的測試
12.5.1 類的測試
12.5.2 互動測試
12.5.3 繼承的測試
小結
習題
第13章 軟體維護
13.1 軟體維護與進化的概念
13.2 軟體維護的過程模型
13.2.1 結構化與非結構化的維護
13.2.2 維護的成本
13.2.3 可能存在的問題
13.3 可維護性
13.3.1 影響可維護性的因素
13.3.2 若干量化的測度
13.3.3 保證可維護性的複審
13.4 維護活動及實施策略
13.4.1 維護組織
13.4.2 維護的報告與評估
13.4.3 維護工作流
13.4.4 保存維護記錄
13.4.5 評價維護活動
13.5 維護的副作用
13.6 逆向工程與軟體重構
13.6.1 文檔重構
13.6.2 重組
13.6.3 逆向工程
13.6.4 再工程
小結
習題
第14章 Web軟體工程
14.1 基於Web的軟體及其特性
14.1.1 相關概念
14.1.2 Web軟體的特性
14.2 Web軟體的需求工程
14.3 Web軟體體系結構設計
14.4 Web界面設計
14.4.1 為全球範圍內不同的用戶而設計
14.4.2 面向客戶端瀏覽器的界面設計
14.4.3 導航設計
14.4.4 美工設計
14.5 Web軟體的詳細設計
14.5.1 表現層設計
14.5.2 Web層設計
14.5.3 業務層設計
小結
習題
……
第15章 軟體度量與估算
第16章 軟體項目管理與過程改進
參考文獻