隨著信息技術(shù)的發(fā)展,軟件已經(jīng)深入到人類社會生產(chǎn)和生活的各個方面。軟件工程是軟件開發(fā)經(jīng)驗總結(jié)的理論課程,具有很強(qiáng)的實踐性。本書覆蓋軟件系統(tǒng)完整的生命周期中的軟件活動,從需求、分析、設(shè)計、實現(xiàn)到維護(hù)、以及軟件質(zhì)量保證。全書共11章,主要內(nèi)容包括緒論、軟件工程要素、需求分析、面向?qū)ο笏枷肱c范型、面向?qū)ο蠓治、軟件系統(tǒng)設(shè)計、軟件實現(xiàn)、軟件質(zhì)量保證、軟件生命周期模型、綜合案例實踐。
(1)覆蓋軟件系統(tǒng)完整的生命周期中的軟件活動,從需求、分析、設(shè)計、實現(xiàn)到維護(hù)以及軟件質(zhì)量保證。
(2)作者具有20余年教學(xué)經(jīng)驗總結(jié),以及豐富的軟件項目開發(fā)經(jīng)驗,參與了大量的軟件項目和軟件產(chǎn)品。
(3)國家級精品課程資源配套,MOOC大學(xué)平臺獲評國家精品在線開放課程和國家級一流線上課程。
(4)知識結(jié)構(gòu)緊湊,面向軟件工程的實際應(yīng)用。
(5)突出技術(shù)理論和原理的運用,兼顧工程管理。
張爽,女,博士,副教授, 東北大學(xué)軟件學(xué)院,遼寧省本科教學(xué)名師,軟件學(xué)院教學(xué)指導(dǎo)委員會委員,軟件學(xué)院星級教師,國家級一流本科課程《軟件工程》負(fù)責(zé)人。近年來,作為項目負(fù)責(zé)人負(fù)責(zé)了江蘇省鑌鑫鋼鐵集團(tuán)公司智能料場項目、廣西盛隆冶金有限公司項目盛隆煉鋼連鑄一體化計劃調(diào)度模型軟件系統(tǒng)開發(fā)、冶金原料大數(shù)據(jù)分析模型軟件系統(tǒng)、基于大數(shù)據(jù)分析技術(shù)的電力需求決策支持平臺,均取得了非常好的應(yīng)用效益,其中江蘇省鑌鑫鋼鐵集團(tuán)公司智能料場為國內(nèi)首個智能料場。作為子課題負(fù)責(zé)人承擔(dān)了國家重點研發(fā)計劃項目鋼鐵工業(yè)網(wǎng)絡(luò)化協(xié)同生產(chǎn)智能管控平臺關(guān)鍵技術(shù)研究子課題、和東北大學(xué)基礎(chǔ)科研課題“基于巖體破裂大數(shù)據(jù)的金屬礦山安全高效開采基礎(chǔ)”。作為主要成員,參加了國家自然科學(xué)基金重點項目“機(jī)器學(xué)習(xí)驅(qū)動的知識平面創(chuàng)新和網(wǎng)絡(luò)性能優(yōu)化的研究”、中國工程院高端智庫項目企業(yè)內(nèi)部工業(yè)互聯(lián)網(wǎng)網(wǎng)絡(luò)系統(tǒng)發(fā)展研究、和遼寧省興遼英才計劃項目面向未來互聯(lián)網(wǎng)的數(shù)據(jù)傳輸與安全防護(hù)技術(shù)。 研究方向:人工智能、工業(yè)軟件、信息技術(shù)應(yīng)用創(chuàng)新、大數(shù)據(jù)+、工業(yè)互聯(lián)網(wǎng)、物聯(lián)網(wǎng)。
第 1章 緒論 1
學(xué)習(xí)目標(biāo) 1
1.1 軟件歷史 1
1.1.1 計算機(jī)歷史 1
1.1.2 軟件歷史 3
1.1.3 國產(chǎn)計算機(jī)與軟件 5
1.2 軟件的概念 8
1.2.1 軟件的定義 8
1.2.2 軟件的特點 9
1.2.3 軟件的分類 10
1.2.4 術(shù)語 13
1.3 軟件工程 14
1.3.1 軟件危機(jī) 14
1.3.2 軟件工程 18
1.3.3 軟件工程知識體系 19
1.4 軟件工程道德與從業(yè)規(guī)范 20
1.5 案例研究 22
【要點】 23
【習(xí)題】 23
【思考與討論】 24
第 2章 軟件工程要素 26
學(xué)習(xí)目標(biāo) 26
2.1 軟件過程 27
2.1.1 需求 27
2.1.2 分析 30
2.1.3 設(shè)計 31
2.1.4 實現(xiàn) 32
2.1.5 維護(hù) 32
2.1.6 退役 32
2.1.7 軟件質(zhì)量保證 33
2.1.8 項目管理 33
2.2 軟件方法 34
2.2.1 結(jié)構(gòu)化方法 34
2.2.2 Jackson方法 35
2.2.3 面向?qū)ο蠓椒ā?5
2.2.4 敏捷方法 36
2.3 軟件工具 37
2.3.1 需求分析設(shè)計工具 38
2.3.2 編程工具 38
2.3.3 管理過程工具 39
2.4 統(tǒng)一過程 41
2.4.1 概念 42
2.4.2 統(tǒng)一過程的階段 42
2.4.3 核心工作流 44
【要點】 45
【習(xí)題】 46
【思考與討論】 47
第3章 需求分析 48
學(xué)習(xí)目標(biāo) 48
3.1 什么是需求 48
3.2 需求的層次 50
3.3 如何做需求 51
3.3.1 準(zhǔn)備工作 52
3.3.2 需求調(diào)研 55
3.3.3 完成需求文檔 56
3.3.4 需求確認(rèn) 59
3.4 功能性需求 59
3.5 非功能性需求 60
3.6 快速原型 62
3.6.1 基本概念 62
3.6.2 快速原型案例 63
3.7 需求面臨的挑戰(zhàn) 66
【要點】 68
【習(xí)題】 68
【思考與討論】 69
【實踐】 70
第4章 面向?qū)ο笏枷肱c范型 72
學(xué)習(xí)目標(biāo) 72
4.1 模塊 73
4.2 內(nèi)聚 74
4.2.1 偶然性內(nèi)聚 74
4.2.2 邏輯性內(nèi)聚 75
4.2.3 時間性內(nèi)聚 77
4.2.4 過程性內(nèi)聚 77
4.2.5 通信性內(nèi)聚 78
4.2.6 功能性內(nèi)聚 79
4.2.7 信息性內(nèi)聚 79
4.2.8 小節(jié) 80
4.3 耦合 80
4.3.1 內(nèi)容耦合 80
4.3.2 公共耦合 82
4.3.3 控制耦合 83
4.3.4 印記耦合 84
4.3.5 數(shù)據(jù)耦合 85
4.3.6 小節(jié) 85
4.4 數(shù)據(jù)封裝 85
4.5 信息隱藏 90
4.6 類之間的關(guān)系 93
4.6.1 類之間的繼承關(guān)系 93
4.6.2 類之間的聚合關(guān)系 95
4.6.3 類之間的關(guān)聯(lián)關(guān)系 97
4.7 多態(tài)與動態(tài)綁定 100
4.7.1 利用覆蓋實現(xiàn)多態(tài) 101
4.7.2 利用重載實現(xiàn)多態(tài) 102
4.7.3 利用接口實現(xiàn)多態(tài) 103
4.8 面向?qū)ο蠓缎汀?05
4.9 面向?qū)ο筌浖こ獭?08
4.10 統(tǒng)一建模語言UML與工具 108
【要點】 110
【習(xí)題】 110
【思考與討論】 114
【實踐】 115
第5章 面向?qū)ο蠓治觥?16
學(xué)習(xí)目標(biāo) 116
5.1 分析方法 116
5.2 面向?qū)ο蠓治龈乓?18
5.3 用例建!118
5.3.1 參與者 118
5.3.2 用例 121
5.3.3 參與者與用例之間的關(guān)系 124
5.3.4 用例說明 125
5.3.5 參與者之間的關(guān)系 127
5.3.6 用例之間的關(guān)系 130
5.3.7 用例建模的作用 133
5.3.8 用例建模案例 134
5.4 類建模 138
5.4.1 實體類 139
5.4.2 構(gòu)造初始類圖 142
5.4.3 類建模的原則 147
5.4.4 類建模案例 151
5.5 動態(tài)建模 156
5.5.1 狀態(tài)圖 157
5.5.2 動態(tài)建模案例 159
5.6 面向?qū)ο蠓治龅臏y試 163
【要點】 166
【習(xí)題】 167
【思考與討論】 168
【實踐】 168
第6章 軟件系統(tǒng)設(shè)計 169
學(xué)習(xí)目標(biāo) 169
6.1 軟件系統(tǒng)設(shè)計 169
6.1.1 架構(gòu)設(shè)計 170
6.1.2 數(shù)據(jù)庫設(shè)計 172
6.1.3 功能模塊設(shè)計 176
6.1.4 數(shù)據(jù)結(jié)構(gòu)與算法設(shè)計 178
6.1.5 用戶界面設(shè)計 179
6.2 面向?qū)ο笤O(shè)計概要 180
6.3 交互圖 180
6.3.1 順序圖 180
6.3.2 協(xié)作圖 192
6.4 詳細(xì)類圖 193
6.5 客戶-對象關(guān)系圖 194
6.6 方法的詳細(xì)設(shè)計 195
6.7 面向?qū)ο笤O(shè)計的迭代與測試 197
【要點】 197
【習(xí)題】 198
【思考與討論】 198
【實踐】 199
第7章 軟件實現(xiàn) 200
學(xué)習(xí)目標(biāo) 200
7.1 編程語言的分類 200
7.1.1 第 一代語言 200
7.1.2 第二代語言 201
7.1.3 第三代語言 202
7.1.4 第四代語言 202
7.2 編程語言的應(yīng)用 203
7.3 編程語言的選擇 204
7.3.1 技術(shù)因素 206
7.3.2 經(jīng)濟(jì)成本 206
7.3.3 風(fēng)險 206
7.4 編程規(guī)范 207
7.5 實現(xiàn)與集成 212
7.5.1 自頂向下實現(xiàn)與集成 214
7.5.2 自底向上實現(xiàn)與集成 215
7.5.3 三明治實現(xiàn)與集成 215
【要點】 216
【習(xí)題】 217
【思考與討論】 218
【實踐】 218
第8章 軟件質(zhì)量保證 219
學(xué)習(xí)目標(biāo) 219
8.1 軟件質(zhì)量 219
8.2 軟件質(zhì)量保證 219
8.3 SQA管理 220
8.4 軟件測試 221
8.4.1 非執(zhí)行測試 221
8.4.2 基于執(zhí)行測試 222
8.5 測試活動與文檔 226
【要點】 227
【習(xí)題】 228
【思考與討論】 229
【實踐】 229
第9章 軟件維護(hù) 230
學(xué)習(xí)目標(biāo) 230
9.1 軟件維護(hù)的必要性 230
9.2 軟件維護(hù)的重要性 232
9.3 對軟件維護(hù)人員素質(zhì)的要求 232
【要點】 234
【習(xí)題】 234
【思考與討論】 235
第 10章 軟件生命周期模型 237
學(xué)習(xí)目標(biāo) 237
10.1 瀑布模型 237
10.2 快速原型模型 239
10.3 迭代與增量模型 240
10.4 同步穩(wěn)定模型 242
10.5 螺旋模型 243
【要點】 245
【習(xí)題】 245
【思考與討論】 246
第 11章 綜合案例實踐 248
11.1 案例業(yè)務(wù)簡介 248
11.2 需求文檔 248
11.3 用例圖 251
11.4 初始類圖 252
11.5 順序圖 253
參考文獻(xiàn) 255