本書(shū)對(duì)軟件工程的基本理論進(jìn)行系統(tǒng)的介紹,并且用一個(gè)具體的實(shí)例貫穿全書(shū),對(duì)具體知識(shí)點(diǎn)配有豐富的例題,這種理論與實(shí)踐相結(jié)合的方式極大地方便了讀者對(duì)抽象、枯燥的軟件工程理論的理解和掌握。
本書(shū)共分11章,按照軟件生命周期的流程組織各章內(nèi)容,同時(shí)覆蓋了結(jié)構(gòu)化開(kāi)發(fā)方法和面向?qū)ο箝_(kāi)發(fā)方法,具體內(nèi)容包括軟件工程概述、可行性研究、需求分析、概要設(shè)計(jì)、詳細(xì)設(shè)計(jì)、編碼、測(cè)試、維護(hù)、軟件項(xiàng)目管理、面向?qū)ο蠓椒ㄅcUML建模以及面向?qū)ο蠓治雠c設(shè)計(jì)。
本書(shū)可以作為高等院校軟件工程課程的教材,也可以作為從事軟件開(kāi)發(fā)與測(cè)試工作以及其他相關(guān)工程技術(shù)工作的人員的參考書(shū)。
本書(shū)循序漸進(jìn)地對(duì)軟件工程的基本理論進(jìn)行了通俗易懂的講解,并配有微課視頻。
本書(shū)用一個(gè)具體的實(shí)例貫穿全書(shū),對(duì)具體知識(shí)點(diǎn)配有豐富的例題,這種理論與實(shí)踐相結(jié)合的方式 極大地方便了讀者對(duì)抽象、枯燥的軟件工程理論的理解和掌握。
隨著軟件工程相關(guān)技術(shù)和方法的迅猛發(fā)展,它們對(duì)軟件設(shè)計(jì)、開(kāi)發(fā)及維護(hù)工作起到了重要的指導(dǎo)與推動(dòng)作用。為適應(yīng)我國(guó)軟件工程的教學(xué)工作,編者在多年軟件開(kāi)發(fā)以及軟件工程教學(xué)實(shí)踐的基礎(chǔ)上,參閱多種國(guó)內(nèi)外最新版本的教材,編寫(xiě)了本書(shū)。本書(shū)可以作為高等院校本科生的教材,也可以為相關(guān)行業(yè)的工程技術(shù)人員提供有益的參考。
本書(shū)在第2版的基礎(chǔ)上對(duì)教材中的個(gè)別錯(cuò)誤進(jìn)行了修改,內(nèi)容安排與第2版一致,循序漸進(jìn)地對(duì)軟件工程的基本理論進(jìn)行了通俗易懂的講解,并增加了微課視頻。本書(shū)最大的特點(diǎn)是理論與實(shí)踐相結(jié)合,全書(shū)通過(guò)一個(gè)實(shí)例貫穿始終,把軟件工程的基本理論和方法系統(tǒng)、全面地講解清楚。這種方法克服了過(guò)去重理論輕實(shí)踐的內(nèi)容組織方式,大大方便了讀者的理解。具體而言,本書(shū)11章內(nèi)容之間的關(guān)系如下頁(yè)圖所示。
本書(shū)有配套的教學(xué)課件,讀者可從清華大學(xué)出版社網(wǎng)站(www.tup.com.cn)下載。由于編者水平有限,書(shū)中難免存在不足之處,懇請(qǐng)專(zhuān)家和讀者批評(píng)指正。
編者
2024年2月
第1章軟件工程概述1
1.1軟件1
1.1.1軟件的定義1
1.1.2軟件的特點(diǎn)2
1.1.3軟件的分類(lèi)2
1.2軟件危機(jī)與軟件工程5
1.2.1軟件危機(jī)5
1.2.2軟件工程6
1.2.3軟件工程的基本內(nèi)容7
1.2.4軟件工程的基本原則7
1.3軟件生命周期與軟件開(kāi)發(fā)模型8
1.3.1軟件生命周期8
1.3.2軟件開(kāi)發(fā)模型9
1.4軟件開(kāi)發(fā)方法17
1.4.1結(jié)構(gòu)化開(kāi)發(fā)方法17
1.4.2面向?qū)ο箝_(kāi)發(fā)方法20
1.5CASE工具與環(huán)境22
1.5.1Sybase PowerDesigner22
1.5.2Rational Rose23
1.5.3Microsoft Visio24
1.6軟件工程的演變與發(fā)展24
1.6.1軟件發(fā)展的新階段和新問(wèn)題24
1.6.2軟件工程的發(fā)展25
小結(jié)25
習(xí)題26\軟\件\工\程\理\論\與\實(shí)\踐\(第3版·微課版)\/目錄/ 第2章可行性研究27
2.1可行性研究的含義27
2.2可行性研究的任務(wù)和步驟28
2.2.1可行性研究的任務(wù)28
2.2.2可行性研究的步驟29
2.3可行性研究的要素31
2.3.1經(jīng)濟(jì)可行性31
2.3.2技術(shù)可行性31
2.3.3社會(huì)環(huán)境可行性32
2.4成本效益分析32
2.4.1成本估計(jì)方法概述32
2.4.2成本估計(jì)34
2.4.3度量效益的方法34
2.5方案選擇與決策36
2.6可行性研究實(shí)例《學(xué)生教材購(gòu)銷(xiāo)系統(tǒng)》可行性研究報(bào)告36
小結(jié)45
習(xí)題45
第3章需求分析47
3.1需求分析的基本概念47
3.1.1軟件需求的定義和特點(diǎn) 47
3.1.2需求分析的目標(biāo)和任務(wù)48
3.1.3需求分析的原則50
3.2需求獲取的方法50
3.2.1用戶(hù)訪談50
3.2.2問(wèn)卷調(diào)查50
3.2.3專(zhuān)題討論會(huì)51
3.2.4快速建立軟件原型52
3.3需求建模方法53
3.3.1數(shù)據(jù)流圖53
3.3.2數(shù)據(jù)字典57
3.3.3層次方框圖60
3.3.4Warnier圖61
3.3.5ER圖61
3.3.6狀態(tài)轉(zhuǎn)換圖64
3.4需求驗(yàn)證65
3.4.1需求驗(yàn)證的內(nèi)容66
3.4.2需求驗(yàn)證的方法67
3.5需求分析實(shí)例《學(xué)生教材購(gòu)銷(xiāo)系統(tǒng)》需求規(guī)格說(shuō)明書(shū)67
3.5.1《學(xué)生教材購(gòu)銷(xiāo)系統(tǒng)》非功能性需求68
3.5.2《學(xué)生教材購(gòu)銷(xiāo)系統(tǒng)》功能性需求77
小結(jié)86
習(xí)題86
第4章概要設(shè)計(jì)87
4.1概要設(shè)計(jì)概述87
4.2概要設(shè)計(jì)的主要內(nèi)容88
4.2.1概要設(shè)計(jì)的任務(wù)和過(guò)程88
4.2.2軟件體系結(jié)構(gòu)設(shè)計(jì)89
4.2.3數(shù)據(jù)庫(kù)設(shè)計(jì)94
4.3概要設(shè)計(jì)的原則98
4.3.1模塊化98
4.3.2耦合99
4.3.3內(nèi)聚101
4.3.4啟發(fā)規(guī)則103
4.3.5面向?qū)ο笤O(shè)計(jì)模式103
4.4概要設(shè)計(jì)的工具104
4.4.1層次方框圖104
4.4.2IPO圖104
4.4.3HIPO圖105
4.5概要設(shè)計(jì)實(shí)例《學(xué)生教材購(gòu)銷(xiāo)系統(tǒng)》概要設(shè)計(jì)說(shuō)明書(shū)105
小結(jié)113
習(xí)題114
第5章詳細(xì)設(shè)計(jì)116
5.1詳細(xì)設(shè)計(jì)的內(nèi)容與原則116
5.1.1詳細(xì)設(shè)計(jì)的內(nèi)容116
5.1.2詳細(xì)設(shè)計(jì)的原則117
5.2數(shù)據(jù)代碼設(shè)計(jì)的工具117
5.2.1程序流程圖118
5.2.2NS 圖119
5.2.3PAD120
5.2.4PDL122
5.2.5判定表和判定樹(shù)123
5.2.6詳細(xì)設(shè)計(jì)工具的選擇125
5.3人機(jī)界面設(shè)計(jì)125
5.4程序結(jié)構(gòu)復(fù)雜性的定量度量127
5.4.1McCabe方法127
5.4.2Halstead方法129
5.5詳細(xì)設(shè)計(jì)實(shí)例《學(xué)生教材購(gòu)銷(xiāo)系統(tǒng)》詳細(xì)設(shè)計(jì)說(shuō)明書(shū)130
小結(jié)140
習(xí)題140
第6章編碼143
6.1程序設(shè)計(jì)語(yǔ)言143
6.1.1程序設(shè)計(jì)語(yǔ)言的分類(lèi)143
6.1.2程序設(shè)計(jì)語(yǔ)言的特點(diǎn)146
6.1.3程序設(shè)計(jì)語(yǔ)言的選擇148
6.2編程風(fēng)格150
6.3程序效率156
6.3.1程序效率準(zhǔn)則156
6.3.2算法對(duì)效率的影響156
6.4編碼實(shí)例分析《學(xué)生教材購(gòu)銷(xiāo)系統(tǒng)》編碼規(guī)范說(shuō)明157
小結(jié)169
習(xí)題170
第7章測(cè)試172
7.1軟件測(cè)試概述172
7.1.1軟件測(cè)試的定義172
7.1.2軟件測(cè)試的對(duì)象173
7.1.3軟件測(cè)試的準(zhǔn)則173
7.1.4軟件測(cè)試的方法174
7.2軟件測(cè)試過(guò)程 175
7.2.1單元測(cè)試175
7.2.2集成測(cè)試177
7.2.3系統(tǒng)測(cè)試179
7.2.4確認(rèn)測(cè)試180
7.3白盒測(cè)試180
7.4黑盒測(cè)試184
7.5調(diào)試過(guò)程、技術(shù)與原則188
7.5.1調(diào)試過(guò)程188
7.5.2調(diào)試技術(shù)188
7.5.3調(diào)試原則190
7.6測(cè)試實(shí)例《學(xué)生教材購(gòu)銷(xiāo)系統(tǒng)》測(cè)試報(bào)告190
小結(jié)195
習(xí)題196
第8章維護(hù)197
8.1軟件維護(hù)概述197
8.1.1軟件維護(hù)的分類(lèi)197
8.1.2軟件維護(hù)的特點(diǎn)198
8.2維護(hù)任務(wù)的實(shí)施199
8.2.1維護(hù)組織200
8.2.2維護(hù)報(bào)告200
8.2.3維護(hù)過(guò)程201
8.3軟件的可維護(hù)性201
8.3.1軟件可維護(hù)性的定義201
8.3.2影響軟件可維護(hù)性的因素201
8.3.3提高軟件可維護(hù)性的方法202
8.4軟件維護(hù)的副作用204
8.4.1修改代碼的副作用204
8.4.2修改數(shù)據(jù)的副作用205
8.4.3修改文檔的副作用205
8.5軟件再工程205
8.6維護(hù)實(shí)例《學(xué)生教材購(gòu)銷(xiāo)系統(tǒng)》軟件維護(hù)報(bào)告206
小結(jié)211
習(xí)題211
第9章軟件項(xiàng)目管理212
9.1軟件項(xiàng)目管理概述212
9.2軟件進(jìn)度計(jì)劃管理214
9.2.1軟件進(jìn)度計(jì)劃管理概述214
9.2.2軟件進(jìn)度計(jì)劃編制方法216
9.2.3軟件進(jìn)度計(jì)劃控制218
9.3軟件質(zhì)量管理219
9.3.1軟件質(zhì)量219
9.3.2軟件質(zhì)量保證措施222
9.3.3能力成熟度模型223
9.4軟件成本管理227
9.4.1軟件成本分析227
9.4.2軟件成本估計(jì)228
9.4.3軟件成本控制229
9.5配置管理232
9.5.1配置管理概述232
9.5.2配置管理的組織232
9.5.3配置管理的主要活動(dòng)235
9.6人力資源管理238
9.6.1軟件項(xiàng)目人力資源的特征238
9.6.2人力資源管理的主要內(nèi)容238
9.6.3人員的組織與分工239
9.7軟件項(xiàng)目管理實(shí)例《學(xué)生教材購(gòu)銷(xiāo)系統(tǒng)》項(xiàng)目管理方案242
小結(jié)251
習(xí)題251
第10章面向?qū)ο蠓椒ㄅcUML建模254
10.1面向?qū)ο蠓椒ǜ攀?54
10.1.1面向?qū)ο蠓椒ǖ暮x254
10.1.2面向?qū)ο蟮能浖こ?56
10.1.3面向?qū)ο蟮幕靖拍詈吞卣?60
10.2統(tǒng)一建模語(yǔ)言267
10.2.1模型的建立267
10.2.2UML的特點(diǎn)與應(yīng)用272
10.2.3UML提供的常用圖274
10.3用例圖275
10.4狀態(tài)圖277
10.5活動(dòng)圖278
10.6類(lèi)圖280
10.7對(duì)象圖286
10.8順序圖286
10.9協(xié)作圖287
10.10組件圖288
10.11部署圖288
10.12使用PowerDesigner進(jìn)行建模289
10.12.1PowerDesigner的安裝289
10.12.2PowerDesigner的功能290
10.12.3PowerDesigner的運(yùn)行界面292
小結(jié)294
習(xí)題294
第11章面向?qū)ο蠓治雠c設(shè)計(jì)296
11.1面向?qū)ο蠓治?96
11.1.1面向?qū)ο蠓治龅倪^(guò)程與原則296
11.1.2確定對(duì)象與類(lèi)300
11.1.3確定屬性303
11.1.4定義服務(wù)304
11.1.5對(duì)象間的通信308
11.2面向?qū)ο笤O(shè)計(jì)314
11.2.1面向?qū)ο笤O(shè)計(jì)的概念314
11.2.2面向?qū)ο笤O(shè)計(jì)的準(zhǔn)則及啟發(fā)規(guī)則315
11.2.3面向?qū)ο笤O(shè)計(jì)的方法317
11.3使用PowerDesigner畫(huà)《學(xué)生教材購(gòu)銷(xiāo)系統(tǒng)》的9種圖318
11.3.1《學(xué)生教材購(gòu)銷(xiāo)系統(tǒng)》的用例圖318
11.3.2《學(xué)生教材購(gòu)銷(xiāo)系統(tǒng)》的類(lèi)圖319
11.3.3《學(xué)生教材購(gòu)銷(xiāo)系統(tǒng)》的對(duì)象圖322
11.3.4《學(xué)生教材購(gòu)銷(xiāo)系統(tǒng)》的狀態(tài)圖322
11.3.5《學(xué)生教材購(gòu)銷(xiāo)系統(tǒng)》的活動(dòng)圖322
11.3.6《學(xué)生教材購(gòu)銷(xiāo)系統(tǒng)》的順序圖322
11.3.7《學(xué)生教材購(gòu)銷(xiāo)系統(tǒng)》的協(xié)作圖324
11.3.8《學(xué)生教材購(gòu)銷(xiāo)系統(tǒng)》的組件圖325
11.3.9《學(xué)生教材購(gòu)銷(xiāo)系統(tǒng)》的部署圖325
小結(jié)326
習(xí)題326
參考文獻(xiàn)327