軟體工程——方法與實踐(第3版)

基本介紹

  • 書名:軟體工程——方法與實踐(第3版)
  • 作者:許家珆
  • ISBN:9787121350993
  • 頁數:292頁
  • 出版時間:2019-01
  • 開本:16開
出版信息,內容簡介,圖書目錄,

出版信息

作譯者:許家珆
出版時間:2019-01
千 字 數:584
版次:01-01
頁 數:292
開本:16開
I S B N :9787121350993

內容簡介

本書第3版在繼承第2版特點的基礎上做了較大修改,內容涵蓋了IEEE新發布的軟體工程知識體系指南SWEBOK V3.0版的知識域,刪除了較陳舊的內容,新增了如雲計算模型、敏捷開發測試等國內外軟體工程發展的新技術。在系統介紹軟體工程基礎知識的基礎上,重點介紹了軟體需求和軟體設計兩個重要開發階段,並將面向對象的方法及UML統一建模技術貫穿於各章,對面向對象的分析、設計、測試的方法做了詳細介紹。同時還對CMM軟體成熟度模型、風險管理及團隊建設等先進的軟體管理技術進行了介紹。本書內容注重科學性、先進性,強調實踐性,理論緊密聯繫實際是本書的一大特色;本書不僅提供了豐富的軟體開發實例和素材,還用一章專門討論了如何進行綜合性、設計型的軟體工程課程設計。本書可作為高等院校計算機、軟體工程及信息類專業本科生及研究生“軟體工程”課程的教材,也可作為廣大工程技術人員和科研人員的參考書。

圖書目錄

