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

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

《軟體工程方法與實踐(第3版)》是2018年7月機械工業出版社出版的圖書,作者是竇萬峰。

基本介紹

  • 書名:軟體工程方法與實踐(第3版)
  • 作者:竇萬峰
  • ISBN:9787111549482
  • 定價:45元
  • 出版社:機械工業出版社
  • 出版時間:2018年7月
  • 開本:16開
內容簡介,圖書目錄,

內容簡介

本書分別從傳統的結構化軟體開發方法學和面向對象軟體開發方法學兩個方面介紹軟體工程的理論和方法,並將其融入實踐,通過豐富的案例介紹軟體分析與設計方法及其模型,深捉估踏入講解軟體開發各個階段的技術、方法和管理過程,主要內容包括:軟體工程基礎,結構化分析、設計與測試,面向對象分析、設計與測試,軟體維護與項目管理。本書適合作為高等院校軟體工程課程的教材,也可作為軟體開發從業人員的戀雅參考書。

圖書目錄

目 錄
前言
第一部分 軟體工程基礎
第1章 軟體工程概述2
1.1 引言2
1.2 什麼是軟體2
1.2.1 軟體的定義與特性2
1.2.2 軟體技術的演化3
1.3 什麼是軟體工程4
1.3.1 軟體危機4
1.3.2 解決軟體危機的途徑5
1.3.3 軟體工程的定義才只射符5
1.4 軟體工程的基本原理與基本原則7
1.4.1 基本原理7
1.4.2 基本原則8
1.5 軟體工程開發方法學8
1.5.1 結構化開發方法學9
1.5.2 面向對象開發方法學9
1.5.3 重型軟體工程與輕型軟體工程10
1.6 小結10
習題11
第2章 軟體過程12
2.1 引言12
2.2 什麼是軟體過程12
2.2.1 軟體過程的定義12
2.2.2 軟體過程框架13
2.3 軟體產品與過程15
2.4 軟體生存周期17
2.5 軟體工程活動18
2.6 小結20
習題21
第3章 軟體過程模型22
3.1 引言22
3.2 什麼是軟體過程模型22
3.3 傳統的軟體過程模型22
3.3.1 瀑布模型22
3.3.2 增量模型24
3.3.3 螺旋模型25
3.4 面向對象模型26
3.4.1 構件集成模型26
3.4.2 統一過程模型27
3.5 小結29
習題29
第4章 敏捷軟體開發方法30
4.1 引言30
4.2 敏捷軟體開發過程30
4.2.1 敏捷過程30
4.2.2 敏捷開發原捆棵應則31
4.3 Scrum開發過程31
4.3.1 Scrum的特點31
4.3.2 Scrum模型與過程32
4.4 極限編程 33
4.4.1 什麼是極限編程33
4.4.2 極限編程的要素34
4.5 結對編程35
4.5.1 什麼是結對編程36
4.5.2 結對編程的優勢分析37
4.5.3 結對編程的分類39
4.5.4 結對編程的方式39
4.6 小結41
習題41
第二部分 結構化分析、設計與測試
第5章 軟體需求分析44
5.1 引言44
5.2 什麼是軟體需求44
5.3 需求分析過程45
5.4 會談技術49
5.4.1 非正式會談49
5.4.2 正式會談49
5.5 調查技術50
5.5.1 確定調查內容50
5.5.2 可靠可信分析51
5.6 場景分析技術51
5.7 小結52
習題52
第6章 結構化分析53
6.1 引言53
6.2 結構化分析模型53
6.3 面向數據流的建模方法54
6.3.1 數據流建模方法54
6.3.2 實例分析57
6.4 面向數凶趨雅據的建模方法58
6.4.1 數據建模方法58
6.4.2 實例分析59
6.5 面向狀態的甩廈再項建模方法60
6.5.1 狀態建模方法60
6.5.2 實例分析61
6.6 規格說明書編寫示例62
6.7 小結70
習題70
第7章 結構化設計71
7.1 引言71
7.2 軟體設計過程71
7.3 軟體模組化設計75
7.4 軟體結構78
7.5 結構化概要設計79
7.5.1 數據流模型79
7.5.2 數據流設計方法80
7.5.3 實例分析81
7.6 概要設計文檔編寫示例83
7.7 詳項乃煮細設計90
7.8 結構化詳細設計91
7.9 詳細設計文檔編寫示例98
7.10 編碼實現101
7.10.1 編碼語言101
7.10.2 編碼風格102
7.11 小結103
習題103
第8章 結構化軟體測試106
8.1 引言106
8.2 軟體測試的目的和原則106
8.3 軟體測試的基本過程108
8.3.1 單元測試108
8.3.2 集成測試110
8.3.3 確認測試110
8.3.4 系統測試111
8.4 測試用例設計111
8.5 黑盒測試技術112
8.5.1 等價類劃分112
8.5.2 邊界值分析113
8.5.3 錯誤推測114
8.5.4 因果圖114
8.6 白盒測試技術117
8.6.1 邏輯覆蓋117
8.6.2 路徑覆蓋120
8.6.3 循環路徑測試策略122
8.7 集成測試技術123
8.7.1 集成策略123
8.7.2 性能測試125
8.7.3 實例分析127
8.8 調試技術133
8.8.1 調試過程133
8.8.2 調試策略134
8.9 軟體測試文檔135
8.9.1 軟體測試計畫文檔135
8.9.2 集成測試文檔137
8.10 小結139
習題139
第9章 高要求系統的分析與設計140
9.1 引言140
9.2 什麼是高要求系統140
9.3 高要求系統的需求分析142
9.3.1 風險需求描述143
9.3.2 安全性描述146
9.3.3 信息安全描述146
9.3.4 軟體可靠性描述146
9.3.5 胰島素輸送系統完整的需求描述147
9.4 形式化描述方法149
9.4.1 軟體過程中的形式化描述149
9.4.2 接口描述方法150
9.4.3 行為描述153
9.5 高要求系統的設計155
9.6 高要求系統的開發156
9.7 系統驗證160
9.7.1 可靠性驗證160
9.7.2 安全性保證161
9.7.3 信息安全評估164
9.8 小結165
習題166
第三部分 面向對象分析、設計與測試
第10章 面向對象分析168
10.1 引言168
10.2 面向對象模型168
10.3 UML170
10.3.1 UML的組成170
10.3.2 UML的視圖171
10.4 面向對象分析過程172
10.5 用例驅動分析173
10.5.1 用例建模分析173
10.5.2 開發活動圖177
10.5.3 開發泳道圖178
10.6 領域與業務建模179
10.6.1 識別業務類和領域類179
10.6.2 業務類圖180
10.6.3 識別屬性和操作181
10.6.4 開發協作圖182
10.6.5 開發包圖182
10.6.6 邏輯架構183
10.7 系統行為建模185
10.7.1 系統順序圖185
10.7.2 建立操作契約186
10.7.3 建立順序圖187
10.7.4 系統狀態圖188
10.8 POS機系統案例分析188
10.9 分散式結對編程系統分析191
10.9.1 項目概述191
10.9.2 功能描述192
10.9.3 邏輯分析與建模200
10.10 小結204
習題205
第11章 面向對象設計206
11.1 引言206
11.2 面向對象設計模型206
11.3 構件設計207
11.3.1 構件設計的步驟207
11.3.2 構件設計的原則208
11.4 並發性設計209
11.5 設計模式211
11.5.1 基於職責的設計211
11.5.2 常見的設計模式212
11.6 面向對象詳細設計215
11.6.1 模型精化216
11.6.2 邏輯架構精化設計219
11.6.3 分層設計221
11.6.4 類操作設計223
11.7 方法設計229
11.8 精化設計234
11.9 數據存儲與持久性設計238
11.10 部署設計與構件圖243
11.11 小結244
習題245
第12章 面向對象實現與測試246
12.1 引言246
12.2 面向對象實現246
12.3 POS機系統實現247
12.4 分散式結對編程系統實現253
12.5 面向對象測試256
12.6 面向對象測試策略258
12.7 測試驅動開發261
12.7.1 什麼是測試驅動開發261
12.7.2 測試驅動開發的步驟264
12.7.3 編寫測試程式266
12.7.4 代碼重構270
12.8 小結271
習題271
第四部分 軟體維護與項目管理
第13章 軟體維護274
13.1 引言274
13.2 軟體的可維護性275
13.3 軟體維護的類型275
13.4 軟體維護方法277
13.5 提高軟體的可維護性279
13.5.1 結構化維護與非結構化維護279
13.5.2 提高軟體可維護性的技術途徑280
13.6 小結281
習題281
第14章 軟體項目管理283
14.1 引言283
14.2 軟體項目組織285
14.3 軟體過程管理287
14.3.1 軟體過程度量287
14.3.2 軟體過程改進288
14.3.3 軟體項目度量289
14.4 軟體項目風險管理289
14.4.1 風險識別289
14.4.2 風險預測290
14.4.3 風險管理290
14.5 軟體配置管理291
14.5.1 基本概念291
14.5.2 軟體配置管理過程292
14.6 軟體項目估算293
14.6.1 軟體項目資源293
14.6.2 軟體規模度量294
14.6.3 估算管理296
14.7 分解技術296
14.7.1 基於問題分解的估算296
14.7.2 基於過程分解的估算298
14.8 經驗估算技術299
14.8.1 專家類比推斷299
14.8.2 中級COCOMO估算模型300
14.9 軟體質量管理303
14.9.1 軟體質量保證303
14.9.2 軟體質量度量305
14.10 項目進度管理308
14.10.1 項目進度管理計畫308
14.10.2 進度安排309
14.10.3 進度跟蹤管理311
14.11 小結311
習題312
參考文獻314
第5章 軟體需求分析44
5.1 引言44
5.2 什麼是軟體需求44
5.3 需求分析過程45
5.4 會談技術49
5.4.1 非正式會談49
5.4.2 正式會談49
5.5 調查技術50
5.5.1 確定調查內容50
5.5.2 可靠可信分析51
5.6 場景分析技術51
5.7 小結52
習題52
第6章 結構化分析53
6.1 引言53
6.2 結構化分析模型53
6.3 面向數據流的建模方法54
6.3.1 數據流建模方法54
6.3.2 實例分析57
6.4 面向數據的建模方法58
6.4.1 數據建模方法58
6.4.2 實例分析59
6.5 面向狀態的建模方法60
6.5.1 狀態建模方法60
6.5.2 實例分析61
6.6 規格說明書編寫示例62
6.7 小結70
習題70
第7章 結構化設計71
7.1 引言71
7.2 軟體設計過程71
7.3 軟體模組化設計75
7.4 軟體結構78
7.5 結構化概要設計79
7.5.1 數據流模型79
7.5.2 數據流設計方法80
7.5.3 實例分析81
7.6 概要設計文檔編寫示例83
7.7 詳細設計90
7.8 結構化詳細設計91
7.9 詳細設計文檔編寫示例98
7.10 編碼實現101
7.10.1 編碼語言101
7.10.2 編碼風格102
7.11 小結103
習題103
第8章 結構化軟體測試106
8.1 引言106
8.2 軟體測試的目的和原則106
8.3 軟體測試的基本過程108
8.3.1 單元測試108
8.3.2 集成測試110
8.3.3 確認測試110
8.3.4 系統測試111
8.4 測試用例設計111
8.5 黑盒測試技術112
8.5.1 等價類劃分112
8.5.2 邊界值分析113
8.5.3 錯誤推測114
8.5.4 因果圖114
8.6 白盒測試技術117
8.6.1 邏輯覆蓋117
8.6.2 路徑覆蓋120
8.6.3 循環路徑測試策略122
8.7 集成測試技術123
8.7.1 集成策略123
8.7.2 性能測試125
8.7.3 實例分析127
8.8 調試技術133
8.8.1 調試過程133
8.8.2 調試策略134
8.9 軟體測試文檔135
8.9.1 軟體測試計畫文檔135
8.9.2 集成測試文檔137
8.10 小結139
習題139
第9章 高要求系統的分析與設計140
9.1 引言140
9.2 什麼是高要求系統140
9.3 高要求系統的需求分析142
9.3.1 風險需求描述143
9.3.2 安全性描述146
9.3.3 信息安全描述146
9.3.4 軟體可靠性描述146
9.3.5 胰島素輸送系統完整的需求描述147
9.4 形式化描述方法149
9.4.1 軟體過程中的形式化描述149
9.4.2 接口描述方法150
9.4.3 行為描述153
9.5 高要求系統的設計155
9.6 高要求系統的開發156
9.7 系統驗證160
9.7.1 可靠性驗證160
9.7.2 安全性保證161
9.7.3 信息安全評估164
9.8 小結165
習題166
第三部分 面向對象分析、設計與測試
第10章 面向對象分析168
10.1 引言168
10.2 面向對象模型168
10.3 UML170
10.3.1 UML的組成170
10.3.2 UML的視圖171
10.4 面向對象分析過程172
10.5 用例驅動分析173
10.5.1 用例建模分析173
10.5.2 開發活動圖177
10.5.3 開發泳道圖178
10.6 領域與業務建模179
10.6.1 識別業務類和領域類179
10.6.2 業務類圖180
10.6.3 識別屬性和操作181
10.6.4 開發協作圖182
10.6.5 開發包圖182
10.6.6 邏輯架構183
10.7 系統行為建模185
10.7.1 系統順序圖185
10.7.2 建立操作契約186
10.7.3 建立順序圖187
10.7.4 系統狀態圖188
10.8 POS機系統案例分析188
10.9 分散式結對編程系統分析191
10.9.1 項目概述191
10.9.2 功能描述192
10.9.3 邏輯分析與建模200
10.10 小結204
習題205
第11章 面向對象設計206
11.1 引言206
11.2 面向對象設計模型206
11.3 構件設計207
11.3.1 構件設計的步驟207
11.3.2 構件設計的原則208
11.4 並發性設計209
11.5 設計模式211
11.5.1 基於職責的設計211
11.5.2 常見的設計模式212
11.6 面向對象詳細設計215
11.6.1 模型精化216
11.6.2 邏輯架構精化設計219
11.6.3 分層設計221
11.6.4 類操作設計223
11.7 方法設計229
11.8 精化設計234
11.9 數據存儲與持久性設計238
11.10 部署設計與構件圖243
11.11 小結244
習題245
第12章 面向對象實現與測試246
12.1 引言246
12.2 面向對象實現246
12.3 POS機系統實現247
12.4 分散式結對編程系統實現253
12.5 面向對象測試256
12.6 面向對象測試策略258
12.7 測試驅動開發261
12.7.1 什麼是測試驅動開發261
12.7.2 測試驅動開發的步驟264
12.7.3 編寫測試程式266
12.7.4 代碼重構270
12.8 小結271
習題271
第四部分 軟體維護與項目管理
第13章 軟體維護274
13.1 引言274
13.2 軟體的可維護性275
13.3 軟體維護的類型275
13.4 軟體維護方法277
13.5 提高軟體的可維護性279
13.5.1 結構化維護與非結構化維護279
13.5.2 提高軟體可維護性的技術途徑280
13.6 小結281
習題281
第14章 軟體項目管理283
14.1 引言283
14.2 軟體項目組織285
14.3 軟體過程管理287
14.3.1 軟體過程度量287
14.3.2 軟體過程改進288
14.3.3 軟體項目度量289
14.4 軟體項目風險管理289
14.4.1 風險識別289
14.4.2 風險預測290
14.4.3 風險管理290
14.5 軟體配置管理291
14.5.1 基本概念291
14.5.2 軟體配置管理過程292
14.6 軟體項目估算293
14.6.1 軟體項目資源293
14.6.2 軟體規模度量294
14.6.3 估算管理296
14.7 分解技術296
14.7.1 基於問題分解的估算296
14.7.2 基於過程分解的估算298
14.8 經驗估算技術299
14.8.1 專家類比推斷299
14.8.2 中級COCOMO估算模型300
14.9 軟體質量管理303
14.9.1 軟體質量保證303
14.9.2 軟體質量度量305
14.10 項目進度管理308
14.10.1 項目進度管理計畫308
14.10.2 進度安排309
14.10.3 進度跟蹤管理311
14.11 小結311
習題312
參考文獻314

相關詞條

熱門詞條

聯絡我們