本書按照典型的軟件開發(fā)過程來組織內(nèi)容,旨在培養(yǎng)讀者具備軟件工程思想及實(shí)際軟件開發(fā)的能力。本書共分為13章, 內(nèi)容涉及軟件與軟件工程、軟件過程、可行性研究與項(xiàng)目開發(fā)計(jì)劃、結(jié)構(gòu)化分析、結(jié)構(gòu)化設(shè)計(jì)、面向?qū)ο蠓椒ㄅcUML、面向?qū)ο蠓治、軟件體系結(jié)構(gòu)與設(shè)計(jì)模式、面向?qū)ο笤O(shè)計(jì)、軟件實(shí)現(xiàn)、軟件測試與維護(hù)、軟件工程管理和軟件開發(fā)項(xiàng)目綜合實(shí)踐。本書理論與實(shí)踐相結(jié)合,內(nèi)容翔實(shí),可操作性強(qiáng)。
1.配套資源豐富,提供教學(xué)PPT、源代碼、微課視頻、軟件開發(fā)相關(guān)案例文檔
2.本書對上一版進(jìn)行了全面的修訂、再組織和更新。 改動內(nèi)容如下。
(1) 將書的組織結(jié)構(gòu)分為六個(gè)部分:軟件工程概述、可行性研究與項(xiàng)目開發(fā)計(jì)劃、結(jié)構(gòu)化分析與設(shè)計(jì)、面向?qū)ο蠓治雠c設(shè)計(jì)、軟件實(shí)現(xiàn)與測試和軟件工程管理。
(2) 壓縮了“結(jié)構(gòu)化分析”與“結(jié)構(gòu)化設(shè)計(jì)”的內(nèi)容。
(3) 豐富了“面向?qū)ο蠓治觥迸c“面向?qū)ο笤O(shè)計(jì)”的內(nèi)容。
(4) 將案例“小型二手貨交易平臺”改為了““墨韻”讀書會書籍共享平臺”,并用最新的開發(fā)工具進(jìn)行了重新開發(fā)。讀者可用掃描二維碼的形式,獲取案例的電子文檔和源代碼。
呂云翔,北京航空航天大學(xué)副教授,軟件學(xué)院SAP ERP 咨詢顧問專業(yè)主任。比利時(shí)布魯塞爾大學(xué)應(yīng)用科學(xué)學(xué)院應(yīng)用信息技術(shù)專業(yè)碩士、經(jīng)濟(jì)學(xué)院工商管理專業(yè)碩士。具有多年的軟件開發(fā)、項(xiàng)目管理、計(jì)算機(jī)教學(xué)經(jīng)驗(yàn)。對IT行業(yè)具有較全面的認(rèn)識。2003至今任北航軟件學(xué)院副教授。目前研究領(lǐng)域包括:軟件工程 IT項(xiàng)目管理。
著有《計(jì)算機(jī)導(dǎo)論實(shí)踐教程》(高等院校計(jì)算機(jī)教材系列),《軟件工程》,譯有《計(jì)算機(jī)文化》(原書第8版)
呂云翔副教授上課時(shí)風(fēng)趣幽默,對學(xué)生主要是自主學(xué)習(xí),在課堂上要求很輕松,從不強(qiáng)迫學(xué)生,深受軟件學(xué)院學(xué)生歡迎。
有網(wǎng)友做藏頭詩一首,賀呂云翔生日快樂
祝君仕途傳捷報(bào)
呂王將相皆等閑
云間一搖風(fēng)沙起
翔飛萬里拓新天
生將奮此有用體
日月征程勇向前
快意今日同相聚
樂看明朝志更遠(yuǎn)
第一部分 軟件工程概述
第1章 軟件與軟件工程 1
1.1 軟件 1
1.1.1 軟件的概念及特點(diǎn) 1
1.1.2 軟件的分類 2
1.2 軟件危機(jī) 3
1.2.1 軟件危機(jī)的表現(xiàn)與原因 3
1.2.2 軟件危機(jī)的啟示 4
1.3 軟件工程 5
1.3.1 軟件工程的概念 5
1.3.2 軟件工程的發(fā)展 5
1.3.3 軟件工程研究的內(nèi)容 7
1.3.4 軟件工程目標(biāo)和原則 7
1.3.5 軟件工程知識體系 8
1.4 軟件開發(fā)方法 9
1.5 軟件工程工具 10
1.6 “‘墨韻’讀書會書籍共享平臺”案例
介紹 12
習(xí)題 12
第2章 軟件過程 14
2.1 軟件生命周期的基本任務(wù) 14
2.2 軟件過程模型 15
2.2.1 瀑布模型 15
2.2.2 快速原型模型 15
2.2.3 增量模型 17
2.2.4 螺旋模型 17
2.2.5 噴泉模型 18
2.2.6 統(tǒng)一軟件開發(fā)過程模型 19
2.2.7 敏捷模型與極限編程 20
2.2.8 幾種模型之間的關(guān)系 26
2.2.9 選擇軟件過程模型 27
2.3 軟件過程模型實(shí)例 27
習(xí)題 28
第二部分 可行性研究與項(xiàng)目開發(fā)計(jì)劃
第3章 可行性研究與項(xiàng)目開發(fā)
計(jì)劃 29
3.1 可行性研究 29
3.1.1 項(xiàng)目立項(xiàng)概述 29
3.1.2 可行性研究的內(nèi)容 30
3.1.3 可行性研究的步驟 30
3.2 制訂項(xiàng)目開發(fā)計(jì)劃 31
3.3 可行性研究實(shí)例 32
第三部分 結(jié)構(gòu)化分析與設(shè)計(jì)
第4章 結(jié)構(gòu)化分析 39
4.1 需求分析 39
4.1.1 需求分析的任務(wù) 39
4.1.2 需求分析的步驟 40
4.1.3 需求管理 41
4.2 結(jié)構(gòu)化需求分析方法 42
4.3 結(jié)構(gòu)化分析建!43
4.3.1 實(shí)體-關(guān)系圖 43
4.3.2 數(shù)據(jù)流圖 44
4.3.3 狀態(tài)轉(zhuǎn)換圖 46
4.3.4 數(shù)據(jù)字典 46
4.4 結(jié)構(gòu)化分析的圖形工具 47
4.4.1 層次方框圖 47
4.4.2 Warnier圖 48
4.5 結(jié)構(gòu)化分析實(shí)例 48
4.6 實(shí)踐:使用Visio繪制“‘墨韻’讀書
會書籍共享平臺”的數(shù)據(jù)流圖 51
習(xí)題 56
第5章 結(jié)構(gòu)化設(shè)計(jì) 59
5.1 軟件設(shè)計(jì)的基本概念 59
5.1.1 軟件設(shè)計(jì)的意義和目標(biāo) 59
5.1.2 軟件設(shè)計(jì)原則 59
5.1.3 軟件設(shè)計(jì)分類 61
5.2 結(jié)構(gòu)化設(shè)計(jì)概述 62
5.3 結(jié)構(gòu)化設(shè)計(jì)與結(jié)構(gòu)化分析的關(guān)系 62
5.4 結(jié)構(gòu)化設(shè)計(jì)方法 63
5.4.1 表示軟件結(jié)構(gòu)的圖形工具 63
5.4.2 面向數(shù)據(jù)流的設(shè)計(jì)方法 65
5.4.3 面向數(shù)據(jù)結(jié)構(gòu)的設(shè)計(jì)方法 68
5.5 結(jié)構(gòu)化設(shè)計(jì)的工具 72
5.5.1 流程圖 72
5.5.2 盒圖(N-S圖) 73
5.5.3 PAD圖 74
5.5.4 判定表 75
5.5.5 判定樹 76
5.5.6 過程設(shè)計(jì)語言 76
5.6 數(shù)據(jù)庫結(jié)構(gòu)設(shè)計(jì) 77
5.7 人機(jī)界面設(shè)計(jì) 78
5.8 接口設(shè)計(jì) 79
5.9 數(shù)據(jù)設(shè)計(jì) 80
5.10 結(jié)構(gòu)化設(shè)計(jì)實(shí)例 82
5.11 實(shí)踐:使用Visio繪制“‘墨韻’讀書
會書籍共享平臺”的結(jié)構(gòu)圖 88
習(xí)題 90
第四部分 面向?qū)ο蠓治雠c設(shè)計(jì)
第6章 面向?qū)ο蠓椒ㄅc統(tǒng)一建模
語言 93
6.1 面向?qū)ο蟮能浖こ谭椒ā?3
6.1.1 面向?qū)ο蟮幕靖拍睢?3
6.1.2 面向?qū)ο蟮能浖こ谭椒ǖ奶卣髋c優(yōu)勢 94
6.1.3 面向?qū)ο蟮膶?shí)施步驟 95
6.2 統(tǒng)一建模語言 96
6.2.1 統(tǒng)一建模語言簡述 96
6.2.2 統(tǒng)一建模語言的特點(diǎn) 96
6.2.3 統(tǒng)一建模語言的應(yīng)用范圍 97
6.2.4 統(tǒng)一建模語言的圖 97
6.2.5 統(tǒng)一建模語言“4+1”視圖 98
6.3 靜態(tài)建模機(jī)制 99
6.3.1 用例圖 99
6.3.2 類圖和對象圖 101
6.3.3 包圖 106
6.4 動態(tài)建模機(jī)制 106
6.4.1 順序圖 106
6.4.2 協(xié)作圖 108
6.4.3 狀態(tài)圖 109
6.4.4 活動圖 110
6.5 描述物理架構(gòu)的機(jī)制 112
6.5.1 構(gòu)件圖 112
6.5.2 部署圖 112
習(xí)題 113
第7章 面向?qū)ο蠓治觥?16
7.1 面向?qū)ο蠓治龇椒ā?16
7.1.1 面向?qū)ο蠓治鲞^程 116
7.1.2 面向?qū)ο蠓治鲈瓌t 117
7.2 面向?qū)ο蠼!?18
7.2.1 建立對象模型 119
7.2.2 建立動態(tài)模型 123
7.2.3 建立功能模型 125
7.2.4 3種模型之間的關(guān)系 126
7.3 面向?qū)ο蠓治鰧?shí)例 127
7.4 實(shí)踐 132
7.4.1 使用Rose創(chuàng)建“‘墨韻’讀書會
書籍共享平臺”的用例模型 132
7.4.2 使用Rose繪制“‘墨韻’讀書會
書籍共享平臺”的類圖 136
7.4.3 使用Rose繪制“‘墨韻’讀書會
書籍共享平臺”的對象圖 139
7.4.4 使用Rose繪制“‘墨韻’讀書會
書籍共享平臺”的包圖 140
7.4.5 使用Rose繪制“‘墨韻’讀書會
書籍共享平臺”的狀態(tài)圖 142
7.4.6 使用Rose繪制“‘墨韻’讀書會
書籍共享平臺”的順序圖 144
7.5 案例:“‘墨韻’讀書會書籍共享平臺”的
需求規(guī)格說明書 146
習(xí)題 146
第8章 軟件體系結(jié)構(gòu)與設(shè)計(jì)
模式 148
8.1 軟件體系結(jié)構(gòu)的概念 148
8.1.1 什么是軟件體系結(jié)構(gòu) 148
8.1.2 軟件體系結(jié)構(gòu)建!148
8.1.3 軟件體系結(jié)構(gòu)的分層模型 149
8.1.4 軟件體系結(jié)構(gòu)的作用 150
8.2 典型的軟件體系結(jié)構(gòu)風(fēng)格 151
8.2.1 數(shù)據(jù)流風(fēng)格 151
8.2.2 調(diào)用/返回風(fēng)格 152
8.2.3 獨(dú)立構(gòu)件風(fēng)格 152
8.2.4 虛擬機(jī)風(fēng)格 152
8.2.5 倉庫風(fēng)格 153
8.3 軟件質(zhì)量屬性 153
8.4 分布式系統(tǒng)結(jié)構(gòu) 154
8.4.1 多處理器體系結(jié)構(gòu) 154
8.4.2 客戶機(jī)/服務(wù)器體系結(jié)構(gòu) 155
8.4.3 分布式對象體系結(jié)構(gòu) 157
8.4.4 對等端體系結(jié)構(gòu) 157
8.4.5 代理 158
8.5 體系結(jié)構(gòu)框架 158
8.5.1 模型—視圖—控制器 158
8.5.2 模型—視圖—表示器 159
8.5.3 J2EE體系結(jié)構(gòu)框架 160
8.5.4 PCMEF框架 161
8.5.5 PCBMER框架 162
8.6 軟件系統(tǒng)的設(shè)計(jì)模式 162
8.6.1 工廠模式 163
8.6.2 橋接模式 164
8.6.3 策略模式 165
8.6.4 其他模式 165
習(xí)題 166
第9章 面向?qū)ο笤O(shè)計(jì) 168
9.1 面向?qū)ο笤O(shè)計(jì)與結(jié)構(gòu)化設(shè)計(jì) 168
9.2 面向?qū)ο笤O(shè)計(jì)與面向?qū)ο蠓治龅年P(guān)系 168
9.3 面向?qū)ο笤O(shè)計(jì)的過程與規(guī)則 169
9.3.1 面向?qū)ο笤O(shè)計(jì)的過程 169
9.3.2 面向?qū)ο笤O(shè)計(jì)的原則 170
9.4 面向?qū)ο笤O(shè)計(jì)的啟發(fā)規(guī)則 171
9.5 系統(tǒng)設(shè)計(jì) 171
9.5.1 系統(tǒng)分解 172
9.5.2 問題域子系統(tǒng)的設(shè)計(jì) 172
9.5.3 人機(jī)交互子系統(tǒng)的設(shè)計(jì) 175
9.5.4 任務(wù)管理子系統(tǒng)的設(shè)計(jì) 177
9.5.5 數(shù)據(jù)管理子系統(tǒng)的設(shè)計(jì) 179
9.6 對象設(shè)計(jì) 181
9.6.1 設(shè)計(jì)類中的服務(wù) 181
9.6.2 設(shè)計(jì)類的關(guān)聯(lián) 182
9.6.3 對象設(shè)計(jì)優(yōu)化 184
9.7 面向?qū)ο笤O(shè)計(jì)實(shí)例 187
9.8 實(shí)踐 190
9.8.1 使用Rose繪制“‘墨韻’讀書會
書籍共享平臺”的活動圖 190
9.8.2 使用Rose繪制“‘墨韻’讀書會
書籍共享平臺”的協(xié)作圖 191
9.8.3 使用Rose繪制“‘墨韻’讀書會
書籍共享平臺”的構(gòu)件圖 193
9.8.4 使用Rose繪制“‘墨韻’讀書會
書籍共享平臺”的部署圖 194
9.9 案例:“‘墨韻’讀書會書籍共享平臺”的
軟件設(shè)計(jì)說明書 196
習(xí)題 196
第五部分 軟件實(shí)現(xiàn)與測試
第10章 軟件實(shí)現(xiàn) 199
10.1 編程語言 199
10.1.1 編程語言的發(fā)展與分類 199
10.1.2 選擇編程語言需考慮的因素 202
10.2 編程風(fēng)格 203
10.3 面向?qū)ο髮?shí)現(xiàn) 207
10.4 軟件實(shí)現(xiàn)實(shí)例 207
10.5 實(shí)踐:使用Visual Studio實(shí)現(xiàn)
“‘墨韻’讀書會書籍共享平臺”
的用戶登錄模塊 209
10.6 案例:“‘墨韻’讀書會書籍共享平臺”
的部署文檔 217
習(xí)題 217
第11章 軟件測試與維護(hù) 219
11.1 軟件測試的基本概念 219
11.1.1 軟件測試原則 219
11.1.2 軟件測試分類 220
11.1.3 軟件測試模型 221
11.2 測試用例 223
11.2.1 測試用例編寫 223
11.2.2 測試用例設(shè)計(jì) 223
11.2.3 測試用例場景 223
11.3 軟件測試方法 224
11.4 黑盒測試 224
11.4.1 等價(jià)類劃分法 224
11.4.2 邊界值分析法 226
11.4.3 錯(cuò)誤推測法 227
11.4.4 因果圖法 228
11.4.5 決策表法 230
11.4.6 場景法 231
11.4.7 黑盒測試方法選擇 233
11.5 白盒測試 233
11.5.1 代碼檢查法 233
11.5.2 靜態(tài)結(jié)構(gòu)分析法 234
11.5.3 程序插樁技術(shù) 234
11.5.4 邏輯覆蓋法 235
11.5.5 基本路徑法 240
11.5.6 白盒測試方法選擇 241
11.5.7 白盒測試和黑盒測試比較 242
11.6 軟件測試的一般步驟 242
11.7 單元測試 243
11.7.1 單元測試概述 243
11.7.2 單元測試內(nèi)容 243
11.7.3 單元測試方法 244
11.8 集成測試 245
11.8.1 集成測試概述 245
11.8.2 集成測試分析 245
11.8.3 集成測試策略 245
11.9 系統(tǒng)測試 249
11.9.1 系統(tǒng)測試概述 249
11.9.2 系統(tǒng)測試類型 249
11.10 驗(yàn)收測試 251
11.10.1 驗(yàn)收測試概述 251
11.10.2 驗(yàn)收測試內(nèi)容 251
11.10.3 α測試和β測試 251
11.11 回歸測試 252
11.12 面向?qū)ο蟮能浖䴗y試 253
11.13 軟件調(diào)試 255
11.13.1 調(diào)試過程 255
11.13.2 調(diào)試途徑 255
11.14 軟件維護(hù) 256
11.14.1 軟件維護(hù)的過程 256
11.14.2 軟件維護(hù)分類 256
11.14.3 軟件的可維護(hù)性 257
11.14.4 軟件維護(hù)的副作用 257
11.14.5 軟件再工程技術(shù) 257
11.15 軟件測試實(shí)例 258
11.16 實(shí)踐:使用Visual Studio對“‘墨韻’
讀書會書籍共享平臺”的用戶登錄
模塊進(jìn)行單元測試 264
11.17 案例:“‘墨韻’讀書會書籍共享平臺”
的測試分析報(bào)告與用戶手冊 266
習(xí)題 266
第六部分 軟件工程管理與實(shí)踐
第12章 軟件工程管理 269
12.1 軟件工程管理概述 269
12.2 軟件估算 269
12.2.1 軟件估算的概念 269
12.2.2 軟件估算的方法 270
12.2.3 軟件估算的原則與技巧 272
12.3 軟件開發(fā)進(jìn)度計(jì)劃 272
12.3.1 Gantt圖 272
12.3.2 PERT圖 273
12.4 軟件開發(fā)人員組織 273
12.4.1 民主制程序員組 274
12.4.2 主程序員組 274
12.4.3 現(xiàn)代程序員組 274
12.5 軟件開發(fā)風(fēng)險(xiǎn)管理 274
12.5.1 軟件開發(fā)風(fēng)險(xiǎn) 274
12.5.2 軟件開發(fā)風(fēng)險(xiǎn)管理 275
12.6 軟件質(zhì)量保證 277
12.6.1 軟件質(zhì)量的基本概念 277
12.6.2 軟件質(zhì)量保證的措施 278
12.7 軟件配置管理概述 279
12.7.1 軟件配置管理術(shù)語 279
12.7.2 軟件配置管理的過程 281
12.7.3 配置管理的角色劃分 282
12.8 軟件工程標(biāo)準(zhǔn)與軟件文檔 283
12.8.1 軟件工程標(biāo)準(zhǔn) 283
12.8.2 軟件文檔 284
12.9 軟件過程能力成熟度模型 286
12.10 軟件項(xiàng)目管理 287
12.10.1 軟件項(xiàng)目管理概述 287
12.10.2 軟件項(xiàng)目管理與軟件工程的
關(guān)系 288
12.11 軟件復(fù)用 288
12.12 實(shí)踐:使用Project管理“‘墨韻’讀書
會書籍共享平臺”的開發(fā)過程 290
習(xí)題 293
附錄 軟件開發(fā)項(xiàng)目綜合實(shí)踐 296
參考文獻(xiàn) 297