隨著信息技術的發(fā)展,軟件已經(jīng)深入到人類社會生產和生活的各個方面。軟件工程是軟件開發(fā)經(jīng)驗總結的理論課程,具有很強的實踐性。本書覆蓋軟件系統(tǒng)完整的生命周期中的軟件活動,從需求、分析、設計、實現(xiàn)到維護、以及軟件質量保證。全書共11章,主要內容包括緒論、軟件工程要素、需求分析、面向對象思想與范型、面向對象分析、軟件系統(tǒng)設計、軟件實現(xiàn)、軟件質量保證、軟件生命周期模型、綜合案例實踐。
(1)覆蓋軟件系統(tǒng)完整的生命周期中的軟件活動,從需求、分析、設計、實現(xiàn)到維護以及軟件質量保證。
(2)作者具有20余年教學經(jīng)驗總結,以及豐富的軟件項目開發(fā)經(jīng)驗,參與了大量的軟件項目和軟件產品。
(3)國家級精品課程資源配套,MOOC大學平臺獲評國家精品在線開放課程和國家級一流線上課程。
(4)知識結構緊湊,面向軟件工程的實際應用。
(5)突出技術理論和原理的運用,兼顧工程管理。
張爽,女,博士,副教授, 東北大學軟件學院,遼寧省本科教學名師,軟件學院教學指導委員會委員,軟件學院星級教師,國家級一流本科課程《軟件工程》負責人。近年來,作為項目負責人負責了江蘇省鑌鑫鋼鐵集團公司智能料場項目、廣西盛隆冶金有限公司項目盛隆煉鋼連鑄一體化計劃調度模型軟件系統(tǒng)開發(fā)、冶金原料大數(shù)據(jù)分析模型軟件系統(tǒng)、基于大數(shù)據(jù)分析技術的電力需求決策支持平臺,均取得了非常好的應用效益,其中江蘇省鑌鑫鋼鐵集團公司智能料場為國內首個智能料場。作為子課題負責人承擔了國家重點研發(fā)計劃項目鋼鐵工業(yè)網(wǎng)絡化協(xié)同生產智能管控平臺關鍵技術研究子課題、和東北大學基礎科研課題“基于巖體破裂大數(shù)據(jù)的金屬礦山安全高效開采基礎”。作為主要成員,參加了國家自然科學基金重點項目“機器學習驅動的知識平面創(chuàng)新和網(wǎng)絡性能優(yōu)化的研究”、中國工程院高端智庫項目企業(yè)內部工業(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 國產計算機與軟件 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 軟件質量保證 33
2.1.8 項目管理 33
2.2 軟件方法 34
2.2.1 結構化方法 34
2.2.2 Jackson方法 35
2.2.3 面向對象方法 35
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 需求調研 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章 面向對象思想與范型 72
學習目標 72
4.1 模塊 73
4.2 內聚 74
4.2.1 偶然性內聚 74
4.2.2 邏輯性內聚 75
4.2.3 時間性內聚 77
4.2.4 過程性內聚 77
4.2.5 通信性內聚 78
4.2.6 功能性內聚 79
4.2.7 信息性內聚 79
4.2.8 小節(jié) 80
4.3 耦合 80
4.3.1 內容耦合 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 面向對象范型 105
4.9 面向對象軟件工程 108
4.10 統(tǒng)一建模語言UML與工具 108
【要點】 110
【習題】 110
【思考與討論】 114
【實踐】 115
第5章 面向對象分析 116
學習目標 116
5.1 分析方法 116
5.2 面向對象分析概要 118
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 構造初始類圖 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 面向對象分析的測試 163
【要點】 166
【習題】 167
【思考與討論】 168
【實踐】 168
第6章 軟件系統(tǒng)設計 169
學習目標 169
6.1 軟件系統(tǒng)設計 169
6.1.1 架構設計 170
6.1.2 數(shù)據(jù)庫設計 172
6.1.3 功能模塊設計 176
6.1.4 數(shù)據(jù)結構與算法設計 178
6.1.5 用戶界面設計 179
6.2 面向對象設計概要 180
6.3 交互圖 180
6.3.1 順序圖 180
6.3.2 協(xié)作圖 192
6.4 詳細類圖 193
6.5 客戶-對象關系圖 194
6.6 方法的詳細設計 195
6.7 面向對象設計的迭代與測試 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章 軟件質量保證 219
學習目標 219
8.1 軟件質量 219
8.2 軟件質量保證 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 對軟件維護人員素質的要求 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