目录
总序 i
前言 v
摘要 ix
Abstract xi
总论 1
第一节 软件与软件学科 2
一、软件 2
二、软件的重要作用 3
三、软件学科 3
四、软件学科的重要地位 5
第二节 发展历程与发展规律 5
一、软件学科发展历程 5
二、软件学科发展规律 7
三、我国的软件学科、教育与产业 8
第三节 发展趋势与挑战问题 10
一、软件成为基础设施 10
二、软件学科的拓展 10
三、软件学科的新理解 11
四、学科研究的主要问题 15
第四节 政策建议 17
一、加强软件基础前沿研究 18
二、升级完善软件学科高等教育体系 19
三、构建软件产业良性发展环境 20
第五节 本章小结 21
第一篇 软件学科发展回顾
第一章 引言 25
第一节 软件发展简史 26
一、人力/机械计算时代 26
二、电子计算时代 27
三、软件和软件工程的出现 27
四、软件发展的主线 29
第二节 软件学科的内涵、发展规律和基本架构 35
一、内涵与学科特征 35
二、学科发展的基本规律 36
三、软件学科的基本架构 39
第三节 本章小结 40
第二章 程序设计语言与理论 42
第一节 概述 42
第二节 程序设计语言 43
一、语言的设计、实现及生命周期 43
二、应用驱动的程序设计语言发展 45
第三节 程序理论 49
一、程序设计语言的语法 50
二、程序设计语言的类型系统 50
三、程序的语义 52
四、程序的规约 54
五、程序设计理论框架 55
第四节 程序正确性构造 55
一、程序验证 55
二、程序的自动综合 57
三、程序的精化 57
第五节 本章小结 58
第三章 系统软件 59
第一节 概述 59
第二节 操作系统 60
一、单道批处理操作系统 62
二、多道和分时主机操作系统 63
三、个人/嵌入式操作系统 65
四、智能终端操作系统 66
第三节 编译系统 67
一、从汇编器到高级程序编译器 67
二、面向程序设计语言的编译系统 69
三、针对多核/众核架构优化的编译系统 70
第四节 中间件 71
一、早期的中间件 71
二、面向内联网的中间件 73
三、面向互联网的中间件 74
四、面向人机物融合应用的中间件 76
第五节 数据库管理系统 77
一、层次和网状数据库 78
二、关系数据库 78
三、数据仓库系统 79
四、大数据时代的数据库管理系统 80
第六节 本章小结 80
第四章 软件工程 82
第一节 概述 82
第二节 软件系统设计和实现 85
一、软件工程方法 85
二、软件工程过程 90
三、软件质量保障 94
四、软件工程工具 97
第三节 需求工程和领域工程 100
第四节 本章小结 102
第五章 软件产业 103
第一节 概述 103
第二节 软件产业和软件产业生态 104
第三节 软件产业发展历程概览 105
第四节 不同阶段和视角的软件产业生态 108
一、软件产业与软件技术的互动 108
二、以产品化为特征的软件产业生态 109
三、以服务化为特征的软件产业生态 112
四、以融合化为特征的软件产业生态 114
五、开发视角的软件产业生态 115
第五节 本章小结 118
第二篇 新时代的软件学科
第六章 引言 121
第一节 软件作为基础设施 121
第二节 软件学科范畴的拓展 123
第三节 软件学科的新理解 124
一、系统观 125
二、形态观 127
三、价值观 131
四、生态观 134
第四节 软件学科的发展趋势 136
第七章 软件理论 138
第一节 重大挑战问题 139
一、新型计算模型及其算法与程序理论 139
二、面向泛在计算平台的软件构造与验证理论 141
三、面向人机物融合的复杂系统软件理论 143
第二节 主要研究内容 145
一、量子计算模型的算法复杂性理论与程序验证 146
二、大数据计算模型的算法与复杂性分析 146
三、异构与多态、并行与分布计算的程序理论 147
四、信息物理融合系统的建模与分析 147
五、人机物融合系统的软件建模与验证 147
六、学习赋能的软件系统分析与验证 148
七、面向软件分析与验证的自动推理及约束求解 148
第三节 本章小结 149
第八章 程序设计语言与支撑环境 150
第一节 重大挑战问题 151
一、面向泛在计算的语言的定制 151
二、多范式程序设计的语言支持 152
三、大数据处理的程序语言支持 153
四、面向人机物融合的泛在范式的编译技术 154
五、程序设计语言的安全性保障 155
第二节 主要研究内容 156
一、多范式和领域特定的程序设计语言 158
二、面向数据管理统计的程序设计语言 158
三、面向软件定义网络的程序设计语言 159
四、离散和连续混成系统的语言和工具 159
五、支持共享内存模型的并发程序设计 160
六、智能合约的设计语言和开发环境 160
七、支持*终用户编程的程序设计语言 160
八、程序设计框架和开发环境 161
九、特定领域语言的元编程和开发环境 161
十、程序设计语言的生态及其演化规律 162
第三节 本章小结 163
第九章 软件开发方法与技术 164
第一节 重大挑战问题 165
一、复杂场景分析与建模 165
二、群体智能开发 169
三、人机协作编程 171
四、开发运维一体化 172
第二节 主要研究内容 176
一、人机物融合场景建模 176
二、系统自适应需求分析 177
三、系统内生安全规约获取 177
四、群体智能软件生态 178
五、群体智能开发方法 178
六、群体智能协同演化 178
七、群体智能软件支撑环境 179
八、面向机器编程的代码生成 179
九、面向人机协作的智能开发环境 180
十、开发过程建模与优化 180
十一、软件系统运行数据管理 180
十二、安全和可信的开发运维一体化 181
十三、开发运维一体化的组织与管理 181
十四、微服务软件体系结构 182
第三节 本章小结 182
第十章 操作系统与运行平台 183
第一节 重大挑战问题 184
一、支持软件定义的新型运行平台架构 184
二、泛在资源的高效虚拟化和灵活调度 186
三、基于连接协调的资源聚合与应用协同 188
四、复杂软件系统适应演化的共性支撑 190
五、人机物融合过程中的安全与隐私保护 192
第二节 主要研究内容 193
一、新型硬件资源管理和调度技术 194
二、面向特定应用领域的优化技术 194
三、软硬协同的安全攻防对抗技术 194
四、面向分布计算环境的资源虚拟化技术 195
五、跨节 点的资源高效按需聚合技术 195
六、多租户条件下的主动防御技术 196
七、基于区块链的新型分布架构运行支撑技术 196
八、物理和社会资源的抽象及管控技术 197
九、运行平台支持的软件持续演化技术 197
十、基于开源和众包的操作系统生态链构建技术 198
第三节 本章小结 198
第十一章 数据管理与数据工程 200
第一节 重大挑战问题 201
一、大数据管理的挑战 202
二、新型硬件与混合架构的挑战 204
三、异构数据整理的挑战 205
四、数据隐私保护与数据安全的挑战 206
第二节 主要研究内容 208
一、分布式数据管理 208
二、云数据管理 209
三、图数据管理 210
四、新型硬件数据管理 210
五、内存数据管理 211
六、多源数据集成 211
七、数据整理 212
八、数据分析 212
九、数据可视化 213
十、数据隐私 213十
一、数据安全 214
第三节 本章小结 214
第十二章 软件质量与安全保障 216
第一节 重大挑战问题 217
一、数据驱动的智能系统质量保障 217
二、人机物融合场景下的系统可信增强 219
三、大规模复杂系统安全缺陷检测 220
四、物联网环境下的系统安全保障 222
第二节 主要研究内容 224
一、软件预期的外延扩展和符合性评估 225
二、开放空间下的缺陷分析与漏洞挖掘技术 226
三、系统动态行为监控与容错 226
四、数据及智能模型的质量分析与评估 226
五、智能系统测试 227
六、安全缺陷检测、定位、修复和预警 227
七、物联网环境下的测试技术 228
八、过程改进与预防式软件质量保障 228
第三节 本章小结 228
第十三章 面向人机物融合的新型软件系统 230
第一节 卫星系统 231
一、参考体系结构 232
二、关键技术挑战 233
三、未来研究方向 234
第二节 流程工业控制系统 234
一、参考体系结构 235
二、关键技术挑战 236
三、未来研究方向 237
第三节 智慧城市系统 238
一、参考体系结构 239
二、主要技术挑战 239
三、未来研究方向 241
第四节 无人自主系统 242
一、参考体系结构 243
二、关键技术挑战 244
三、未来研究方向 245
第五节 高性能CAE软件系统 247
一、参考功能特征 248
二、关键技术挑战 249
三、未来研究方向 250
第六节 本章小结 251
第十四章 软件生态 253
第一节 重大挑战问题 254
一、软件供应链的复杂性 255
二、个体参与生态的困难性 256
三、群体协作的不可控性 257
四、生态的可持续性 259
第二节 主要研究内容 260
一、数据驱动的软件度量和分析方法 260
二、软件供应链的度量与分析 262
三、个体学习与群体协作的研究 263
四、软件生态机制机理的研究 265
第三节 本章小结 266
第十五章 软件学科教育 267
第一节 重大挑战问题 268
一、普及教育问题 269
二、跨学科教育问题 270
三、专业教育问题 272
四、教育理念和方法改革问题 273
五、软件伦理建设问题 274
第二节 主要研究内容 275
一、以“知识普及+思维培养”为核心的普及教育 275
二、以“复合型 +创新型”为目标的跨学科教育 276
三、以“知识体系+能力培养”为核心的专业教育 277
四、以“探寻规律+方法创新”为主体的教育理念和方法改革 278
五、以“规范内涵+自动检测”为核心的软件伦理建设 279
第三节 本章小结 280
第三篇 中国软件学科发展建议
第十六章 学科发展回顾 283
第一节 软件科研 283
一、创业起步、自主仿制 284
二、全面开放、进入主流 284
三、加强创新、前沿竞争 285
第二节 软件教育 287
第三节 软件产业 287
第四节 本章小结 289
第十七章 学科发展建议 290
第一节 加强软件基础前沿研究 290
一、加强面向人机物融合泛在计算模式的软件理论研究 291
二、加强面向泛在计算的程序设计语言及其支撑环境研究 291
三、布局基于软件定义方法的泛在操作系统原理和技术研究 291
四、探索以数据为中心的新型应用开发运行模式及其平台支撑 292
五、加强对大规模代码和项目的供应链与生态行为研究 292
六、重视软件技术研究和应用的价值取向与管理 292
第二节 升级完善软件学科高等教育体系 293
一、布局面向全体大学生的软件通识教育 293
二、重构软件学科专业人才培养体系 293
三、开展面向其他学科专业的软件工程教育 294
四、构建并开放软件教育支撑平台 294
第三节 构建软件产业良性发展环境 294
一、完善知识产权保护 295
二、大力发展融合应用 295
三、布局新基础设施建设 295
四、积极培育开源生态 295
五、推进公共数据开放 296
参考文献 297
关键词索引 312