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