第1章 軟體工程概述 (1)
1.1 軟體工程的產生和發展 (1)
1.1.1 軟體危機與軟體工程 (1)
1.1.2 軟體工程的定義及基本原則 (3)
1.1.3 軟體工程研究的內容 (3)
1.2 軟體與軟體過程 (4)
1.2.1 軟體的概念和特點 (5)
1.2.2 軟體工程過程及產品 (6)
1.3 軟體過程模型 (6)
1.3.1 瀑布模型 (6)
1.3.2 增量模型 (7)
1.3.3 螺旋模型 (7)
1.3.4 噴泉模型 (8)
1.3.5 原型模型 (8)
1.3.6 智慧型模型 (9)
1.4 軟體開發方法 (9)
1.4.1 結構化開發方法 (10)
1.4.2 原型化開發方法 (10)
1.4.3 面向對象的開發方法 (11)
1.4.4 敏捷軟體的開發 (12)
1.5 軟體工具與集成化開發環境 (15)
1.5.1 軟體工具的發展過程 (15)
1.5.2 軟體工具 (16)
1.5.3 集成化CASE環境 (18)
小結 (19)
習題1 (19)
第2章 面向對象方法與UML建模語言 (21)
2.1 面向對象方法概述 (21)
2.1.1 面向對象方法的特點 (21)
2.1.2 幾種典型的面向對象方法 (22)
2.2 UML概述 (23)
2.2.1 UML的基本概念 (24)
2.2.2 UML的圖形表示 (25)
2.3 建立用例模型 (28)
2.3.1 需求分析與用例建模 (28)
2.3.2 確定執行者和用例 (29)
2.3.3 用例建模實例 (31)
2.4 建立靜態模型 (33)
2.4.1 類圖 (33)
2.4.2 包圖 (41)
2.5 建立動態模型 (42)
2.5.1 訊息 (42)
2.5.2 狀態圖 (43)
2.5.3 順序圖 (46)
2.5.4 合作圖 (47)
2.5.5 活動圖 (50)
2.6 建立實現模型 (52)
2.6.1 組件圖 (52)
2.6.2 部署圖 (53)
2.7 RUP統一過程及其套用 (54)
2.7.1 UML與RUP統一過程 (54)
2.7.2 RUP的二維開發模型 (56)
2.7.3 RUP的疊代開發模式 (58)
小結 (59)
習題二 (59)
第3章 軟體需求工程 (63)
3.1 軟體需求的基本概念 (63)
3.1.1 軟體需求的任務 (63)
3.1.2 功能需求與非功能需求 (64)
3.2 需求工程過程 (66)
3.2.1 需求工程的基本活動 (66)
3.2.2 獲取需求 (66)
3.2.3 需求分析與建模 (67)
3.2.4 需求的有效性驗證 (68)
3.2.5 需求管理 (69)
3.3 軟體需求獲取技術 (70)
3.3.1 面談法 (70)
3.3.2 問卷調查法 (70)
3.3.3 需求專題討論會 (71)
3.3.4 原型法獲取需求 (71)
3.3.5 面向用例的方法 (72)
3.4 需求分析與建模技術 (73)
3.4.1 需求分析方法 (73)
3.4.2 結構化分析(SA)方法 (74)
3.4.3 面向對象的分析(OOA)方法 (79)
3.5 軟體需求案例分析 (82)
3.5.1 案例1——用SA法建立需求模型 (82)
3.5.2 案例2——用OOA法建立需求模型 (84)
小結 (87)
習題二 (88)
第4章 軟體設計 (91)
4.1 軟體設計概述 (91)
4.1.1 軟體設計在開發階段中的重要性 (91)
4.1.2 軟體設計階段的任務 (92)
4.1.3 軟體設計的目標 (92)
4.1.4 軟體設計過程 (92)
4.2 軟體體系結構設計 (93)
4.2.1 系統結構性模型——集中式系統模型 (93)
4.2.2 系統結構性模型——層次結構模型 (94)
4.2.3 系統結構性模型——分散式系統模型 (95)
4.2.4 控制模型 (100)
4.2.5 模組分解 (101)
4.3 詳細設計描述工具 (104)
4.4 面向對象的設計 (105)
4.4.1 面向對象設計的準則 (106)
4.4.2 面向對象設計的基本任務 (106)
4.5 用戶界面設計 (108)
4.5.1 用戶界面設計的特性與設計任務 (108)
4.5.2 用戶界面設計的基本原則 (109)
4.5.3 用戶界面的基本類型 (110)
4.5.4 用戶互動設計 (111)
4.6 MVC設計模式 (114)
4.7 軟體設計實例 (115)
小結 (118)
習題四 (118)
第5章 軟體構造 (121)
5.1 程式設計語言的選擇 (121)
5.1.1 程式設計語言的分類 (121)
5.1.2 高級程式設計語言的基本組成 (122)
5.1.3 程式設計語言選擇準則 (123)
5.2 程式設計方法 (123)
5.2.1 結構化程式設計 (123)
5.2.2 面向對象程式設計 (125)
5.3 程式設計風格 (127)
5.3.1 源程式檔案 (128)
5.3.2 語句構造方法 (129)
5.3.3 數據說明方法 (129)
5.3.4 輸入/輸出技術 (130)
5.4 算法與程式效率 (130)
5.4.1 算法轉換過程中的指導原則 (130)
5.4.2 影響效率的因素 (131)
5.5 軟體代碼審查 (133)
5.6 軟體復用 (134)
5.6.1 軟體復用的級別 (134)
5.6.2 軟體復用過程 (135)
5.6.3 可復用構件 (135)
5.6.4 基於復用的開發過程 (136)
5.6.5 構件的組裝和復用 (137)
5.7 軟體構造實例 (137)
5.7.1 實現環境 (137)
5.7.2 系統編碼實現 (138)
5.7.3 用戶界面 (143)
小結 (143)
習題五 (143)
第6章 軟體測試 (145)
6.1 軟體測試概述 (145)
6.1.1 軟體測試的基本概念 (145)
6.1.2 軟體測試的特點和基本原則 (147)
6.1.3 軟體測試過程 (149)
6.1.4 靜態分析與動態測試 (151)
6.2 白盒法測試 (153)
6.2.1 語句覆蓋 (153)
6.2.2 判定覆蓋 (154)
6.2.3 條件覆蓋 (155)
6.2.4 判定-條件覆蓋 (155)
6.2.5 條件組合覆蓋 (156)
6.3 黑盒法測試 (157)
6.3.1 等價分類法 (157)
6.3.2 邊界值分析法 (158)
6.3.3 錯誤推測法 (158)
6.3.4 因果圖法 (159)
6.4 軟體測試的策略 (160)
6.4.1 單元測試 (160)
6.4.2 集成測試 (162)
6.4.3 確認測試 (164)
6.4.4 系統測試 (165)
6.4.5 ?測試和?測試 (166)
6.4.6 綜合測試策略 (167)
6.5 軟體調試 (167)
6.5.1 軟體調試過程 (167)
6.5.2 軟體調試策略 (168)
6.6 面向對象的測試 (170)
6.6.1 面向對象測試的特點 (170)
6.6.2 面向對象測試模型 (171)
6.6.3 面向對象測試類型 (171)
6.6.4 分析模型測試 (173)
6.6.5 面向對象的測試用例 (177)
6.7 自動化測試 (177)
6.7.1 自動化測試概述 (178)
6.7.2 實施自動化測試的前提條件 (179)
6.7.3 自動化測試過程 (180)
6.7.4 自動化測試的原則 (182)
6.7.5 敏捷測試 (182)
小結 (183)
習題六 (184)
第7章 軟體維護 (186)
7.1 軟體維護的基本概念 (186)
7.1.1 軟體維護的目的 (186)
7.1.2 軟體維護的分類 (186)
7.1.3 軟體維護的特性 (187)
7.1.4 軟體維護的代價 (188)
7.2 軟體維護的過程 (189)
7.2.1 軟體維護的組織和維護過程管理 (189)
7.2.2 維護工作的流程 (190)
7.3 軟體維護技術 (191)
7.4 軟體可維護性 (192)
7.4.1 軟體可維護性的定義 (192)
7.4.2 提高可維護性的方法 (193)
7.5 軟體再工程技術 (197)
7.5.1 逆向工程 (197)
7.5.2 軟體再工程過程 (197)
7.5.3 再工程的成本及效益分析 (198)
7.5.4 再工程的風險分析 (199)
小結 (199)
習題七 (199)
第8章 軟體項目管理 (201)
8.1 軟體項目管理概述 (201)
8.1.1 軟體項目管理的特點 (201)
8.1.2 軟體項目管理的主要活動 (202)
8.2 軟體項目可行性研究 (203)
8.2.1 可行性研究的任務 (203)
8.2.2 可行性研究報告 (203)
8.3 軟體項目計畫 (204)
8.3.1 軟體項目計畫內容 (204)
8.3.2 軟體開發進度計畫 (205)
8.4 軟體項目成本估算技術 (207)
8.4.1 影響成本估算的因素 (207)
8.4.2 成本估算模型 (208)
8.4.3 成本/效益分析 (211)
8.5 軟體項目人力資源管理 (211)
8.5.1 軟體團隊建設 (212)
8.5.2 團隊人員的選擇 (213)
8.6 軟體項目風險管理 (213)
8.6.1 軟體項目風險管理概述 (213)
8.6.2 軟體項目風險管理過程 (214)
8.6.3 風險管理的理論和模型 (216)
8.7 軟體質量保證 (218)
8.8 軟體配置管理 (219)
8.8.1 軟體配置管理的基本概念 (219)
8.8.2 軟體配置管理的活動 (219)
小結 (222)
習題八 (222)
第9章 軟體能力成熟度模型 (223)
9.1 CMM概述 (223)
9.1.1 軟體過程成熟度的基本概念 (223)
9.1.2 軟體過程的成熟度等級 (224)
9.2 CMM的結構 (225)
9.2.1 關鍵過程域 (226)
9.2.2 關鍵實踐 (227)
9.2.3 共同特性 (227)
9.3 CMM的實施與評估 (227)
9.3.1 軟體過程評估的必要性 (228)
9.3.2 軟體過程評估及參考模型 (229)
9.3.3 軟體過程改進 (231)
9.3.4 CMM評估的執行步驟 (231)
9.3.5 軟體企業如何實施CMM (234)
9.3.6 CMM與ISO 9000標準 (236)
9.4 軟體能力成熟度模型集成 (237)
9.4.1 CMMI的產生與發展 (237)
9.4.2 CMMI的模型 (237)
9.4.3 CMMI的評估 (239)
9.4.4 CMMI與CMM的比較 (240)
小結 (241)
習題九 (241)
第10章 軟體工程課程設計 (243)
10.1 課程設計的目的和要求 (243)
10.2 課程設計步驟及安排 (243)
10.3 可視化建模工具Rational Rose (245)
10.3.1 Rose工具簡介 (245)
10.3.2 繪製業務用例圖 (246)
10.3.3 繪製用例圖 (247)
10.3.4 繪製類圖 (248)
10.3.5 繪製協作圖與順序圖 (249)
10.3.6 繪製活動圖 (250)
10.3.7 繪製狀態圖 (251)
10.3.8 繪製構件圖和部署圖 (251)
10.4 案例分析 (252)
10.4.1 案例一:ATM系統 (252)
10.4.2 案例二:網上拍賣系統 (257)
10.4.3 案例三:會議管理系統 (263)
10.4.4 案例四:倉庫信息管理系統 (272)
參考文獻 (278)

相關詞條

熱門詞條

聯絡我們