隨著信息技術(shù)的發(fā)展,軟件已經(jīng)深入到人類社會(huì)生產(chǎn)和生活的各個(gè)方面。軟件工程是軟件開發(fā)經(jīng)驗(yàn)總結(jié)的理論課程,具有很強(qiáng)的實(shí)踐性。本書覆蓋軟件系統(tǒng)完整的生命周期中的軟件活動(dòng),從需求、分析、設(shè)計(jì)、實(shí)現(xiàn)到維護(hù)、以及軟件質(zhì)量保證。全書共11章,主要內(nèi)容包括緒論、軟件工程要素、需求分析、面向?qū)ο笏枷肱c范型、面向?qū)ο蠓治觥④浖到y(tǒng)設(shè)計(jì)、軟件實(shí)現(xiàn)、軟件質(zhì)量保證、軟件生命周期模型、綜合案例實(shí)踐。
(1)覆蓋軟件系統(tǒng)完整的生命周期中的軟件活動(dòng),從需求、分析、設(shè)計(jì)、實(shí)現(xiàn)到維護(hù)以及軟件質(zhì)量保證。
(2)作者具有20余年教學(xué)經(jīng)驗(yàn)總結(jié),以及豐富的軟件項(xiàng)目開發(fā)經(jīng)驗(yàn),參與了大量的軟件項(xiàng)目和軟件產(chǎn)品。
(3)國家級(jí)精品課程資源配套,MOOC大學(xué)平臺(tái)獲評(píng)國家精品在線開放課程和國家級(jí)一流線上課程。
(4)知識(shí)結(jié)構(gòu)緊湊,面向軟件工程的實(shí)際應(yīng)用。
(5)突出技術(shù)理論和原理的運(yùn)用,兼顧工程管理。
張爽,女,博士,副教授, 東北大學(xué)軟件學(xué)院,遼寧省本科教學(xué)名師,軟件學(xué)院教學(xué)指導(dǎo)委員會(huì)委員,軟件學(xué)院星級(jí)教師,國家級(jí)一流本科課程《軟件工程》負(fù)責(zé)人。近年來,作為項(xiàng)目負(fù)責(zé)人負(fù)責(zé)了江蘇省鑌鑫鋼鐵集團(tuán)公司智能料場項(xiàng)目、廣西盛隆冶金有限公司項(xiàng)目盛隆煉鋼連鑄一體化計(jì)劃調(diào)度模型軟件系統(tǒng)開發(fā)、冶金原料大數(shù)據(jù)分析模型軟件系統(tǒng)、基于大數(shù)據(jù)分析技術(shù)的電力需求決策支持平臺(tái),均取得了非常好的應(yīng)用效益,其中江蘇省鑌鑫鋼鐵集團(tuán)公司智能料場為國內(nèi)首個(gè)智能料場。作為子課題負(fù)責(zé)人承擔(dān)了國家重點(diǎn)研發(fā)計(jì)劃項(xiàng)目鋼鐵工業(yè)網(wǎng)絡(luò)化協(xié)同生產(chǎn)智能管控平臺(tái)關(guān)鍵技術(shù)研究子課題、和東北大學(xué)基礎(chǔ)科研課題“基于巖體破裂大數(shù)據(jù)的金屬礦山安全高效開采基礎(chǔ)”。作為主要成員,參加了國家自然科學(xué)基金重點(diǎn)項(xiàng)目“機(jī)器學(xué)習(xí)驅(qū)動(dòng)的知識(shí)平面創(chuàng)新和網(wǎng)絡(luò)性能優(yōu)化的研究”、中國工程院高端智庫項(xiàng)目企業(yè)內(nèi)部工業(yè)互聯(lián)網(wǎng)網(wǎng)絡(luò)系統(tǒng)發(fā)展研究、和遼寧省興遼英才計(jì)劃項(xiàng)目面向未來互聯(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ì)算機(jī)歷史 1
1.1.2 軟件歷史 3
1.1.3 國產(chǎn)計(jì)算機(jī)與軟件 5
1.2 軟件的概念 8
1.2.1 軟件的定義 8
1.2.2 軟件的特點(diǎn) 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 軟件工程知識(shí)體系 19
1.4 軟件工程道德與從業(yè)規(guī)范 20
1.5 案例研究 22
【要點(diǎn)】 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è)計(jì) 31
2.1.4 實(shí)現(xiàn) 32
2.1.5 維護(hù) 32
2.1.6 退役 32
2.1.7 軟件質(zhì)量保證 33
2.1.8 項(xiàng)目管理 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è)計(jì)工具 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
【要點(diǎn)】 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
【要點(diǎn)】 68
【習(xí)題】 68
【思考與討論】 69
【實(shí)踐】 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 時(shí)間性內(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)與動(dòng)態(tài)綁定 100
4.7.1 利用覆蓋實(shí)現(xiàn)多態(tài) 101
4.7.2 利用重載實(shí)現(xiàn)多態(tài) 102
4.7.3 利用接口實(shí)現(xiàn)多態(tài) 103
4.8 面向?qū)ο蠓缎汀?05
4.9 面向?qū)ο筌浖こ獭?08
4.10 統(tǒng)一建模語言UML與工具 108
【要點(diǎn)】 110
【習(xí)題】 110
【思考與討論】 114
【實(shí)踐】 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 實(shí)體類 139
5.4.2 構(gòu)造初始類圖 142
5.4.3 類建模的原則 147
5.4.4 類建模案例 151
5.5 動(dòng)態(tài)建模 156
5.5.1 狀態(tài)圖 157
5.5.2 動(dòng)態(tài)建模案例 159
5.6 面向?qū)ο蠓治龅臏y(cè)試 163
【要點(diǎn)】 166
【習(xí)題】 167
【思考與討論】 168
【實(shí)踐】 168
第6章 軟件系統(tǒng)設(shè)計(jì) 169
學(xué)習(xí)目標(biāo) 169
6.1 軟件系統(tǒng)設(shè)計(jì) 169
6.1.1 架構(gòu)設(shè)計(jì) 170
6.1.2 數(shù)據(jù)庫設(shè)計(jì) 172
6.1.3 功能模塊設(shè)計(jì) 176
6.1.4 數(shù)據(jù)結(jié)構(gòu)與算法設(shè)計(jì) 178
6.1.5 用戶界面設(shè)計(jì) 179
6.2 面向?qū)ο笤O(shè)計(jì)概要 180
6.3 交互圖 180
6.3.1 順序圖 180
6.3.2 協(xié)作圖 192
6.4 詳細(xì)類圖 193
6.5 客戶-對(duì)象關(guān)系圖 194
6.6 方法的詳細(xì)設(shè)計(jì) 195
6.7 面向?qū)ο笤O(shè)計(jì)的迭代與測(cè)試 197
【要點(diǎn)】 197
【習(xí)題】 198
【思考與討論】 198
【實(shí)踐】 199
第7章 軟件實(shí)現(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)險(xiǎn) 206
7.4 編程規(guī)范 207
7.5 實(shí)現(xiàn)與集成 212
7.5.1 自頂向下實(shí)現(xiàn)與集成 214
7.5.2 自底向上實(shí)現(xiàn)與集成 215
7.5.3 三明治實(shí)現(xiàn)與集成 215
【要點(diǎn)】 216
【習(xí)題】 217
【思考與討論】 218
【實(shí)踐】 218
第8章 軟件質(zhì)量保證 219
學(xué)習(xí)目標(biāo) 219
8.1 軟件質(zhì)量 219
8.2 軟件質(zhì)量保證 219
8.3 SQA管理 220
8.4 軟件測(cè)試 221
8.4.1 非執(zhí)行測(cè)試 221
8.4.2 基于執(zhí)行測(cè)試 222
8.5 測(cè)試活動(dòng)與文檔 226
【要點(diǎn)】 227
【習(xí)題】 228
【思考與討論】 229
【實(shí)踐】 229
第9章 軟件維護(hù) 230
學(xué)習(xí)目標(biāo) 230
9.1 軟件維護(hù)的必要性 230
9.2 軟件維護(hù)的重要性 232
9.3 對(duì)軟件維護(hù)人員素質(zhì)的要求 232
【要點(diǎn)】 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
【要點(diǎn)】 245
【習(xí)題】 245
【思考與討論】 246
第 11章 綜合案例實(shí)踐 248
11.1 案例業(yè)務(wù)簡介 248
11.2 需求文檔 248
11.3 用例圖 251
11.4 初始類圖 252
11.5 順序圖 253
參考文獻(xiàn) 255