本書(shū)是軟件工程領(lǐng)域的經(jīng)典教材。全書(shū)由5篇(16章)構(gòu)成,第1篇(第1、2章)講述軟件工程與軟件過(guò)程;第2篇講述傳統(tǒng)方法學(xué)(第3~5章),包括結(jié)構(gòu)化分析、設(shè)計(jì)與實(shí)現(xiàn);第3篇講述面向?qū)ο蠓椒▽W(xué)(第6~10章),包括面向?qū)ο蟮母拍睢⒛P、分析、設(shè)計(jì)、實(shí)現(xiàn),同時(shí)介紹了統(tǒng)一建模語(yǔ)言UML;第4篇講述軟件項(xiàng)目管理(第11~14章),包括軟件項(xiàng)目的計(jì)劃、組織和控制,軟件維護(hù)與軟件文檔;第5篇講述軟件工程的高級(jí)課題(第15、16章),包括形式化方法和軟件重用! ”緯(shū)內(nèi)容新穎、實(shí)例豐富,可以作為高等院校“軟件工程”課程的教材或教學(xué)參考書(shū),也可以供程序員、軟件測(cè)試工程師、系統(tǒng)工程師以及軟件項(xiàng)目經(jīng)理等相關(guān)人員閱讀參考。
1.作者權(quán)威,教材經(jīng)典。2.配套建設(shè),教輔資源豐富。3.教材內(nèi)容與時(shí)俱進(jìn),教材習(xí)題遴選典型實(shí)用。
目 錄
第1篇 軟件工程與軟件過(guò)程
第1章 軟件工程概述 1
1.1 軟件危機(jī)與軟件工程的起源 1
1.1.1 計(jì)算機(jī)系統(tǒng)的發(fā)展歷程 1
1.1.2 軟件危機(jī)介紹 2
1.1.3 產(chǎn)生軟件危機(jī)的原因 2
1.1.4 消除軟件危機(jī)的途徑 4
1.2 軟件工程 5
1.2.1 什么是軟件工程 5
1.2.2 軟件工程的基本原理 5
1.3 軟件工程包含的領(lǐng)域 7
小結(jié) 9 目 錄
第1篇 軟件工程與軟件過(guò)程
第1章 軟件工程概述 1
1.1 軟件危機(jī)與軟件工程的起源 1
1.1.1 計(jì)算機(jī)系統(tǒng)的發(fā)展歷程 1
1.1.2 軟件危機(jī)介紹 2
1.1.3 產(chǎn)生軟件危機(jī)的原因 2
1.1.4 消除軟件危機(jī)的途徑 4
1.2 軟件工程 5
1.2.1 什么是軟件工程 5
1.2.2 軟件工程的基本原理 5
1.3 軟件工程包含的領(lǐng)域 7
小結(jié) 9
習(xí)題 9
第2章 軟件過(guò)程 11
2.1 軟件生命周期的基本任務(wù) 11
2.2 瀑布模型 14
2.3 快速原型模型 16
2.4 增量模型 17
2.5 螺旋模型 18
2.6 噴泉模型 19
2.7 Rational統(tǒng)一過(guò)程 20
2.7.1 最佳實(shí)踐 21
2.7.2 RUP的十大要素 22
2.7.3 RUP生命周期 24
2.8 敏捷過(guò)程與極限編程 26
2.8.1 敏捷過(guò)程概述 26
2.8.2 極限編程 27
2.9 能力成熟度模型 29
2.9.1 能力成熟度模型的結(jié)構(gòu) 29
2.9.2 能力成熟度等級(jí) 30
2.9.3 關(guān)鍵過(guò)程域 31
2.9.4 應(yīng)用CMM 32
小結(jié) 32
習(xí)題 33
第2篇 傳統(tǒng)方法學(xué)
第3章 結(jié)構(gòu)化分析 35
3.1 概述 35
3.2 與用戶溝通的方法 36
3.2.1 訪談 36
3.2.2 簡(jiǎn)易的應(yīng)用規(guī)格說(shuō)明技術(shù) 37
3.2.3 軟件原型 38
3.3 分析建模與規(guī)格說(shuō)明 39
3.3.1 分析建!39
3.3.2 軟件需求規(guī)格說(shuō)明 39
3.4 實(shí)體—關(guān)系圖 41
3.5 數(shù)據(jù)流圖 42
3.5.1 數(shù)據(jù)流圖符號(hào) 43
3.5.2 例子 44
3.5.3 命名 46
3.6 狀態(tài)轉(zhuǎn)換圖 47
3.6.1 狀態(tài) 47
3.6.2 事件 47
3.6.3 符號(hào) 48
3.6.4 例子 48
3.7 數(shù)據(jù)字典 49
3.8 結(jié)構(gòu)化分析實(shí)例 51
3.8.1 問(wèn)題陳述 51
3.8.2 問(wèn)題定義 51
3.8.3 可行性研究 52
3.8.4 需求分析 57
小結(jié) 62
習(xí)題 63
第4章 結(jié)構(gòu)化設(shè)計(jì) 67
4.1 結(jié)構(gòu)化設(shè)計(jì)與結(jié)構(gòu)化分析的關(guān)系 67
4.2 軟件設(shè)計(jì)的概念和原理 68
4.2.1 模塊化 68
4.2.2 抽象 70
4.2.3 逐步求精 70
4.2.4 信息隱藏 71
4.3 模塊獨(dú)立 72
4.3.1 耦合 72
4.3.2 內(nèi)聚 73
4.4 啟發(fā)規(guī)則 74
4.5 表示軟件結(jié)構(gòu)的圖形工具 76
4.5.1 層次圖和HIPO圖 76
4.5.2 結(jié)構(gòu)圖 78
4.6 面向數(shù)據(jù)流的設(shè)計(jì)方法 79
4.6.1 概念 79
4.6.2 變換分析 80
4.6.3 事務(wù)分析 85
4.6.4 設(shè)計(jì)優(yōu)化 86
4.7 人—機(jī)界面設(shè)計(jì) 87
4.7.1 人—機(jī)界面設(shè)計(jì)問(wèn)題 87
4.7.2 人—機(jī)界面設(shè)計(jì)過(guò)程 88
4.7.3 界面設(shè)計(jì)指南 89
4.8 過(guò)程設(shè)計(jì) 91
4.9 過(guò)程設(shè)計(jì)的工具 92
4.9.1 程序流程圖 93
4.9.2 盒圖(N-S圖) 93
4.9.3 PAD圖 94
4.9.4 判定表 95
4.9.5 判定樹(shù) 96
4.9.6 過(guò)程設(shè)計(jì)語(yǔ)言 97
4.10 面向數(shù)據(jù)結(jié)構(gòu)的設(shè)計(jì)方法 97
4.10.1 Jackson圖 98
4.10.2 改進(jìn)的Jackson圖 99
4.10.3 Jackson方法 99
小結(jié) 103
習(xí)題 104
第5章 結(jié)構(gòu)化實(shí)現(xiàn) 106
5.1 編碼 107
5.1.1 選擇程序設(shè)計(jì)語(yǔ)言 107
5.1.2 編碼風(fēng)格 108
5.2 軟件測(cè)試基礎(chǔ) 110
5.2.1 測(cè)試目標(biāo) 110
5.2.2 黑盒測(cè)試和白盒測(cè)試 110
5.2.3 測(cè)試準(zhǔn)則 111
5.2.4 流圖 111
5.3 邏輯覆蓋 112
5.4 控制結(jié)構(gòu)測(cè)試 115
5.4.1 基本路徑測(cè)試 115
5.4.2 條件測(cè)試 117
5.4.3 數(shù)據(jù)流測(cè)試 119
5.4.4 循環(huán)測(cè)試 120
5.5 黑盒測(cè)試技術(shù) 121
5.5.1 等價(jià)劃分 121
5.5.2 邊界值分析 123
5.5.3 錯(cuò)誤推測(cè) 124
5.6 測(cè)試策略 124
5.6.1 測(cè)試步驟 125
5.6.2 單元測(cè)試 125
5.6.3 集成測(cè)試 127
5.6.4 確認(rèn)測(cè)試 130
5.7 調(diào)試 131
5.7.1 調(diào)試過(guò)程 131
5.7.2 調(diào)試途徑 132
5.8 軟件可靠性 133
5.8.1 基本概念 134
5.8.2 估算平均無(wú)故障時(shí)間的方法 134
小結(jié) 136
習(xí)題 137
第3篇 面向?qū)ο蠓椒▽W(xué)
第6章 面向?qū)ο蠓椒▽W(xué)導(dǎo)論 140
6.1 面向?qū)ο蟪绦蛟O(shè)計(jì)實(shí)例 140
6.1.1 用對(duì)象分解取代功能分解 140
6.1.2 設(shè)計(jì)類等級(jí) 142
6.1.3 定義屬性和服務(wù) 143
6.2 面向?qū)ο蠓椒▽W(xué)概述 144
6.2.1 面向?qū)ο蠓椒▽W(xué)的要點(diǎn) 144
6.2.2 面向?qū)ο蟮能浖^(guò)程 146
6.3 面向?qū)ο蠓椒▽W(xué)的主要優(yōu)點(diǎn) 146
6.4 面向?qū)ο蟮母拍睢?49
6.4.1 對(duì)象 150
6.4.2 其他概念 152
6.5 面向?qū)ο蠼!?55
6.6 對(duì)象模型 156
6.6.1 表示類的符號(hào) 156
6.6.2 表示關(guān)系的符號(hào) 158
6.7 動(dòng)態(tài)模型 162
6.8 功能模型 163
6.9 3種模型之間的關(guān)系 163
小結(jié) 164
習(xí)題 164
第7章 面向?qū)ο蠓治觥?66
7.1 分析過(guò)程 166
7.1.1 概述 166
7.1.2 3個(gè)子模型與5個(gè)層次 167
7.2 需求陳述 168
7.2.1 書(shū)寫要點(diǎn) 168
7.2.2 例子 168
7.3 建立對(duì)象模型 169
7.3.1 確定類與對(duì)象 170
7.3.2 確定關(guān)聯(lián) 171
7.3.3 劃分主題 174
7.3.4 確定屬性 174
7.3.5 識(shí)別繼承關(guān)系 176
7.3.6 反復(fù)修改 177
7.4 建立動(dòng)態(tài)模型 179
7.4.1 編寫腳本 179
7.4.2 設(shè)想用戶界面 180
7.4.3 畫(huà)事件跟蹤圖 181
7.4.4 畫(huà)狀態(tài)圖 182
7.4.5 審查動(dòng)態(tài)模型 184
7.5 建立功能模型 184
7.6 定義服務(wù) 186
7.7 面向?qū)ο蠓治鰧?shí)例 186
7.7.1 需求陳述 187
7.7.2 建立對(duì)象模型 187
7.7.3 建立動(dòng)態(tài)模型 188
7.7.4 建立功能模型 190
7.7.5 進(jìn)一步完善 190
小結(jié) 191
習(xí)題 192
第8章 面向?qū)ο笤O(shè)計(jì) 194
8.1 面向?qū)ο笤O(shè)計(jì)的準(zhǔn)則 194
8.2 啟發(fā)規(guī)則 196
8.3 系統(tǒng)分解 197
8.3.1 子系統(tǒng)之間的兩種交互方式 198
8.3.2 組織系統(tǒng)的兩種方案 199
8.3.3 設(shè)計(jì)系統(tǒng)的拓?fù)浣Y(jié)構(gòu) 199
8.4 設(shè)計(jì)問(wèn)題域子系統(tǒng) 199
8.5 設(shè)計(jì)人—機(jī)交互子系統(tǒng) 201
8.5.1 設(shè)計(jì)人—機(jī)交互界面的準(zhǔn)則 201
8.5.2 設(shè)計(jì)人—機(jī)交互子系統(tǒng)的策略 202
8.6 設(shè)計(jì)任務(wù)管理子系統(tǒng) 203
8.6.1 分析并發(fā)性 203
8.6.2 設(shè)計(jì)任務(wù)管理子系統(tǒng) 204
8.7 設(shè)計(jì)數(shù)據(jù)管理子系統(tǒng) 205
8.7.1 選擇數(shù)據(jù)存儲(chǔ)管理模式 205
8.7.2 設(shè)計(jì)數(shù)據(jù)管理子系統(tǒng) 206
8.7.3 例子 207
8.8 設(shè)計(jì)類中的服務(wù) 208
8.8.1 確定類中應(yīng)有的服務(wù) 208
8.8.2 設(shè)計(jì)實(shí)現(xiàn)服務(wù)的方法 208
8.9 設(shè)計(jì)關(guān)聯(lián) 209
8.10 設(shè)計(jì)優(yōu)化 210
8.10.1 確定優(yōu)先級(jí) 210
8.10.2 提高效率的幾項(xiàng)技術(shù) 211
8.10.3 調(diào)整繼承關(guān)系 212
8.11 面向?qū)ο蠓治雠c設(shè)計(jì)實(shí)例 213
8.11.1 面向?qū)ο蠓治觥?14
8.11.2 面向?qū)ο笤O(shè)計(jì) 215
小結(jié) 220
習(xí)題 220
第9章 面向?qū)ο髮?shí)現(xiàn) 222
9.1 程序設(shè)計(jì)語(yǔ)言 222
9.1.1 面向?qū)ο笳Z(yǔ)言的優(yōu)點(diǎn) 222
9.1.2 面向?qū)ο笳Z(yǔ)言的技術(shù)特點(diǎn) 223
9.1.3 選擇面向?qū)ο笳Z(yǔ)言 226
9.2 程序設(shè)計(jì)風(fēng)格 226
9.2.1 提高可重用性 227
9.2.2 提高可擴(kuò)充性 228
9.2.3 提高健壯性 229
9.3 測(cè)試策略 229
9.3.1 面向?qū)ο蟮膯卧獪y(cè)試 230
9.3.2 面向?qū)ο蟮募蓽y(cè)試 230
9.3.3 面向?qū)ο蟮拇_認(rèn)測(cè)試 230
9.4 設(shè)計(jì)測(cè)試用例 230
9.4.1 測(cè)試類的方法 231
9.4.2 集成測(cè)試方法 232
小結(jié) 234
習(xí)題 234
第10章 統(tǒng)一建模語(yǔ)言 236
10.1 概述 236
10.1.1 UML的產(chǎn)生和發(fā)展 236
10.1.2 UML的系統(tǒng)結(jié)構(gòu) 237
10.1.3 UML的圖 238
10.1.4 UML的應(yīng)用領(lǐng)域 239
10.2 靜態(tài)建模機(jī)制 240
10.2.1 用例 240
10.2.2 類圖和對(duì)象圖 244
10.3 動(dòng)態(tài)建模機(jī)制 245
10.3.1 消息 245
10.3.2 狀態(tài)圖 246
10.3.3 順序圖 247
10.3.4 協(xié)作圖 248
10.3.5 活動(dòng)圖 249
10.4 描述物理架構(gòu)的機(jī)制 249
10.4.1 邏輯架構(gòu)和物理架構(gòu) 250
10.4.2 構(gòu)件圖 250
10.4.3 部署圖 250
10.5 使用和擴(kuò)展UML 252
10.5.1 使用UML的準(zhǔn)則 252
10.5.2 擴(kuò)展UML的機(jī)制 253
小結(jié) 253
習(xí)題 254
第4篇 軟件項(xiàng)目管理
第11章 計(jì)劃 257
11.1 度量軟件規(guī)!257
11.1.1 代碼行技術(shù) 257
11.1.2 功能點(diǎn)技術(shù) 258
11.2 工作量估算 260
11.2.1 靜態(tài)單變量模型 260
11.2.2 動(dòng)態(tài)多變量模型 260
11.2.3 COCOMO2模型 261
11.3 進(jìn)度計(jì)劃 263
11.3.1 基本原則 264
11.3.2 估算軟件開(kāi)發(fā)時(shí)間 264
11.3.3 Gantt圖 265
11.3.4 工程網(wǎng)絡(luò) 266
11.3.5 估算進(jìn)度 267
11.3.6 關(guān)鍵路徑 269
11.3.7 機(jī)動(dòng)時(shí)間 269
小結(jié) 270
習(xí)題 271
第12章 組織 273
12.1 民主制程序員組 273
12.2 主程序員組 274
12.3 現(xiàn)代程序員組 276
12.4 軟件項(xiàng)目組 277
12.4.1 3種組織方式 277
12.4.2 4種組織范型 279
小結(jié) 279
習(xí)題 279
第13章 控制 281
13.1 風(fēng)險(xiǎn)管理 281
13.1.1 軟件風(fēng)險(xiǎn)分類 281
13.1.2 風(fēng)險(xiǎn)識(shí)別 282
13.1.3 風(fēng)險(xiǎn)預(yù)測(cè) 286
13.1.4 處理風(fēng)險(xiǎn)的策略 287
13.2 質(zhì)量保證 289
13.2.1 軟件質(zhì)量 289
13.2.2 軟件質(zhì)量保證措施 290
13.3 配置管理 292
13.3.1 軟件配置 292
13.3.2 軟件配置管理過(guò)程 294
小結(jié) 299
習(xí)題 299
第14章 軟件維護(hù)與軟件文檔 301
14.1 軟件維護(hù) 301
14.1.1 軟件維護(hù)的過(guò)程 301
14.1.2 軟件維護(hù)的分類 303
14.1.3 軟件的可維護(hù)性 303
14.1.4 軟件維護(hù)的副作用 304
14.2 軟件文檔 305
小結(jié) 307
習(xí)題 307
第5篇 高級(jí)課題
第15章 形式化方法 309
15.1 概述 309
15.1.1 非形式化方法的缺點(diǎn) 309
15.1.2 軟件開(kāi)發(fā)過(guò)程中的數(shù)學(xué) 310
15.1.3 應(yīng)用形式化方法的準(zhǔn)則 310
15.2 有窮狀態(tài)機(jī) 311
15.2.1 基本概念 311
15.2.2 電梯問(wèn)題 312
15.2.3 評(píng)論 314
15.3 Petri網(wǎng) 315
15.3.1 基本概念 315
15.3.2 應(yīng)用實(shí)例 316
15.4 Z語(yǔ)言 317
15.4.1 簡(jiǎn)介 318
15.4.2 評(píng)論 319
小結(jié) 320
習(xí)題 320
第16章 軟件重用 322
16.1 可重用的軟件成分 322
16.2 軟件重用過(guò)程 323
16.2.1 構(gòu)件組裝模型 323
16.2.2 類構(gòu)件 324
16.2.3 重用過(guò)程模型 325
16.3 領(lǐng)域工程 326
16.3.1 分析過(guò)程 326
16.3.2 領(lǐng)域特征 327
16.3.3 結(jié)構(gòu)建模和結(jié)構(gòu)點(diǎn) 328
16.4 開(kāi)發(fā)可重用的構(gòu)件 328
16.4.1 為了重用的分析與設(shè)計(jì) 328
16.4.2 基于構(gòu)件的開(kāi)發(fā) 329
16.5 分類和檢索構(gòu)件 330
16.5.1 描述可重用的構(gòu)件 330
16.5.2 重用環(huán)境 332
16.6 軟件重用的效益 333
小結(jié) 334
習(xí)題 334
參考文獻(xiàn) 335