軟體工程

第2版

徠《軟體工程(第2版)》是2013年清華大學出版社出版的圖書,作者是錢樂秋、趙文耘、牛軍鈺。

書籍信息


作者:錢樂秋、趙文耘、牛軍鈺
定價:39.50元
印次:2-4
ISBN:9787302328766
出版日期:2013.08.15
印刷日期:2015.01.23

內容簡介


本書系統地介紹了軟體工程的概念、原理、過程及主要方法,內容上覆蓋了ACM和IEEE最新制定的Computing Curricula中有關軟體工程的主要知識點。本書在介紹軟體工程的基本概念和基本原理的基礎上,重點介紹軟體開發方法和技術,包括經典的和常用的方法,如結構化方法、面向數據結構方法和面向對象方法,以及一些軟體工程的新技術和新方法,如UML 2.0、基於構件的開發、敏捷軟體開發、Web工程、CMM和CMMI等。此外,本書盡量採用國標、ISO標準及《計算機科學技術百科全書》對專業術語的名稱及其語義解釋,必要時,術語名稱會同時給出其他習慣稱謂。本書適合作為高等學校計算機科學與技術學科、軟體工程學科各專業的教材,也可作為軟體開發人員的參考書。

圖書目錄


第1章概論11.1計算機軟體1
1.1.1軟體的發展1
1.1.2軟體的特點2
1.1.3軟體的分類3
1.1.4軟體語言3
1.2軟體工程5
1.2.1軟體工程定義5
1.2.2軟體工程框架6
1.2.3軟體生存周期6
1.3軟體過程7
1.3.1軟體生存周期過程8
1.3.2能力成熟度模型CMM11
1.3.3能力成熟度模型集成CMMI13
1.4軟體過程模型16
1.4.1瀑布模型16
1.4.2演化模型17
1.4.3增量模型18
1.4.4原型模型18
1.4.5螺旋模型20
1.4.6噴泉模型21
1.4.7基於構件的開發模型21
1.4.8形式化方法模型22
1.5CASE工具與環境23
1.5.1軟體工具23
1.5.2軟體開發環境25
1.6小結26
習題26[]目錄[]軟體工程(第2版)[]第2章系統工程27
2.1基於計算機的系統27
2.2系統工程的任務28
2.3可行性分析29
2.3.1經濟可行性29
2.3.2技術可行性31
2.3.3法律可行性31
2.3.4方案的選擇和折衷31
2.4小結32
習題32
第3章需求工程33
3.1需求工程概述33
3.2需求獲取35
3.2.1軟體需求35
3.2.2需求獲取方法與策略36
3.3需求分析、協商與建模40
3.3.1需求分析原則40
3.3.2信息域40
3.3.3需求協商41
3.3.4需求建模41
3.4需求規約與驗證42
3.4.1需求規約的原則42
3.4.2需求規約42
3.4.3需求驗證44
3.5需求管理44
3.6小結45
習題45
第4章設計工程46
4.1軟體設計工程概述46
4.2軟體設計原則48
4.2.1抽象與逐步求精49
4.2.2模塊化49
4.2.3信息隱藏50
4.2.4功能獨立51
4.3軟體體系結構設計53
4.3.1體系結構發展過程53
4.3.2軟體體系結構的風格54
4.3.3評估可選的體系結構56
4.4部件級設計技術57
4.4.1結構化程序設計方法58
4.4.2圖形表示法58
4.4.3判定表61
4.4.4設計性語言PDL62
4.5設計規約與設計評審63
4.5.1設計規約63
4.5.2設計評審64
4.6小結65
習題65
第5章結構化分析與設計67
5.1結構化分析方法概述67
5.2數據流圖69
5.2.1數據流圖的圖形表示69
5.2.2分層數據流圖的畫法72
5.3分層數據流圖的審查76
5.3.1分層數據流圖的一致性和完整性77
5.3.2構造分層DFD時需要注意的問題80
5.3.3分解的程度82
5.4數據字典82
5.4.1字典條目的種類及描述符號82
5.4.2字典條目83
5.4.3字典條目實例87
5.4.4數據字典的實現88
5.5描述基本加工的小說明88
5.5.1結構化語言89
5.5.2判定表90
5.5.3判定樹91
5.6結構化設計概述91
5.6.1結構圖92
5.6.2啟髮式設計策略94
5.6.3結構化設計的步驟96
5.7數據流圖到軟體體系結構的映射97
5.7.1信息流97
5.7.2數據流圖映射到結構圖的步驟98
5.7.3變換分析98
5.7.4事務分析101
5.7.5分層DFD的映射102
5.8初始結構圖的改進104
5.8.1結構圖改進實例104
5.8.2結構圖改進技巧106
5.9小結108
習題108
第6章面向數據結構的分析與設計110
6.1JSP方法110
6.1.1數據結構與程序結構的表示110
6.1.2JSP方法的分析和設計步驟114
6.2JSD方法簡介118
6.3小結119
習題119
第7章面向對象方法基礎120
7.1面向對象的基本概念121
7.2面向對象分析和設計過程124
7.2.1面向對象分析過程124
7.2.2面向對象設計過程126
7.2.3設計模式128
7.3UML概述129
7.3.1UML發展歷史129
7.3.2UML簡介130
7.3.3視圖131
7.3.4圖133
7.4小結136
習題136
第8章面向對象建模137
8.1用況建模137
8.1.1用況建模步驟137
8.1.2確定執行者138
8.1.3確定用況139
8.1.4用況描述140
8.1.5用況圖中的關係142
8.1.6案例說明143
8.1.7用況建模實例144
8.2靜態建模147
8.2.1類圖和對象圖148
8.2.2CRC技術148
8.2.3類之間的關係153
8.2.4靜態建模實例161
8.3動態建模163
8.3.1狀態機圖163
8.3.2活動圖170
8.3.3順序圖172
8.3.4通信圖176
8.3.5動態建模實例178
8.4物理體系結構建模179
8.4.1構件圖180
8.4.2部署圖181
8.5小結182
習題182
第9章基於構件的軟體開發184
9.1基於構件的軟體開發概述184
9.1.1構件184
9.1.2基於構件的軟體開發過程187
9.1.3CBSD對質量、生產率和成本的影響189
9.2建造可復用構件190
9.2.1對可復用構件的要求190
9.2.2創建領域構件的設計框架191
9.2.3可變性分析191
9.2.4可變性機制192
9.3應用系統工程194
9.3.1基於CBSD的應用系統分析和設計194
9.3.2構件的鑒定、特化和組裝195
9.4構件的管理196
9.4.1構件的分類描述196
9.4.2構件庫管理系統197
9.5小結198
習題198
第10章敏捷軟體開發199
10.1敏捷軟體開發方法概述199
10.1.1敏捷宣言199
10.1.2精益思想201
10.1.3敏捷方法綜述202
10.2Scrum方法203
10.2.1Scrum簡介203
10.2.2Scrum團隊205
10.2.3需求管理205
10.2.4基於時間盒的迭代206
10.2.5回顧會議209
10.3極限編程方法210
10.3.1極限編程簡介210
10.3.2價值觀和原則211
10.3.3實踐212
10.4看板方法217
10.4.1看板方法簡介217
10.4.2看板方法的規則218
10.4.3看板方法和Scrum的比較219
10.5小結220
習題220
第11章人機界面設計221
11.1人的因素221
11.1.1人對感知過程的認識221
11.1.2用戶的技能和行為方式222
11.1.3人體測量學對設計的影響222
11.2人機界面風格224
11.3人機界面分析與建模227
11.3.1人機界面設計過程227
11.3.2人機界面設計中涉及的模型228
11.3.3任務分析的途徑與方法228
11.4界面設計活動229
11.4.1定義界面對象和動作229
11.4.2設計問題230
11.4.3黃金原則231
11.5實現工具233
11.6設計評估233
11.7小結235
習題235
第12章程序設計語言和編碼236
12.1程序設計語言236
12.1.1程序設計語言的基本成分236
12.1.2程序設計語言的特性238
12.1.3程序設計語言的分類239
12.1.4程序設計語言的選擇240
12.2程序設計風格241
12.2.1源程序文檔化241
12.2.2數據說明244
12.2.3語句結構244
12.2.4輸入和輸出246
12.3小結246
習題246
第13章軟體測試247
13.1軟體測試基礎247
13.1.1軟體測試的目的247
13.1.2軟體測試的基本原則248
13.1.3白盒測試和黑盒測試249
13.2白盒測試249
13.2.1邏輯覆蓋測試249
13.2.2邏輯表達式錯誤敏感的測試254
13.2.3基本路徑測試255
13.2.4數據流測試257
13.2.5循環測試258
13.3黑盒測試259
13.3.1等價類劃分259
13.3.2邊界值分析262
13.3.3比較測試263
13.3.4錯誤猜測263
13.3.5因果圖263
13.4測試策略267
13.4.1V模型267
13.4.2單元測試268
13.4.3集成測試269
13.4.4確認測試272
13.4.5系統測試273
13.5面向對象測試274
13.5.1面向對象語境對測試的影響274
13.5.2面向對象測試策略275
13.5.3面向對象測試用例設計276
13.6測試完成標準276
13.7調試277
13.7.1調試過程277
13.7.2調試方法277
13.7.3糾正錯誤278
13.8小結279
習題279
第14章Web工程281
14.1WebApp的屬性和類型281
14.1.1WebApp的屬性281
14.1.2WebApp的類型283
14.2Web工程過程284
14.2.1過程框架284
14.2.2改善框架285
14.2.3Web工程的最佳實踐285
14.2.4方法和工具285
14.3WebApp建模286
14.3.1WebApp需求建模286
14.3.2WebApp設計建模288
14.4WebApp質量管理293
14.4.1WebApp質量維度293
14.4.2WebApp的測試294
14.4.3WebApp配置管理295
14.5小結296
習題296
第15章軟體維護與再工程297
15.1軟體維護297
15.1.1軟體維護的概念297
15.1.2軟體維護的過程300
15.1.3軟體可維護性302
15.2再工程技術305
15.2.1再工程的概念305
15.2.2業務過程再工程305
15.2.3軟體再工程過程306
徠15.2.4逆向工程308
15.3小結309
習題309
第16章軟體項目管理310
16.1軟體項目管理概述310
16.1.1軟體項目管理的關注點310
16.1.2軟體項目管理的內容313
16.2軟體度量316
16.2.1面向規模的度量317
16.2.2面向功能的度量318
16.2.3軟體質量模型321
16.2.4程序複雜性度量327
16.2.5軟體可靠性度量329
16.3軟體項目估算330
16.3.1代碼行、功能點和工作量估算330
16.3.2IBM估算模型331
16.3.3CoCoMo模型332
16.3.4Putnam模型334
16.3.5軟體可靠性估算335
16.4項目進度管理336
16.4.1人員與工作量之間的關係337
16.4.2任務的分解與并行337
16.4.3任務工作量的確定338
16.4.4進度安排339
16.5風險管理344
16.5.1風險標識344
16.5.2風險預測345
16.5.3風險評估345
16.5.4風險管理和監控346
16.6軟體項目的組織348
16.6.1組織結構的模式348
16.6.2程序設計小組的組織形式348
16.6.3人員配備350
16.7軟體質量管理351
16.7.1軟體質量保證352
16.7.2軟體評審353
16.8軟體配置管理355
16.8.1軟體配置管理的基本概念355
16.8.2軟體配置管理的主要活動356
16.9小結359
習題359
辭彙索引361參考文獻371