定 價:69.8 元
叢書名:新工科軟件工程專業(yè)卓越人才培養(yǎng)系列
- 作者:呂云翔
- 出版時間:2024/2/1
- ISBN:9787115624208
- 出 版 社:人民郵電出版社
- 中圖法分類:TP311.5
- 頁碼:306
- 紙張:
- 版次:03
- 開本:16開
本書按照典型的軟件開發(fā)過程來組織內(nèi)容,旨在培養(yǎng)讀者具備軟件工程思想及實際軟件開發(fā)的能力。本書共分為14章,內(nèi)容涉及軟件工程概述、敏捷軟件開發(fā)、可行性研究與項目開發(fā)計劃、需求分析、軟件設(shè)計、軟件實現(xiàn)、軟件測試、軟件維護、面向?qū)ο蠓椒ㄅcUML、面向?qū)ο蠓治、面向(qū)ο笤O(shè)計、面向?qū)ο髮崿F(xiàn)、面向?qū)ο鬁y試、軟件工程管理。本書理論與實踐相結(jié)合,內(nèi)容翔實,可操作性強。
本書可作為高等院校計算機科學(xué)與技術(shù)、軟件工程及相關(guān)專業(yè)“軟件工程”課程的教材,也可供軟件工程相關(guān)領(lǐng)域從業(yè)人員參考使用。
【內(nèi)容特點】
本教材是軟件工程課程教學(xué)中的一本難得的好教材,便于教師的教和學(xué)生的學(xué)。此次改版的優(yōu)化內(nèi)容如下。
(1)組織結(jié)構(gòu)優(yōu)化升級。此次改版將書的組織結(jié)構(gòu)進(jìn)行了全面的再優(yōu)化,分為軟件工程概述、敏捷軟件開發(fā)、可行性研究與項目開發(fā)計劃、需求分析、軟件設(shè)計、軟件實現(xiàn)、軟件測試、軟件維護、面向?qū)ο蠓椒ㄅcUML、面向?qū)ο蠓治、面向(qū)ο笤O(shè)計、面向?qū)ο髮崿F(xiàn)、面向?qū)ο鬁y試、軟件工程管理,共14章。
(2)內(nèi)容增新去繁,引入軟件工程新技術(shù)。此次改版對部分內(nèi)容進(jìn)行了精簡,將原第1、2章的內(nèi)容,合并為第1章,增加了開源軟件開發(fā)方法、群體化軟件開發(fā)方法、軟件工程人員的職業(yè)道德等內(nèi)容;增加了“第2章 敏捷軟件開發(fā)”“第12章 面向?qū)ο髮崿F(xiàn)”“第13章 面向?qū)ο鬁y試”等;第6章增加了代碼重用、分析和評價代碼的質(zhì)量等內(nèi)容;第7章增加了自動化測試方面的內(nèi)容;第8章增加了軟件部署與軟件交付、自動化運維等內(nèi)容 。
(3)使用全新工具進(jìn)行案例實現(xiàn)。本書將案例“小型網(wǎng)上書店系統(tǒng)“用最新的開發(fā)工具進(jìn)行了重新開發(fā)。限于篇幅,本書采用數(shù)字化的手段對內(nèi)容進(jìn)行補充,讀者可用掃描二維碼的形式,獲取案例的電子文檔和源代碼。
(4)常用工具拓展介紹。附錄中提供常用工具(如Visio、Rose、Visual Studio Code、Project)的介紹。
(5)多維方法進(jìn)行實操能力培養(yǎng)。附錄中提供與正文中所用的開發(fā)技術(shù)(基于Django框架)不同的、基于SpingBoot框架開發(fā)的“小型網(wǎng)上書店系統(tǒng)“,以及使用開源工具StarUML對“小型網(wǎng)上書店系統(tǒng)“進(jìn)行的實驗操作。
【資源特點】本教材配套教學(xué)資源豐富,除了配有教學(xué)大綱、教案、教學(xué)PPT、習(xí)題答案、開發(fā)文檔、源代碼之外,還配有500分鐘左右的微課視頻,使得有意深入了解相關(guān)內(nèi)容的讀者能夠拓寬視野,深入理解軟件工程理論與實踐,這在同類教材中并不多見。
【服務(wù)特點】作者可以提供直播以及微信服務(wù)群等支持。
呂云翔,北京航空航天大學(xué)軟件學(xué)院副教授。長期從事“軟件工程基礎(chǔ)”課程的一線教學(xué),曾多次獲得北航校級教學(xué)成果獎!败浖こ袒A(chǔ)”課程獲評2021中國計算機教育大會計算機類教學(xué)資源建設(shè)優(yōu)秀課程配套資源與優(yōu)秀教學(xué)案例獎。具有多年的軟件開發(fā)、項目管理、計算機教學(xué)經(jīng)驗,對IT行業(yè)具有較全面的認(rèn)識,主編暢銷教材多部。
第1章 軟件工程概述 1
1.1 軟件的概念及特點 1
1.2 軟件危機 2
1.2.1 軟件危機的表現(xiàn)與產(chǎn)生原因 2
1.2.2 軟件危機的啟示 3
1.3 軟件工程 4
1.3.1 軟件工程的概念 4
1.3.2 軟件工程的基本目標(biāo)和原則 4
1.3.3 軟件過程 5
1.4 軟件過程模型 6
1.4.1 瀑布模型 6
1.4.2 快速原型模型 7
1.4.3 增量模型 7
1.4.4 螺旋模型 8
1.4.5 噴泉模型 9
1.4.6 基于組件的開發(fā)模型 9
1.4.7 統(tǒng)一軟件開發(fā)過程模型 10
1.4.8 幾種模型的對比 11
1.4.9 幾種模型之間的關(guān)系 12
1.4.10 選擇軟件過程模型 12
1.4.11 軟件過程模型實例 13
1.5 軟件開發(fā)方法 13
1.5.1 基本的軟件開發(fā)方法 14
1.5.2 開源軟件開發(fā)方法 15
1.5.3 群體化軟件開發(fā)方法 15
1.6 軟件工程工具 16
1.7 軟件工程人員的職業(yè)道德 18
1.7.1 ACM/IEEE道德準(zhǔn)則 18
1.7.2 職業(yè)倫理 18
1.7.3 應(yīng)該注意的一些道德問題 19
1.8 “小型網(wǎng)上書店系統(tǒng)”案例介紹 20
拓展閱讀:青鳥工程—愛國與奉獻(xiàn)精神 20
本章小結(jié) 21
習(xí)題 21
第2章 敏捷軟件開發(fā) 24
2.1 敏捷方法 24
2.2 Scrum 26
2.2.1 概述 26
2.2.2 Sprint 28
2.2.3 每日站會 28
2.2.4 用戶故事 28
2.2.5 Backlog 30
2.2.6 結(jié)對編程 30
2.3 看板 30
2.3.1 概述 31
2.3.2 看板與Scrum的區(qū)別 31
2.4 XP 33
2.4.1 XP的4個價值觀 34
2.4.2 XP的12個核心實踐 34
2.5 CI/CD 35
2.5.1 CI/CD概述 36
2.5.2 CI/CD的優(yōu)勢 37
2.6 DevOps 37
2.6.1 DevOps生命周期 38
2.6.2 敏捷軟件開發(fā)、CI/CD和
DevOps 39
2.7 敏捷軟件開發(fā)實例 40
拓展閱讀:微信—創(chuàng)新精神 40
本章小結(jié) 41
習(xí)題 41
第3章 可行性研究與項目
開發(fā)計劃 44
3.1 項目立項概述 44
3.2 可行性研究的任務(wù) 45
3.2.1 技術(shù)可行性 45
3.2.2 操作可行性 45
3.2.3 經(jīng)濟可行性 46
3.3 可行性研究的步驟 47
3.4 可行性研究實例 48
3.5 制定項目開發(fā)計劃 49
3.6 案例:“小型網(wǎng)上書店系統(tǒng)”的
軟件開發(fā)計劃書 49
拓展閱讀:釘釘軟件—求實精神 50
本章小結(jié) 50
習(xí)題 50
第4章 需求分析與結(jié)構(gòu)化分析 53
4.1 需求分析概述 53
4.1.1 需求分析的任務(wù)和原則 53
4.1.2 需求分析的步驟 54
4.1.3 需求管理 57
4.1.4 需求分析的常用方法 57
4.1.5 原型設(shè)計 58
4.2 結(jié)構(gòu)化分析概述 58
4.3 結(jié)構(gòu)化分析的方法 59
4.3.1 功能建模 59
4.3.2 數(shù)據(jù)建!62
4.3.3 行為建!63
4.3.4 數(shù)據(jù)字典 65
4.3.5 加工規(guī)格說明 66
4.4 結(jié)構(gòu)化分析的圖形工具 67
4.4.1 層次方框圖 67
4.4.2 Warnier圖 68
4.4.3 IPO圖 68
4.5 結(jié)構(gòu)化分析實例 69
拓展閱讀:漢字激光照排系統(tǒng)—創(chuàng)新與
奉獻(xiàn)精神 72
本章小結(jié) 72
習(xí)題 72
第5章 軟件設(shè)計與結(jié)構(gòu)化設(shè)計 75
5.1 軟件設(shè)計概述 75
5.1.1 軟件設(shè)計的意義和目標(biāo) 75
5.1.2 軟件設(shè)計的原則 76
5.1.3 軟件設(shè)計的分類 79
5.2 軟件體系結(jié)構(gòu) 80
5.2.1 什么是軟件體系結(jié)構(gòu) 80
5.2.2 軟件體系結(jié)構(gòu)的作用 81
5.2.3 典型的軟件體系結(jié)構(gòu)風(fēng)格 82
5.2.4 客戶端/服務(wù)器模式的分布式
體系結(jié)構(gòu) 83
5.2.5 MVC模型 85
5.3 結(jié)構(gòu)化設(shè)計概述 87
5.4 結(jié)構(gòu)化設(shè)計與結(jié)構(gòu)化分析的關(guān)系 87
5.5 結(jié)構(gòu)化設(shè)計方法 88
5.5.1 表示軟件結(jié)構(gòu)的圖形工具 88
5.5.2 面向數(shù)據(jù)流的設(shè)計方法 89
5.5.3 面向數(shù)據(jù)結(jié)構(gòu)的設(shè)計方法 92
5.6 接口設(shè)計 96
5.6.1 接口設(shè)計概述 97
5.6.2 界面設(shè)計 97
5.7 數(shù)據(jù)設(shè)計 98
5.8 過程設(shè)計 100
5.8.1 程序流程圖 100
5.8.2 N-S圖 102
5.8.3 PAD 102
5.8.4 PDL 103
5.9 軟件設(shè)計評審 104
5.10 結(jié)構(gòu)化實例 104
拓展閱讀:高斯數(shù)據(jù)庫—工匠精神 106
本章小結(jié) 106
習(xí)題 107
第6章 軟件實現(xiàn) 110
6.1 編程語言 110
6.1.1 編程語言的發(fā)展與分類 110
6.1.2 選擇編程語言需考慮的因素 114
6.2 編程風(fēng)格與規(guī)范 114
6.3 代碼復(fù)用 118
6.4 分析和評價代碼質(zhì)量 119
6.5 軟件實現(xiàn)實例 120
拓展閱讀:王江民—奮斗精神 122
本章小結(jié) 122
習(xí)題 122
第7章 軟件測試 125
7.1 軟件測試概述 125
7.1.1 軟件測試的原則 126
7.1.2 軟件測試模型 127
7.2 軟件測試的分類 129
7.3 測試用例 129
7.3.1 測試用例編寫 129
7.3.2 測試用例設(shè)計 129
7.3.3 測試用例場景 130
7.4 軟件測試方法 130
7.5 黑盒測試 131
7.5.1 等價類劃分法 131
7.5.2 邊界值分析法 133
7.5.3 錯誤推測法 135
7.5.4 因果圖法 135
7.5.5 決策表法 137
7.5.6 場景法 138
7.5.7 黑盒測試方法選擇 140
7.6 白盒測試 140
7.6.1 代碼檢查法 140
7.6.2 靜態(tài)結(jié)構(gòu)分析法 141
7.6.3 程序插樁技術(shù) 141
7.6.4 邏輯覆蓋法 141
7.6.5 基本路徑法 143
7.6.6 白盒測試方法選擇 145
7.6.7 白盒測試與黑盒測試比較 145
7.7 軟件測試的一般步驟 146
7.8 單元測試 146
7.8.1 單元測試概述 146
7.8.2 單元測試內(nèi)容 147
7.8.3 單元測試方法 147
7.9 集成測試 148
7.9.1 集成測試概述 148
7.9.2 集成測試策略 148
7.10 系統(tǒng)測試 151
7.10.1 系統(tǒng)測試概述 151
7.10.2 系統(tǒng)測試類型 151
7.11 驗收測試 153
7.11.1 驗收測試概述 153
7.11.2 驗收測試內(nèi)容 153
7.11.3 α測試和β測試 154
7.12 回歸測試 154
7.13 自動化測試 155
7.14 軟件調(diào)試 156
7.14.1 調(diào)試過程 156
7.14.2 調(diào)試途徑 156
7.15 軟件測試實例 156
拓展閱讀:中國的工業(yè)軟件—民族精神 162
本章小結(jié) 162
習(xí)題 163
第8章 軟件維護 166
8.1 軟件部署與軟件交付 166
8.2 軟件維護的過程 167
8.3 軟件維護的分類 168
8.4 軟件的可維護性 169
8.5 軟件維護的副作用 170
8.6 軟件運維 171
8.7 軟件再工程—重構(gòu)、正向工程、
逆向工程 172
8.8 軟件維護實例 173
拓展閱讀:12306—精益求精精神 174
本章小結(jié) 174
習(xí)題 175
第9章 面向?qū)ο蠓椒ㄅcUML 177
9.1 面向?qū)ο蟮能浖こ谭椒ā?77
9.1.1 面向?qū)ο蟮幕靖拍睢?77
9.1.2 面向?qū)ο蟮能浖こ谭椒ǖ?特征與優(yōu)勢 178
9.1.3 面向?qū)ο蟮膶嵤┎襟E 179
9.2 UML 180
9.2.1 UML簡述 180
9.2.2 UML的應(yīng)用范圍 180
9.2.3 UML的圖 181
9.3 靜態(tài)建模機制 181
9.3.1 用例圖 181
9.3.2 類圖與對象圖 183
9.3.3 包圖 188
9.4 動態(tài)建模機制 188
9.4.1 順序圖 189
9.4.2 協(xié)作圖 190
9.4.3 狀態(tài)圖 191
9.4.4 活動圖 191
9.5 描述物理架構(gòu)的機制 193
9.5.1 組件圖 193
9.5.2 部署圖 194
9.6 面向?qū)ο蠓椒ㄅcUML實例 194
拓展閱讀:抖音—包容精神 199
本章小結(jié) 199
習(xí)題 200
第10章 面向?qū)ο蠓治觥?03
10.1 面向?qū)ο蠓治龇椒ā?03
10.1.1 面向?qū)ο蠓治鲞^程 203
10.1.2 面向?qū)ο蠓治鲈瓌t 205
10.2 面向?qū)ο蠼!?05
10.2.1 建立對象模型 206
10.2.2 建立動態(tài)模型 211
10.2.3 建立功能模型 213
10.2.4 3種模型之間的關(guān)系 213
10.3 面向?qū)ο蠓治鰧嵗?14
10.4 案例:“小型網(wǎng)上書店系統(tǒng)”的
需求規(guī)格說明書 217
拓展閱讀:北斗衛(wèi)星導(dǎo)航系統(tǒng)—
中國精神 217
本章小結(jié) 218
習(xí)題 218
第11章 面向?qū)ο笤O(shè)計 221
11.1 面向?qū)ο笤O(shè)計與結(jié)構(gòu)化設(shè)計 221
11.2 面向?qū)ο笤O(shè)計與面向?qū)ο蠓治龅?關(guān)系 221
11.3 面向?qū)ο笤O(shè)計的過程與原則 222
11.3.1 面向?qū)ο笤O(shè)計的過程 222
11.3.2 面向?qū)ο笤O(shè)計的原則 223
11.4 面向?qū)ο笤O(shè)計的啟發(fā)規(guī)則 226
11.5 系統(tǒng)設(shè)計 227
11.5.1 系統(tǒng)分解 227
11.5.2 問題域子系統(tǒng)的設(shè)計 228
11.5.3 人機交互子系統(tǒng)的設(shè)計 231
11.5.4 任務(wù)管理子系統(tǒng)的設(shè)計 233
11.5.5 數(shù)據(jù)管理子系統(tǒng)的設(shè)計 234
11.6 對象設(shè)計 236
11.6.1 設(shè)計類中的服務(wù) 236
11.6.2 設(shè)計類的關(guān)聯(lián) 237
11.6.3 對象設(shè)計優(yōu)化 239
11.7 軟件設(shè)計模式 242
11.7.1 工廠模式 243
11.7.2 橋接模式 244
11.7.3 策略模式 245
11.7.4 其他模式 245
11.8 面向?qū)ο笤O(shè)計實例 246
11.9 案例:“小型網(wǎng)上書店系統(tǒng)”的
軟件設(shè)計說明書 249
拓展閱讀:銀河麒麟—砥礪前行精神 249
本章小結(jié) 249
習(xí)題 249
第12章 面向?qū)ο髮崿F(xiàn) 252
12.1 面向?qū)ο笳Z言的選擇 252
12.1.1 面向?qū)ο笳Z言的優(yōu)點 252
12.1.2 面向?qū)ο笳Z言的技術(shù)特點 252
12.1.3 選擇面向?qū)ο笳Z言 252
12.2 面向?qū)ο蟪绦蛟O(shè)計風(fēng)格 253
12.2.1 提高可復(fù)用性 253
12.2.2 提高可擴充性 253
12.2.3 提高穩(wěn)健性 253
12.3 面向?qū)ο髮崿F(xiàn)實例 254
12.4 案例:“小型網(wǎng)上書店系統(tǒng)”的
代碼和部署文檔 256
拓展閱讀:PaddlePaddle—技術(shù)自強
精神 257
本章小結(jié) 257
習(xí)題 257
第13章 面向?qū)ο鬁y試 259
13.1 面向?qū)ο鬁y試與傳統(tǒng)測試 259
13.2 面向?qū)ο鬁y試策略 261
13.2.1 面向?qū)ο蟮膯卧獪y試 261
13.2.2 面向?qū)ο蟮募蓽y試 262
13.2.3 面向?qū)ο蟮南到y(tǒng)測試 263
13.2.4 面向?qū)ο蟮幕貧w測試 263
13.3 面向?qū)ο鬁y試用例設(shè)計 264
13.3.1 面向?qū)ο鬁y試用例設(shè)計的
基本概念 264
13.3.2 面向?qū)ο缶幊虒y試的影響 264
13.3.3 基于故障的測試 265
13.3.4 基于場景的測試 265
13.3.5 表層結(jié)構(gòu)和深層結(jié)構(gòu)的測試 266
13.4 面向?qū)ο鬁y試實例 266
13.5 案例:“小型網(wǎng)上書店系統(tǒng)”的測試
分析報告 267
拓展閱讀:WPS Office—自主創(chuàng)新精神 267
本章小結(jié) 268
習(xí)題 268
第14章 軟件工程管理 270
14.1 軟件估算 270
14.1.1 軟件估算的概念 270
14.1.2 軟件估算的方法 271
14.1.3 軟件估算的原則與技巧 273
14.2 軟件開發(fā)進(jìn)度計劃 273
14.2.1 Gantt圖 273
14.2.2 PERT圖 274
14.3 軟件開發(fā)人員組織 277
14.3.1 民主制程序員組 277
14.3.2 主程序員組 277
14.3.3 現(xiàn)代程序員組 278
14.4 軟件開發(fā)風(fēng)險管理 278
14.4.1 軟件開發(fā)風(fēng)險 278
14.4.2 軟件開發(fā)風(fēng)險管理 279
14.5 軟件質(zhì)量保證 280
14.5.1 軟件質(zhì)量的基本概念 281
14.5.2 軟件質(zhì)量保證的措施 282
14.6 軟件配置管理 282
14.6.1 軟件配置管理術(shù)語 282
14.6.2 配置管理過程 285
14.7 軟件工程標(biāo)準(zhǔn)與軟件文檔 285
14.7.1 軟件工程標(biāo)準(zhǔn) 286
14.7.2 軟件文檔 287
14.8 軟件過程能力成熟度模型 288
14.9 軟件項目管理 290
14.9.1 軟件項目管理概述 290
14.9.2 軟件項目管理與軟件工程的
關(guān)系 291
14.10 軟件工程管理實例 291
案例:“小型網(wǎng)上書店系統(tǒng)”的用戶使用
說明書 292
拓展閱讀:任正非—職業(yè)素養(yǎng)精神 292
本章小結(jié) 292
習(xí)題 293
附錄A 軟件工程常用工具及其
應(yīng)用 295
附錄B 基于“小型網(wǎng)上書店系統(tǒng)”的
實驗 299
附錄C 軟件開發(fā)項目綜合實踐詳解
(機票預(yù)訂系統(tǒng)) 302
附錄D 綜合案例 303
D.1 案例1:技術(shù)分享類博客網(wǎng)站 303
D.2 案例2:圖書影視交流平臺 303
附錄E 本書配套微課視頻清單 304