本書按照典型的軟件開發(fā)過程來組織內(nèi)容,旨在培養(yǎng)讀者具備軟件工程思想及實際軟件開發(fā)的能力。本書共分為13章, 內(nèi)容涉及軟件與軟件工程、軟件過程、可行性研究與項目開發(fā)計劃、結(jié)構(gòu)化分析、結(jié)構(gòu)化設(shè)計、面向?qū)ο蠓椒ㄅcUML、面向?qū)ο蠓治、軟件體系結(jié)構(gòu)與設(shè)計模式、面向?qū)ο笤O(shè)計、軟件實現(xiàn)、軟件測試與維護、軟件工程管理和軟件開發(fā)項目綜合實踐。本書理論與實踐相結(jié)合,內(nèi)容翔實,可操作性強。
1.配套資源豐富,提供教學(xué)PPT、源代碼、微課視頻、軟件開發(fā)相關(guān)案例文檔
2.本書對上一版進行了全面的修訂、再組織和更新。 改動內(nèi)容如下。
(1) 將書的組織結(jié)構(gòu)分為六個部分:軟件工程概述、可行性研究與項目開發(fā)計劃、結(jié)構(gòu)化分析與設(shè)計、面向?qū)ο蠓治雠c設(shè)計、軟件實現(xiàn)與測試和軟件工程管理。
(2) 壓縮了“結(jié)構(gòu)化分析”與“結(jié)構(gòu)化設(shè)計”的內(nèi)容。
(3) 豐富了“面向?qū)ο蠓治觥迸c“面向?qū)ο笤O(shè)計”的內(nèi)容。
(4) 將案例“小型二手貨交易平臺”改為了““墨韻”讀書會書籍共享平臺”,并用最新的開發(fā)工具進行了重新開發(fā)。讀者可用掃描二維碼的形式,獲取案例的電子文檔和源代碼。
呂云翔,北京航空航天大學(xué)副教授,軟件學(xué)院SAP ERP 咨詢顧問專業(yè)主任。比利時布魯塞爾大學(xué)應(yīng)用科學(xué)學(xué)院應(yīng)用信息技術(shù)專業(yè)碩士、經(jīng)濟學(xué)院工商管理專業(yè)碩士。具有多年的軟件開發(fā)、項目管理、計算機教學(xué)經(jīng)驗。對IT行業(yè)具有較全面的認(rèn)識。2003至今任北航軟件學(xué)院副教授。目前研究領(lǐng)域包括:軟件工程 IT項目管理。
著有《計算機導(dǎo)論實踐教程》(高等院校計算機教材系列),《軟件工程》,譯有《計算機文化》(原書第8版)
呂云翔副教授上課時風(fēng)趣幽默,對學(xué)生主要是自主學(xué)習(xí),在課堂上要求很輕松,從不強迫學(xué)生,深受軟件學(xué)院學(xué)生歡迎。
有網(wǎng)友做藏頭詩一首,賀呂云翔生日快樂
祝君仕途傳捷報
呂王將相皆等閑
云間一搖風(fēng)沙起
翔飛萬里拓新天
生將奮此有用體
日月征程勇向前
快意今日同相聚
樂看明朝志更遠(yuǎn)
第一部分 軟件工程概述
第1章 軟件與軟件工程 1
1.1 軟件 1
1.1.1 軟件的概念及特點 1
1.1.2 軟件的分類 2
1.2 軟件危機 3
1.2.1 軟件危機的表現(xiàn)與原因 3
1.2.2 軟件危機的啟示 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 軟件過程模型實例 27
習(xí)題 28
第二部分 可行性研究與項目開發(fā)計劃
第3章 可行性研究與項目開發(fā)
計劃 29
3.1 可行性研究 29
3.1.1 項目立項概述 29
3.1.2 可行性研究的內(nèi)容 30
3.1.3 可行性研究的步驟 30
3.2 制訂項目開發(fā)計劃 31
3.3 可行性研究實例 32
第三部分 結(jié)構(gòu)化分析與設(shè)計
第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 實體-關(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)化分析實例 48
4.6 實踐:使用Visio繪制“‘墨韻’讀書
會書籍共享平臺”的數(shù)據(jù)流圖 51
習(xí)題 56
第5章 結(jié)構(gòu)化設(shè)計 59
5.1 軟件設(shè)計的基本概念 59
5.1.1 軟件設(shè)計的意義和目標(biāo) 59
5.1.2 軟件設(shè)計原則 59
5.1.3 軟件設(shè)計分類 61
5.2 結(jié)構(gòu)化設(shè)計概述 62
5.3 結(jié)構(gòu)化設(shè)計與結(jié)構(gòu)化分析的關(guān)系 62
5.4 結(jié)構(gòu)化設(shè)計方法 63
5.4.1 表示軟件結(jié)構(gòu)的圖形工具 63
5.4.2 面向數(shù)據(jù)流的設(shè)計方法 65
5.4.3 面向數(shù)據(jù)結(jié)構(gòu)的設(shè)計方法 68
5.5 結(jié)構(gòu)化設(shè)計的工具 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è)計語言 76
5.6 數(shù)據(jù)庫結(jié)構(gòu)設(shè)計 77
5.7 人機界面設(shè)計 78
5.8 接口設(shè)計 79
5.9 數(shù)據(jù)設(shè)計 80
5.10 結(jié)構(gòu)化設(shè)計實例 82
5.11 實踐:使用Visio繪制“‘墨韻’讀書
會書籍共享平臺”的結(jié)構(gòu)圖 88
習(xí)題 90
第四部分 面向?qū)ο蠓治雠c設(shè)計
第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ū)ο蟮膶嵤┎襟E 95
6.2 統(tǒng)一建模語言 96
6.2.1 統(tǒng)一建模語言簡述 96
6.2.2 統(tǒng)一建模語言的特點 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)建模機制 99
6.3.1 用例圖 99
6.3.2 類圖和對象圖 101
6.3.3 包圖 106
6.4 動態(tài)建模機制 106
6.4.1 順序圖 106
6.4.2 協(xié)作圖 108
6.4.3 狀態(tài)圖 109
6.4.4 活動圖 110
6.5 描述物理架構(gòu)的機制 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ū)ο蠓治鰧嵗?27
7.4 實踐 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è)計
模式 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 獨立構(gòu)件風(fēng)格 152
8.2.4 虛擬機風(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 客戶機/服務(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è)計模式 162
8.6.1 工廠模式 163
8.6.2 橋接模式 164
8.6.3 策略模式 165
8.6.4 其他模式 165
習(xí)題 166
第9章 面向?qū)ο笤O(shè)計 168
9.1 面向?qū)ο笤O(shè)計與結(jié)構(gòu)化設(shè)計 168
9.2 面向?qū)ο笤O(shè)計與面向?qū)ο蠓治龅年P(guān)系 168
9.3 面向?qū)ο笤O(shè)計的過程與規(guī)則 169
9.3.1 面向?qū)ο笤O(shè)計的過程 169
9.3.2 面向?qū)ο笤O(shè)計的原則 170
9.4 面向?qū)ο笤O(shè)計的啟發(fā)規(guī)則 171
9.5 系統(tǒng)設(shè)計 171
9.5.1 系統(tǒng)分解 172
9.5.2 問題域子系統(tǒng)的設(shè)計 172
9.5.3 人機交互子系統(tǒng)的設(shè)計 175
9.5.4 任務(wù)管理子系統(tǒng)的設(shè)計 177
9.5.5 數(shù)據(jù)管理子系統(tǒng)的設(shè)計 179
9.6 對象設(shè)計 181
9.6.1 設(shè)計類中的服務(wù) 181
9.6.2 設(shè)計類的關(guān)聯(lián) 182
9.6.3 對象設(shè)計優(yōu)化 184
9.7 面向?qū)ο笤O(shè)計實例 187
9.8 實踐 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è)計說明書 196
習(xí)題 196
第五部分 軟件實現(xiàn)與測試
第10章 軟件實現(xiàn) 199
10.1 編程語言 199
10.1.1 編程語言的發(fā)展與分類 199
10.1.2 選擇編程語言需考慮的因素 202
10.2 編程風(fēng)格 203
10.3 面向?qū)ο髮崿F(xiàn) 207
10.4 軟件實現(xiàn)實例 207
10.5 實踐:使用Visual Studio實現(xiàn)
“‘墨韻’讀書會書籍共享平臺”
的用戶登錄模塊 209
10.6 案例:“‘墨韻’讀書會書籍共享平臺”
的部署文檔 217
習(xí)題 217
第11章 軟件測試與維護 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è)計 223
11.2.3 測試用例場景 223
11.3 軟件測試方法 224
11.4 黑盒測試 224
11.4.1 等價類劃分法 224
11.4.2 邊界值分析法 226
11.4.3 錯誤推測法 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 驗收測試 251
11.10.1 驗收測試概述 251
11.10.2 驗收測試內(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 軟件維護 256
11.14.1 軟件維護的過程 256
11.14.2 軟件維護分類 256
11.14.3 軟件的可維護性 257
11.14.4 軟件維護的副作用 257
11.14.5 軟件再工程技術(shù) 257
11.15 軟件測試實例 258
11.16 實踐:使用Visual Studio對“‘墨韻’
讀書會書籍共享平臺”的用戶登錄
模塊進行單元測試 264
11.17 案例:“‘墨韻’讀書會書籍共享平臺”
的測試分析報告與用戶手冊 266
習(xí)題 266
第六部分 軟件工程管理與實踐
第12章 軟件工程管理 269
12.1 軟件工程管理概述 269
12.2 軟件估算 269
12.2.1 軟件估算的概念 269
12.2.2 軟件估算的方法 270
12.2.3 軟件估算的原則與技巧 272
12.3 軟件開發(fā)進度計劃 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)險管理 274
12.5.1 軟件開發(fā)風(fēng)險 274
12.5.2 軟件開發(fā)風(fēng)險管理 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 軟件項目管理 287
12.10.1 軟件項目管理概述 287
12.10.2 軟件項目管理與軟件工程的
關(guān)系 288
12.11 軟件復(fù)用 288
12.12 實踐:使用Project管理“‘墨韻’讀書
會書籍共享平臺”的開發(fā)過程 290
習(xí)題 293
附錄 軟件開發(fā)項目綜合實踐 296
參考文獻 297