軟件工程相關數據快速增長且廣泛分布,從對封閉數據的檢索轉向對大規(guī)模開放數據的獲取,數據的充分利用成為大數據背景下軟件工程的一個重要新方向。本書面向大數據時代特征,介紹面向軟件工程的數據科學關鍵概念、方法和技術,內容以承前啟后方式,首先介紹軟件科學與工程、數據科學與工程,在此基礎上介紹利用數據科學支持軟件工程的方法和技術,包括數據驅動的軟件過程挖掘、數據驅動的可信軟件工程,以及數據驅動的需求變更分析;之后面向軟件工程項目,介紹基于數據科學的實證軟件工程分析方法,以及在軟件工程中的推薦系統(tǒng)和面向區(qū)塊鏈的軟件工程。全書重點介紹大數據時代下,軟件工程領域的一些進展和研究方向,并采用豐富的案例分析對相關概念、知識、方法和技術進行拓展,可為軟件工業(yè)界了解本領域相關方法、技術和實踐提供參考。
更多科學出版社服務,請掃碼獲取。
畢業(yè)于云南大學博士期間師從我國著名且唯一的回鶻史研究專家劉戈教授,現(xiàn)任陜西中醫(yī)學院人文學院副教授,陜西師范大學回鶻史碩士生導師,主要從事中國古代史的教育與科研工作。相繼主持和參與教育部人文社會科學項目和參與國家社科基金項目,在《歷史研究》、《中國史研究》、《陜西師范大學學報》等核心刊物發(fā)表文章十余篇.
目錄
第1章軟件科學與工程1
1.1軟件科學與工程的內涵1
1.1.1軟件的概念1
1.1.2軟件的重要性2
1.1.3軟件科學與工程的概念3
1.1.4軟件科學與工程的發(fā)展4
1.1.5軟件科學與工程的拓展5
1.2軟件科學與工程的新理解6
1.2.1復雜系統(tǒng)觀下的軟件科學與工程6
1.2.2泛在應用下的軟件科學與工程8
1.2.3價值觀下的軟件科學與工程9
1.2.4生態(tài)觀下的軟件科學與工程10
1.3軟件科學11
1.3.1新型計算模型及其算法與程序理論12
1.3.2信息物理融合系統(tǒng)的建模與分析13
1.3.3人-機-物融合系統(tǒng)的建模分析與驗證14
1.3.4智能軟件系統(tǒng)分析與驗證15
1.3.5面向軟件分析和驗證的自動推理與約束求解15
1.4軟件工程16
1.4.1軟件危機與軟件工程16
1.4.2軟件工程面臨的挑戰(zhàn)18
1.4.3軟件工程主要研究內容23
1.5小結26
練習題27
參考文獻27
第2章數據科學與工程28
2.1數據科學概念與數據工程技術28
2.1.1數據科學的概念28
2.1.2數據科學方法論30
2.1.3數據工程技術31
2.2多模態(tài)數據科學與工程49
2.2.1多模態(tài)研究方向50
2.2.2多模態(tài)表示學習53
2.2.3多模態(tài)應用55
2.2.4多模態(tài)案例分析57
2.3分布式數據科學與工程61
2.3.1分布式數據的隱私保護61
2.3.2分布式數據與聯(lián)邦學習62
2.3.3分布式數據的應用67
2.3.4分布式數據案例分析69
2.4小結72
練習題72
參考文獻72
第3章數據驅動軟件過程挖掘76
3.1軟件過程挖掘概述77
3.1.1軟件過程挖掘與軟件過程建模間的關系78
3.1.2軟件過程挖掘與業(yè)務過程挖掘間的關系79
3.2基本表述81
3.2.1軟件過程模型81
3.2.2軟件過程數據82
3.2.3軟件過程日志83
3.3雙層次軟件過程挖掘方法86
3.3.1活動層挖掘87
3.3.2過程層挖掘92
3.4案例97
3.4.1原型系統(tǒng)SPMining97
3.4.2挖掘JD數據集100
3.4.3挖掘AD數據集102
3.4.4軟件過程庫104
3.5小結106
練習題107
參考文獻107
第4章可信軟件需求建模與推理110
4.1可信軟件需求概述110
4.2可信軟件分領域需求112
4.3可信軟件需求定義與獲取118
4.3.1可信軟件需求定義118
4.3.2非功能需求評估數據描述與獲取122
4.3.3非功能需求評估與協(xié)商125
4.3.4可信需求獲取127
4.4可信軟件需求建模128
4.5可信軟件需求推理132
4.6案例研究139
4.7小結146
練習題147
參考文獻147
第5章軟件需求變更工程150
5.1軟件需求變更與軟件工程150
5.1.1軟件需求變更概念151
5.1.2基于過程改進的變更管理154
5.1.3軟件需求變更的影響157
5.2軟件需求變更分析158
5.2.1軟件需求變更過程158
5.2.2需求變更分析及預測163
5.2.3關聯(lián)需求變更請求重要性分析166
5.2.4案例研究172
5.3基于技術債務的軟件需求變更影響分析176
5.3.1軟件技術債務177
5.3.2軟件需求變更技術債務179
5.3.3案例研究184
5.4小結194
練習題195
參考文獻196
第6章數據驅動實證軟件工程200
6.1實證研究策略201
6.1.1實驗201
6.1.2案例研究201
6.1.3調查201
6.2研究方法202
6.2.1明確研究動機202
6.2.2研究問題設計203
6.2.3開展實驗206
6.2.4實驗結果展示207
6.2.5有效性評價208
6.2.6總結209
6.3常用技術210
6.3.1數理統(tǒng)計描述方法210
6.3.2數據可視化211
6.3.3統(tǒng)計學方法214
6.3.4復雜網絡方法216
6.3.5其他方法220
6.4案例研究222
6.4.1Maven生態(tài)系統(tǒng)案例222
6.4.2Maven生態(tài)系統(tǒng)問題分析225
6.4.3Maven生態(tài)系統(tǒng)實驗過程231
6.4.4Maven生態(tài)系統(tǒng)實驗結果分析234
6.4.5案例有效性威脅分析246
6.5小結247
練習題247
參考文獻248
第7章軟件工程中的推薦250
7.1面向軟件工程的推薦系統(tǒng)250
7.2面向軟件工程的推薦研究現(xiàn)狀252
7.3軟件工程中的推薦技術254
7.3.1軟件需求階段推薦技術254
7.3.2軟件開發(fā)階段推薦技術255
7.3.3軟件測試階段推薦技術256
7.3.4軟件維護和演化階段推薦技術256
7.4案例研究257
7.4.1數據預處理259
7.4.2第三方庫推薦KG2Lib模型262
7.4.3長尾第三方庫推薦探索264
7.4.4實驗設置269
7.4.5評價指標270
7.4.6第三方庫推薦實驗結果271
7.4.7長尾第三方庫推薦實驗結果277
7.5小結282
練習題282
參考文獻283
第8章面向區(qū)塊鏈的軟件工程286
8.1區(qū)塊鏈軟件286
8.1.1區(qū)塊鏈軟件發(fā)展歷程287
8.1.2區(qū)塊鏈軟件開發(fā)應用領域289
8.2智能合約設計與開發(fā)290
8.2.1智能合約開發(fā)工具介紹290
8.2.2智能合約編寫示例290
8.3區(qū)塊鏈上的隱私保護294
8.3.1隱私保護介紹294
8.3.2案例涉及的隱私技術295
8.3.3案例介紹295
8.3.4案例實驗分析302
8.4區(qū)塊鏈上的數據追溯306
8.4.1數據追溯介紹306
8.4.2案例涉及的其他技術306
8.4.3案例介紹307
8.4.4案例實驗分析314
練習題317
參考文獻318