隨著信息技術的發(fā)展,軟件已經(jīng)深入到人類社會生產(chǎn)和生活的各個方面。軟件工程是軟件開發(fā)經(jīng)驗總結(jié)的理論課程,具有很強的實踐性。本書覆蓋軟件系統(tǒng)完整的生命周期中的軟件活動,從需求、分析、設計、實現(xiàn)到維護、以及軟件質(zhì)量保證。全書共11章,主要內(nèi)容包括緒論、軟件工程要素、需求分析、面向?qū)ο笏枷肱c范型、面向?qū)ο蠓治、軟件系統(tǒng)設計、軟件實現(xiàn)、軟件質(zhì)量保證、軟件生命周期模型、綜合案例實踐。
(1)覆蓋軟件系統(tǒng)完整的生命周期中的軟件活動,從需求、分析、設計、實現(xiàn)到維護以及軟件質(zhì)量保證。
(2)作者具有20余年教學經(jīng)驗總結(jié),以及豐富的軟件項目開發(fā)經(jīng)驗,參與了大量的軟件項目和軟件產(chǎn)品。
(3)國家級精品課程資源配套,MOOC大學平臺獲評國家精品在線開放課程和國家級一流線上課程。
(4)知識結(jié)構(gòu)緊湊,面向軟件工程的實際應用。
(5)突出技術理論和原理的運用,兼顧工程管理。
張爽,女,博士,副教授, 東北大學軟件學院,遼寧省本科教學名師,軟件學院教學指導委員會委員,軟件學院星級教師,國家級一流本科課程《軟件工程》負責人。近年來,作為項目負責人負責了江蘇省鑌鑫鋼鐵集團公司智能料場項目、廣西盛隆冶金有限公司項目盛隆煉鋼連鑄一體化計劃調(diào)度模型軟件系統(tǒng)開發(fā)、冶金原料大數(shù)據(jù)分析模型軟件系統(tǒng)、基于大數(shù)據(jù)分析技術的電力需求決策支持平臺,均取得了非常好的應用效益,其中江蘇省鑌鑫鋼鐵集團公司智能料場為國內(nèi)首個智能料場。作為子課題負責人承擔了國家重點研發(fā)計劃項目鋼鐵工業(yè)網(wǎng)絡化協(xié)同生產(chǎn)智能管控平臺關鍵技術研究子課題、和東北大學基礎科研課題“基于巖體破裂大數(shù)據(jù)的金屬礦山安全高效開采基礎”。作為主要成員,參加了國家自然科學基金重點項目“機器學習驅(qū)動的知識平面創(chuàng)新和網(wǎng)絡性能優(yōu)化的研究”、中國工程院高端智庫項目企業(yè)內(nèi)部工業(yè)互聯(lián)網(wǎng)網(wǎng)絡系統(tǒng)發(fā)展研究、和遼寧省興遼英才計劃項目面向未來互聯(lián)網(wǎng)的數(shù)據(jù)傳輸與安全防護技術。 研究方向:人工智能、工業(yè)軟件、信息技術應用創(chuàng)新、大數(shù)據(jù)+、工業(yè)互聯(lián)網(wǎng)、物聯(lián)網(wǎng)。
第 1章 緒論 1
學習目標 1
1.1 軟件歷史 1
1.1.1 計算機歷史 1
1.1.2 軟件歷史 3
1.1.3 國產(chǎn)計算機與軟件 5
1.2 軟件的概念 8
1.2.1 軟件的定義 8
1.2.2 軟件的特點 9
1.2.3 軟件的分類 10
1.2.4 術語 13
1.3 軟件工程 14
1.3.1 軟件危機 14
1.3.2 軟件工程 18
1.3.3 軟件工程知識體系 19
1.4 軟件工程道德與從業(yè)規(guī)范 20
1.5 案例研究 22
【要點】 23
【習題】 23
【思考與討論】 24
第 2章 軟件工程要素 26
學習目標 26
2.1 軟件過程 27
2.1.1 需求 27
2.1.2 分析 30
2.1.3 設計 31
2.1.4 實現(xiàn) 32
2.1.5 維護 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 需求分析設計工具 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
【習題】 46
【思考與討論】 47
第3章 需求分析 48
學習目標 48
3.1 什么是需求 48
3.2 需求的層次 50
3.3 如何做需求 51
3.3.1 準備工作 52
3.3.2 需求調(diào)研 55
3.3.3 完成需求文檔 56
3.3.4 需求確認 59
3.4 功能性需求 59
3.5 非功能性需求 60
3.6 快速原型 62
3.6.1 基本概念 62
3.6.2 快速原型案例 63
3.7 需求面臨的挑戰(zhàn) 66
【要點】 68
【習題】 68
【思考與討論】 69
【實踐】 70
第4章 面向?qū)ο笏枷肱c范型 72
學習目標 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 類之間的關系 93
4.6.1 類之間的繼承關系 93
4.6.2 類之間的聚合關系 95
4.6.3 類之間的關聯(liá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
【習題】 110
【思考與討論】 114
【實踐】 115
第5章 面向?qū)ο蠓治觥?16
學習目標 116
5.1 分析方法 116
5.2 面向?qū)ο蠓治龈乓?18
5.3 用例建!118
5.3.1 參與者 118
5.3.2 用例 121
5.3.3 參與者與用例之間的關系 124
5.3.4 用例說明 125
5.3.5 參與者之間的關系 127
5.3.6 用例之間的關系 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
【習題】 167
【思考與討論】 168
【實踐】 168
第6章 軟件系統(tǒng)設計 169
學習目標 169
6.1 軟件系統(tǒng)設計 169
6.1.1 架構(gòu)設計 170
6.1.2 數(shù)據(jù)庫設計 172
6.1.3 功能模塊設計 176
6.1.4 數(shù)據(jù)結(jié)構(gòu)與算法設計 178
6.1.5 用戶界面設計 179
6.2 面向?qū)ο笤O計概要 180
6.3 交互圖 180
6.3.1 順序圖 180
6.3.2 協(xié)作圖 192
6.4 詳細類圖 193
6.5 客戶-對象關系圖 194
6.6 方法的詳細設計 195
6.7 面向?qū)ο笤O計的迭代與測試 197
【要點】 197
【習題】 198
【思考與討論】 198
【實踐】 199
第7章 軟件實現(xiàn) 200
學習目標 200
7.1 編程語言的分類 200
7.1.1 第 一代語言 200
7.1.2 第二代語言 201
7.1.3 第三代語言 202
7.1.4 第四代語言 202
7.2 編程語言的應用 203
7.3 編程語言的選擇 204
7.3.1 技術因素 206
7.3.2 經(jīng)濟成本 206
7.3.3 風險 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
【習題】 217
【思考與討論】 218
【實踐】 218
第8章 軟件質(zhì)量保證 219
學習目標 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
【習題】 228
【思考與討論】 229
【實踐】 229
第9章 軟件維護 230
學習目標 230
9.1 軟件維護的必要性 230
9.2 軟件維護的重要性 232
9.3 對軟件維護人員素質(zhì)的要求 232
【要點】 234
【習題】 234
【思考與討論】 235
第 10章 軟件生命周期模型 237
學習目標 237
10.1 瀑布模型 237
10.2 快速原型模型 239
10.3 迭代與增量模型 240
10.4 同步穩(wěn)定模型 242
10.5 螺旋模型 243
【要點】 245
【習題】 245
【思考與討論】 246
第 11章 綜合案例實踐 248
11.1 案例業(yè)務簡介 248
11.2 需求文檔 248
11.3 用例圖 251
11.4 初始類圖 252
11.5 順序圖 253
參考文獻 255