软件是世界数字化的直接产物、自动化的现代途径、智能化的逻辑载体。时至今日,小到一个智能传感器、一块智能手表,大到一座智慧城市、一张智能电 ,无不依赖于软件系统的驱动与驾驭。软件重塑了从休闲娱乐、人际交往到生产生活、国计民生等 会经济的方方面面。“软件定义一切”日益成为一种现实。软件已经成为信息化 会不可或缺的基础设施,高效地构建和运用复杂软件系统的能力成为国家和 会发展的一种核心竞争力。
我们正处在一个变革的时代!新一轮工业革命、互联 下半场、数字经济成型展开期……种种说法不断涌现。在这场“变革”的背后,“信息化”是其中的核心驱动力,而软件则是其中的基础性使能技术。
在人类 会的发展史中,农业 会延续了数千年。然而在不到300 年的时间内,工业革命给人类 会带来翻天覆地的变化。工业化导致了工业 会,然而,即使是发展最快的美国,也直到 20 世纪 50年代才完成工业化历程。从 40 年代第一台电子计算机出现算起,信息技术才发展 80 年左右,而第一波信息化的浪潮,直到 70 年代末和 80 年代初才随着个人计算机的大规模普及应用而开启,可总结为以单机应用为主要特征的数字化阶段。从 90 年代中期起,以美国提出“信息高速公路”建设计划为重要标志,互联 开始了大规模商用进程,信息化迎来了蓬勃发展的第二波浪潮,即以互联 应用为主要特征的 络化阶段。经过二十多年的快速发展和积累储备,数据资源大规模聚集,其基础性、战略性地位日益凸显,我们正在开启信息化的第三波浪潮,即以数据的深度挖掘和融合应用为主要特征的智能化阶段。
短短几十年,信息化已广泛并深刻地影响和改变了人类 会。特别是在过去的二十多年,以互联 为核心的信息技术深度渗入经济 会的方方面面,冲击着原有的 会结构,并逐渐编织起新的 会 络,建立新的基础设施,扩散先进的思维模式和行事方法,人类逐渐进入信息 会。信息技术正从助力 会经济发展的辅助工具向引领 会经济发展的核心引擎转变,“数字经济”正逐渐成型,即将进入其爆发期和黄金期。毫无疑问,信息技术及信息化带来的这场 会经济“革命”,在广度、深度和速度上都将是空前的,也将远远超出我们从工业 会获得的常识和认知,远远超出我们的预期。
从技术视角考察信息 会,可以给出各种描述:万物数字化、数字孪生、万物互联、人机物三元空间融合、泛在计算、高速无线通信、智能应用、智慧城市等。然而,无论如何,这将是一个高度依赖信息基础设施的 会,而芯片和软件是信息基础设施最基本的构成元素,因此这也是一个软件无处不在的 会。软件是信息基础设施的有机构成成分,是处理数据信息的工具、呈现知识智能的载体,是各类智能应用的实现形式,更是各类 会经济活动基础设施数字化、平台化的使能技术。就这个意义而言,这也是一个“软件定义一切”(software defined everything)的 会。面向未来,软件的角色和地位将比历史上任何时候都更加重要和关键,软件技术也将面临比历史上任何时候都更严峻的挑战。正是在这样的一个时代背景下,受国家自然科学基金委员会与中国科学院学部联合立项资助,启动了“软件学科发展战略研究”,希望通过实施该项目,可以系统地回顾和梳理软件学科的基本架构和内涵、发展脉络和规律、研究方法和成就,分析和梳理未来人机物融合计算模式对软件技术带来的挑战,勾画新时代软件学科的架构、内涵和外延,指出值得重点关注的研究方向,进而给出我国发展软件学科的政策建议。
相对而言,软件学科还是一个年轻的学科,但却是一个与时俱进、发展迅速的学科。“软件”一词的出现不过 60 来年,即使加上早期针对“程序”的研究,其学科发展也才近 70 年。然而,软件技术体系已完成数轮螺旋式迭代升级,软件范型的变迁,外化为软件语言与软件理论、软件构造方法、软件运行支撑、软件度量与质量评估,以及相应的软件支撑平台的体系化协同发展。同时,软件学科还是一个“入世”的学科,它和信息产业(特别是软件产业)关系紧密、互动频繁。事实上,软件学科和软件产业已形成互为依赖、协同发展的共生体,这也使软件学科的发展受自身规律和产业应用需求的双轮驱动。
从宏观层面考察软件学科的发展,可以看到若干重要趋势:软件应用的行业领域越来越广,应用内涵越来越深,软件运行的平台环境日益 络化、复杂化和开放化,软件系统的规模和复杂度呈数量级增长,软件生态的全球化带来错综复杂的供应链,软件承载的 会责任越来越大,软件学科的研究内容也涌现出更多的“科学”性。这些现象均昭示,软件学科的发展到一个重要的历史节点,需要系统性地回顾和梳理,更需要战略性地界定和谋划。
本书第一部分回顾软件和软件技术的发展历程,通过梳理软件发展脉络,总结软件科学与工程学科(简称软件学科)的基本内涵、主要线索、研究方法和发展规律,并指出,软件是定义计算的逻辑制品,其实质是以计算为核心手段实现应用目标的解决方案,而软件学科本质上是一门具有高度综合性的方法论学科;而后,分别从程序设计语言与理论、系统软件、软件工程、软件产业等方面阐述学科领域的内涵和外延,以及相应的发展历程、现状和存在的主要矛盾。
七十多年的发展历史表明,软件学科具有独特的发展规律。当前,随着物联 、云计算、大数据和人工智能应用的蓬勃发展,软件及软件学科面临着前所未有的系统复杂性和可信性要求的重大挑战,也孕育着新的科学和技术变革的重大机遇。
本书第二部分指出在人机物三元融合新时代,软件学科随着应用范围的扩张、计算平台的泛化和方法技术的发展,学科的边界不断拓展,内涵不断深化。在总论“软件作为基础设施”这一发展趋势的基础上,以系统观、形态观、价值观和生态观四个视角探讨软件学科的方法论新内涵,并指出,这些新内涵必将引发软件范型的变革,并辐射到软件语言与理论、软件开发、运行和度量评估等各个层面的方法及技术,进而在整体软件的生态、教育、产业等方面产生深刻影响;而后,从软件理论,程序设计语言与支撑环境,软件开发方法与技术,操作系统与运行平台,数据管理和数据工程,软件质量与安全保障,面向人机物融合的新型软件系统、软件生态、软件学科教育等方面展开,给出了学科的重大挑战问题和主要研究内容。
最后,本书第三部分回顾我国软件学科从艰苦创业到与国际并肩成长的简要历程,指出未来面临的挑战和机遇,并建议从加强软件基础前沿研究、升级完善软件学高等教育体系和构建软件产业良性发展环境等方面推进我国软件学科和软件产业的可持续发展。
软件科学与工程
国家自然科学基金委员会,中国科学院 编
北京:科学出版 ,2021.1
ISBN 978-7-03-067196-7
丛书策划:侯俊琳 牛 玲
内容简介
“软件定义一切”,软件已经成为信息化 会不可或缺的基础设施。高效地构建和运用复杂软件系统的能力已经成为国家和 会发展的一种核心竞争力。本书系统综述软件和软件技术的发展历程与现状,总结软件科学与工程学科(简称软件学科)的基本内涵和发展规律;从系统观、形态观、价值观和生态观四个视角探讨软件学科的方法论新内涵,并进一步梳理其学科方向的重大挑战问题和主要研究内容;简要回顾我国软件学科的发展历程,并提出学科发展的建议。
目录
总序 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
想了解更多内容?
科学商城(科学出版 )
京东(科学出版 )
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!