logo
中国学科发展战略·软件科学与工程

中国学科发展战略·软件科学与工程

软件是世界数字化的直接产物、自动化的现代途径、智能化的逻辑载体。时至今日,小到一个智能传感器、一块智能手表,大到一座智慧城市、一张智能电网,无不依赖于软件系统的驱动与驾驭。软件重塑了从休闲娱乐、人际交往到生产生活、国计民生等社会经济的方方面面。“软件定义一切”日益成为一种现实。软件已经成为信息化社会不可或缺的基础设施,高效地构建和运用复杂软件系统的能力成为国家和社会发展的一种核心竞争力。 本书第一部分回顾软件和软件技术的发展历程,通过梳理软件发展脉络,总结软件科学与工程学科(简称软件学科)的基本内涵、主要线索、研究方法和发展规律,并指出,软件是定义计算的逻辑制品,其实质是以计算为核心手段实现应用目标的解决方案,而软件学科本质上是一门具有高度综合性的方法论学科;而后,分别从程序设计语言与理论、系统软件、软件工程、软件产业等方面阐述学科领域的内涵和外延,以及相应的发展历程、现状和存在的主要矛盾。
本书预览点击购买
中国学科发展战略联合领导小组
组长: 高鸿钧 李静海
副组长: 秦大河 韩宇
成员: 王恩哥 朱道本  陈宜瑜  傅伯杰  李树深  杨卫  王笃金 苏荣辉 王长锐 于晟 董国轩  杨俊林  冯雪莲 姚玉鹏 王岐东 张兆田  杨列勋  孙瑞娟  陈拥军   

联合工作组
组长:苏荣辉 于晟
成员:龚旭  孙粒  高阵雨  李鹏飞  钱莹洁  薛淮  冯霞  马新勇

顾问专家组
(以姓氏拼音为序)
陈纯  陈左宁  何积丰  怀进鹏  李未  廖湘科  林惠民  陆汝钤  吕建  孙家广  王怀民  杨芙清  杨学军  赵沁平 周巢尘

工 作 组
组长:梅宏
成员(以姓氏拼音为序):
白晓颖  卜磊  陈红  陈恺  陈谋  陈碧欢  陈晋川 陈一峯  陈雨亭  陈跃国  陈振宇  崔斌  邓水光  丁博 杜小勇  冯新宇  高军  郝丹  胡振江  黄罡  金芝 李宣东  刘超  刘志明  卢卫  罗磊  马晓星  毛晓光 毛新军  梅宏  莫则尧  彭鑫  荣国平  沈洁  孙晓明 孙艳春  王戟  王涛  王怀民  王林章  王亚沙  魏峻 吴毅坚 熊英飞  许畅  晏荣杰  尹一通  詹乃军  张峰  张刚  张健  张路  赵文耘  钟华  周明辉  邹磊 

秘 书 组
组长:王戟
成员(以姓氏拼音为序): 郝丹  马晓星  彭鑫  王戟  周明辉
  我们正处在一个变革的时代!新一轮工业革命、互联网下半场、数字经济成型展开期……种种说法不断涌现。在这场“变革”的背后,“信息化”是其中的核心驱动力,而软件则是其中的基础性使能技术。
  在人类社会的发展史中,农业社会延续了数千年。然而在不到300 年的时间内,工业革命给人类社会带来翻天覆地的变化。工业化导致了工业社会,然而,即使是发展最快的美国,也直到 20 世纪 50年代才完成工业化历程。从 40 年代第一台电子计算机出现算起,信息技术才发展 80 年左右,而第一波信息化的浪潮,直到 70 年代末和 80 年代初才随着个人计算机的大规模普及应用而开启,可总结为以单机应用为主要特征的数字化阶段。从 90 年代中期起,以美国提出“信息高速公路”建设计划为重要标志,互联网开始了大规模商用进程,信息化迎来了蓬勃发展的第二波浪潮,即以互联网应用为主要特征的网络化阶段。经过二十多年的快速发展和积累储备,数据资源大规模聚集,其基础性、战略性地位日益凸显,我们正在开启信息化的第三波浪潮,即以数据的深度挖掘和融合应用为主要特征的智能化阶段。
  短短几十年,信息化已广泛并深刻地影响和改变了人类社会。特别是在过去的二十多年,以互联网为核心的信息技术深度渗入经济社会的方方面面,冲击着原有的社会结构,并逐渐编织起新的社会网络,建立新的基础设施,扩散先进的思维模式和行事方法,人类逐渐进入信息社会。信息技术正从助力社会经济发展的辅助工具向引领社会经济发展的核心引擎转变,“数字经济”正逐渐成型,即将进入其爆发期和黄金期。毫无疑问,信息技术及信息化带来的这场社会经济“革命”,在广度、深度和速度上都将是空前的,也将远远超出我们从工业社会获得的常识和认知,远远超出我们的预期。
  从技术视角考察信息社会,可以给出各种描述:万物数字化、数字孪生、万物互联、人机物三元空间融合、泛在计算、高速无线通信、智能应用、智慧城市等。然而,无论如何,这将是一个高度依赖信息基础设施的社会,而芯片和软件是信息基础设施最基本的构成元素,因此这也是一个软件无处不在的社会。软件是信息基础设施的有机构成成分,是处理数据信息的工具、呈现知识智能的载体,是各类智能应用的实现形式,更是各类社会经济活动基础设施数字化、平台化的使能技术。就这个意义而言,这也是一个“软件定义一切”(software defined everything)的社会。面向未来,软件的角色和地位将比历史上任何时候都更加重要和关键,软件技术也将面临比历史上任何时候都更严峻的挑战。正是在这样的一个时代背景下,受国家自然科学基金委员会与中国科学院学部联合立项资助,启动了“软件学科发展战略研究”,希望通过实施该项目,可以系统地回顾和梳理软件学科的基本架构和内涵、发展脉络和规律、研究方法和成就,分析和梳理未来人机物融合计算模式对软件技术带来的挑战,勾画新时代软件学科的架构、内涵和外延,指出值得重点关注的研究方向,进而给出我国发展软件学科的政策建议。
  相对而言,软件学科还是一个年轻的学科,但却是一个与时俱进、发展迅速的学科。“软件”一词的出现不过 60 来年,即使加上早期针对“程序”的研究,其学科发展也才近 70 年。然而,软件技术体系已完成数轮螺旋式迭代升级,软件范型的变迁,外化为软件语言与软件理论、软件构造方法、软件运行支撑、软件度量与质量评估,以及相应的软件支撑平台的体系化协同发展。同时,软件学科还是一个“入世”的学科,它和信息产业(特别是软件产业)关系紧密、互动频繁。事实上,软件学科和软件产业已形成互为依赖、协同发展的共生体,这也使软件学科的发展受自身规律和产业应用需求的双轮驱动。
  从宏观层面考察软件学科的发展,可以看到若干重要趋势:软件应用的行业领域越来越广,应用内涵越来越深,软件运行的平台环境日益网络化、复杂化和开放化,软件系统的规模和复杂度呈数量级增长,软件生态的全球化带来错综复杂的供应链,软件承载的社会责任越来越大,软件学科的研究内容也涌现出更多的“科学”性。这些现象均昭示,软件学科的发展到一个重要的历史节点,需要系统性地回顾和梳理,更需要战略性地界定和谋划。
  本项目自 2017 年启动,为期两年。为圆满完成项目任务,我们设计了由顾问专家组、工作组和秘书组构成的项目组架构,并制定了详细的工作推进计划。顾问专家组由软件领域的中国科学院/中国工程院院士组成,对项目研究工作给予指导,对项目研究成果给出评审意见和咨询建议;工作组由来自国内数十家单位的学者组成,分为软件理论(张健和胡振江牵头)、软件工程(金芝和李宣东牵头)、系统软件(王怀民和杜小勇牵头)、软件生态(赵文耘和周明辉牵头)和软件学科教育(毛新军牵头)五个专题组,负责相关主题的研究工作和文稿撰写。秘书组由王戟牵头,组员有周明辉、马晓星、郝丹和彭鑫,负责项目的协调推进和总体报告的撰写汇总。参与本书研讨、撰写和意见反馈的专家涉及海内外近百名学者。他们出于对软件学科发展的浓厚兴趣,秉承对我国软件事业发展的使命感,基于在软件领域长期耕耘所积累的丰富经验、深厚知识和深刻洞察,在自己教学、科研任务繁重的情况下,积极参与项目工作,为本书的顺利完成做出重要贡献。
  两年多里,我们先后召开了六次大规模的全体工作组会议、数十次专题组和秘书组会议,并在全国软件与应用学术会议(NASAC 2018)和中国计算机大会(CNCC 2019)等多个场合报告本项目的进展;多次将阶段研究进展和成果呈顾问专家组审阅、指导;邀请近 40名海内外知名学者参加以“软件自动化”为主题的雁栖湖会议。
  工作组内外专家的辛勤努力,终汇成此书。本书第一部分回顾软件和软件技术的发展历程;第二部分从顶层阐述“软件作为基础设计”这一发展趋势下软件学科的方法论新内涵,并分主题方向阐述学科发展面临的重大挑战及未来方向;第三部分回顾我国软件学科的简要历程,并从科研、教育和产业三个方面提出若干政策建议。白晓颖、杜小勇、胡振江、金芝、李宣东、毛新军、王怀民、王林章、张健、赵文耘及秘书组分别组织并负责了各章节撰写,秘书组和我本人完成了全书的统稿与定稿。
  在本项目研究过程中,还产生了一个副产品,即在 2019 年第一期的《软件学报》上组织发表了九篇综述文章,介绍了相关学科分支的发展历程和现状。本书的最后成稿,不少内容来自这些综述文章。
  本项目研究得到国家自然科学基金委和中国科学院的联合资助,在此再致谢意!
  囿于知识和能力所限,书中难免存在疏漏和不足,恳请广大读者谅解并给予批评指正。
  梅 宏
  中国科学院院士
  中国计算机学会理事长
  2020 年 5 月
目 录 总序
前言
摘要
Abstract
总论
第一节 软件与软件学科
一、软件 
二、软件的重要作用 
三、软件学科
四、软件学科的重要地位
第二节 发展历程与发展规律
一、软件学科发展历程 
二、软件学科发展规律
三、我国的软件学科、教育与产业 
第三节 发展趋势与挑战问题
一、软件成为基础设施
二、软件学科的拓展
三、软件学科的新理解
四、学科研究的主要问题 
第四节 政策建议
一、加强软件基础前沿研究
二、升级完善软件学科高等教育体系 
三、构建软件产业良性发展环境 
第五节 本章小结
中国学科发展战略 软件科学与工程
第一篇 软件学科发展回顾
第一章 引言
第一节 软件发展简史
一、人力/机械计算时代 
二、电子计算时代 
三、软件和软件工程的出现 
四、软件发展的主线 
第二节 软件学科的内涵、发展规律和基本架构 
一、内涵与学科特征 
二、学科发展的基本规律 
三、软件学科的基本架构 
第三节 本章小结
第二章 程序设计语言与理论 
第一节 概述
第二节 程序设计语言
一、语言的设计、实现及生命周期
二、应用驱动的程序设计语言发展
第三节 程序理论
一、程序设计语言的语法
二、程序设计语言的类型系统 
三、程序的语义
四、程序的规约
五、程序设计理论框架 
第四节 程序正确性构造
一、程序验证 
二、程序的自动综合 
三、程序的精化 
第五节 本章小结
第三章 系统软件
第一节 概述
第二节 操作系统
一、单道批处理操作系统 
二、多道和分时主机操作系统 
三、个人/嵌入式操作系统 
四、智能终端操作系统 
第三节 编译系统
一、从汇编器到高级程序编译器 
二、面向程序设计语言的编译系统 
三、针对多核/众核架构优化的编译系统 
第四节 中间件
一、早期的中间件 
二、面向内联网的中间件 
三、面向互联网的中间件 
四、面向人机物融合应用的中间件 
第五节 数据库管理系统
一、层次和网状数据库
二、关系数据库 
三、数据仓库系统
四、大数据时代的数据库管理系统 
第六节 本章小结
第四章 软件工程
第一节 概述
第二节 软件系统设计和实现
一、软件工程方法
二、软件工程过程 
三、软件质量保障
四、软件工程工具 
第三节 需求工程和领域工程
第四节 本章小结
第五章 软件产业
第一节 概述
第二节 软件产业和软件产业生态
第三节 软件产业发展历程概览
第四节 不同阶段和视角的软件产业生态
一、软件产业与软件技术的互动 
二、以产品化为特征的软件产业生态 
三、以服务化为特征的软件产业生态 
四、以融合化为特征的软件产业生态 
五、开发视角的软件产业生态 
第五节 本章小结
第二篇 新时代的软件学科
第六章 引言 
第一节 软件作为基础设施
第二节 软件学科范畴的拓展
第三节 软件学科的新理解
一、系统观 
二、形态观
三、价值观 
四、生态观
第四节 软件学科的发展趋势
第七章 软件理论 
第一节 重大挑战问题
一、新型计算模型及其算法与程序理论
二、面向泛在计算平台的软件构造与验证理论 
三、面向人机物融合的复杂系统软件理论 
第二节 主要研究内容
一、量子计算模型的算法复杂性理论与程序验证
二、大数据计算模型的算法与复杂性分析
三、异构与多态、并行与分布计算的程序理论 
四、信息物理融合系统的建模与分析 
五、人机物融合系统的软件建模与验证
六、学习赋能的软件系统分析与验证 
七、面向软件分析与验证的自动推理及约束求解 
第三节 本章小结
第八章 程序设计语言与支撑环境
第一节 重大挑战问题
一、面向泛在计算的语言的定制 
二、多范式程序设计的语言支持 
三、大数据处理的程序语言支持 
四、面向人机物融合的泛在范式的编译技术 
五、程序设计语言的安全性保障 
第二节 主要研究内容
一、多范式和领域特定的程序设计语言 
二、面向数据管理统计的程序设计语言 
三、面向软件定义网络的程序设计语言 
四、离散和连续混成系统的语言和工具 
五、支持共享内存模型的并发程序设计 
六、智能合约的设计语言和开发环境 
七、支持最终用户编程的程序设计语言
八、程序设计框架和开发环境
九、特定领域语言的元编程和开发环境 
十、程序设计语言的生态及其演化规律 
第三节 本章小结
第九章 软件开发方法与技术
第一节 重大挑战问题
一、复杂场景分析与建模
二、群体智能开发
三、人机协作编程
四、开发运维一体化
第二节 主要研究内容
一、人机物融合场景建模
二、系统自适应需求分析 
三、系统内生安全规约获取 
四、群体智能软件生态
五、群体智能开发方法 
六、群体智能协同演化 
七、群体智能软件支撑环境 
八、面向机器编程的代码生成 
九、面向人机协作的智能开发环境
十、开发过程建模与优化 
十一、软件系统运行数据管理 
十二、安全和可信的开发运维一体化 
十三、开发运维一体化的组织与管理
十四、微服务软件体系结构 
第三节 本章小结
第十章 操作系统与运行平台
第一节 重大挑战问题
一、支持软件定义的新型运行平台架构 
二、泛在资源的高效虚拟化和灵活调度 
三、基于连接协调的资源聚合与应用协同
四、复杂软件系统适应演化的共性支撑
五、人机物融合过程中的安全与隐私保护
第二节 主要研究内容
一、新型硬件资源管理和调度技术 
二、面向特定应用领域的优化技术 
三、软硬协同的安全攻防对抗技术
四、面向分布计算环境的资源虚拟化技术 
五、跨节点的资源高效按需聚合技术
六、多租户条件下的主动防御技术
七、基于区块链的新型分布架构运行支撑技术 
八、物理和社会资源的抽象及管控技术 
九、运行平台支持的软件持续演化技术
十、基于开源和众包的操作系统生态链构建技术 
第三节 本章小结
第十一章 数据管理与数据工程
第一节 重大挑战问题
一、大数据管理的挑战 
二、新型硬件与混合架构的挑战 
三、异构数据整理的挑战 
四、数据隐私保护与数据安全的挑战 
第二节 主要研究内容
一、分布式数据管理 
二、云数据管理 
三、图数据管理 
四、新型硬件数据管理
五、内存数据管理 
六、多源数据集成 
七、数据整理 
八、数据分析 
九、数据可视化
十、数据隐私
十一、数据安全 
第三节 本章小结
第十二章 软件质量与安全保障
第一节 重大挑战问题
一、数据驱动的智能系统质量保障 
二、人机物融合场景下的系统可信增强 
三、大规模复杂系统安全缺陷检测 
四、物联网环境下的系统安全保障 
第二节 主要研究内容
一、软件预期的外延扩展和符合性评估 
二、开放空间下的缺陷分析与漏洞挖掘技术
三、系统动态行为监控与容错
四、数据及智能模型的质量分析与评估 
五、智能系统测试 
六、安全缺陷检测、定位、修复和预警 
七、物联网环境下的测试技术
八、过程改进与预防式软件质量保障 
第三节 本章小结
第十三章 面向人机物融合的新型软件系统
第一节 卫星系统
一、参考体系结构
二、关键技术挑战 
三、未来研究方向 
第二节 流程工业控制系统
一、参考体系结构
二、关键技术挑战 
三、未来研究方向 
第三节 智慧城市系统
一、参考体系结构 
二、关键技术挑战 
三、未来研究方向 
第四节 无人自主系统
一、参考体系结构 
二、关键技术挑战
三、未来研究方向
第五节 高性能 CAE 软件系统 
一、参考功能特征 
二、关键技术挑战
三、未来研究方向 
第六节 本章小结
第十四章 软件生态
第一节 重大挑战问题
一、软件供应链的复杂性
二、个体参与生态的困难性 
三、群体协作的不可控性 
四、生态的可持续性 
第二节 主要研究内容
一、数据驱动的软件度量和分析方法
二、软件供应链的度量与分析
三、个体学习与群体协作的研究 
四、软件生态机制机理的研究 
第三节 本章小结
第十五章 软件学科教育
第一节 重大挑战问题
一、普及教育问题 
二、跨学科教育问题 
三、专业教育问题 
四、教育理念和方法改革问题 
五、软件伦理建设问题 
第二节 主要研究内容
一、以“知识普及+思维培养”为核心的普及教育
二、以“复合型+创新型”为目标的跨学科教育
三、以“知识体系+能力培养”为核心的专业教育 
四、以“探寻规律+方法创新”为主体的教育理念和方法改革 
五、以“规范内涵+自动检测”为核心的软件伦理建设 
第三节 本章小结
第三篇 中国软件学科发展建议
第十六章 学科发展回顾
第一节 软件科研
一、创业起步、自主仿制 
二、全面开放、进入主流
三、加强创新、前沿竞争
第二节 软件教育
第三节 软件产业
第四节 本章小结
第十七章 学科发展建议
第一节 加强软件基础前沿研究
一、加强面向人机物融合泛在计算模式的软件理论研究 
二、加强面向泛在计算的程序设计语言及其支撑环境研究 
三、布局基于软件定义方法的泛在操作系统原理和技术研究
四、探索以数据为中心的新型应用开发运行模式及其平台支撑
五、加强对大规模代码和项目的供应链与生态行为研究
六、重视软件技术研究和应用的价值取向与管理 
第二节 升级完善软件学科高等教育体系
一、布局面向全体大学生的软件通识教育
二、重构软件学科专业人才培养体系 
三、开展面向其他学科专业的软件工程教育
四、构建并开放软件教育支撑平台
第三节 构建软件产业良性发展环境
一、完善知识产权保护
二、大力发展融合应用 
三、布局新基础设施建设 
四、积极培育开源生态 
五、推进公共数据开放 
参考文献
关键词索引 
[1]Mei H,Liu X Z. Internetware:A New Software Paradigm for Internet Computing.New York:Springer Publishing Company,2016.
[2]Brooks F P. No silver bullet:Essence and accidents of software engineering. Computer, 1987,20(4):10-19.
[3]张效祥. 计算机科学技术百科全书.  北京:清华大学出版社,2005.
[4]Turing A M. On computable numbers,with an application to the entscheidungs problem.Proceedings of the London Mathematical Society,1937,s2-42(1):230-265.
[5]Cooper S B. Computability Theory. Boca Raton:CRC Press,2002.
[6]Cook S A. An overview of computational complexity. Communications of the ACM,1983, 26(6):400-408.
[7]Simon H A. The Sciences of the Artificial . 3rd ed. Cambridge:MIT Press,1996.
[8]Aspray W. International diffusion of computer technology,1945-1955. Annals of the History of Computing,1986,8(4):351-360.
[9]Ridgway R K. Compiling routines. Proceedings of the ACM National Meeting,Toronto,1952: 1-5.
[10]Carhart R R. A Survey of the Current Status of the Electronic Reliability Problem. Rand Memorandum. Santa Monica:RAND Corporation,1953.
[11]Tukey J W. The teaching of concrete mathematics. The American Mathematical Monthly, 1958,65(1):1-9.
[12]Humphrey W S. Software unbundling:A personal perspective. IEEE Annals of the Historyof Computing,2002,24(1):59-63.
[13]Naur P,Randell B. Software Engineering:Report of A Conference Sponsored by the NATO Science Committee,Garmisch,1968.
[14]Cameron L. What to know about the scientist who invented the term software engineering.IEEE Computing Edge,2018:230-265.
[15]Naur P. ALGOL 60”. ALGOL Bull. 9,1960:0084-6198.
[16]Dahl O J,Dijkstra E W,Hoare C A R. Structured Programming. London:Academic Press, 1972.
[17]Booch G. Object-oriented development. IEEE Transactions on Software Engineering,1986, 12(2):211-221.
[18]Meyer B. Object-oriented Software Construction. 2nd ed. Englewood Cliffs:Prentice-Hall, 1997.
[19]Heineman G T,Councill W T. Component-based Software Engineering:Putting the Pieces Together. Boston:Addison-Wesley Longman Publishing,2001.
[20]Huhns M N,Singh M P. Service-oriented computing:Key concepts and principles. IEEE Internet Computing,2005,9(1):75-81.
[21]Booch G,Maksimchuk R,Engle M,et al. Object-Oriented Analysis and Design with Applications. 3rd ed. New Jersey:Addison-Wesley,2007.
[22]Kramer J. Is abstraction the key to computing? Communications of the ACM,2007, 50(4):36-42.
[23]Lucy J A. Linguistic relativity. Annual Review of Anthropology,1997,26(1):291-312.
[24]Floyd R W. The paradigms of programming. Communications of the ACM,1978,22(8): 455-460.
[25]L J,Ma X X,Huang Y,et al. Internetware:A shift of software paradigm. Proceedings of the 1st Asia-Pacific Symposium on Internetware,Beijing,2009,(7):1-9.
[26]Mei H,Huang G,Xie T. Internetware:A softwareparadigm for internet computing.Computer,2012,45(6):26-31.
[27]Kuhn T S. The Structure of Scientific Revolutions. Chicago:University of Chicago Press, 1970.
[28]Backus J. The history of Fortran , ,and . ACM Sigplan Notices,1978,13(8): 165-180.
[ 29 ] Sammet J E. The early history of COBOL//Wexelblat R L. History of Programming Languages . New York:ACM,1981:199-243.
[30]Perlis A J. The American side of the development of ALGOL // Wexelblat R L. History of Programming Languages. New York:ACM,1981:75-91.
[31]Naur P. The European side of the last phase of the development of ALGOL//Wexelblat R L. History of Programming Languages. New York:ACM,1981:92-139.
[ 32 ] Wirth N. Recollections about the development of Pascal. The 2nd ACM SIGPLAN Conference on History of Programming Languages. HOPL-II,Cambridge,1993:333-342.
[33]Ritchie D M. The development of the C language. The 2nd ACM SIGPLAN Conference on History of Programming Languages,Cambridge,1993:201-208.
[34]Arnold K,Gosling J,Holmes D. The Java Programming Language. 3rd ed. New Jersey: Addison-Wesley Longman Publishing,2000.
[35]Nygaard K,Dahl O J. The development of the SIMULA languages// Wexelblat R L. History of Programming Languages. New York:ACM,1981:439-480.
[36]Kay A C. The early history of Smalltalk. The 2nd ACM SIGPLAN Conference on History of Programming Languages,Cambridge,1993:69-95.
[37]Stroustrup B. A history of C++:1979-1991. The 2nd ACM SIGPLAN Conference on History of Programming Languages,Cambridge,1993:271-297.
[38]McCarthy J. History of LISP//Wexelblat R L. History of Programming Languages. New York:ACM,1981:173-185.
[39]Colmerauer A,Roussel P. The birth of Prolog. The 2nd ACM SIGPLAN Conference on History of Programming Languages,Cambridge,1993:37-52.
[40]Chamberlin D. Early history of SQL. IEEE Annals of the History of Computing,2012, 34(4):78-82.
[41]Gordon M,Milner R,Morris L,et al. A metalanguage for interactive proof in LCF. Proceedings of the 5th ACM SIGACT-SIGPLAN Symposium on Principles of Programming Languages,Tucson,1978:119-130.
[42]Hudak P,Hughes J,Peyton J S,et al. A history of Haskell:Being lazy with class.Proceedings of the 3rd ACM SIGPLAN Conference on History of Programming Languages,San Diego,2007:12-1-12-55.
[43]Backus J. Can programming be liberated from the von Neumann style? A functional styleand its algebra of programs. Communications of the ACM,1978,21(8):613-641.
[44]Dean J, Ghemawat S. MapReduce: Simplified data processing on large clusters.Communications of the ACM,2008,51(1):107-113.
[45]Ethereum. Solidity Documentation. https://solidity.readthedocs.io[2020-02-18].
[46]Floyd R W. Assigning meaning to programs. Mathematical Aspects of Computer Science, 1967,19:19.
[47]陆汝钤. 计算系统的形式语义.  北京:清华大学出版社,2017.
[48]Clarke E M Jr,Grumberg O,Peled D A. Model Checking. Cambridge:MIT Press,1999.
[49]Liskov B. Perspectives on system languages and abstraction. SOSP History Day 2015.SOSP ’15. Monterey,California:Association for Computing Machinery,2015.
[50]Booch G,Rumbaugh J,Jacobson I. The Unified odeling Language User Guide. Redwood City:Addison Wesley Longman Publishing,1999.
[51]Liskov B,Zilles S. Programming with abstract data types. Proceedings of the ACM SIGPLAN Symposium on Very High Level Languages,Santa Monica,1974:50-59.
[52]Schmidt D C. Guest editor’s introduction:Model-driven engineering. Computer,2006, 39(2):25-31.
[53]Wirth N. A brief history of software engineering. Annals of the History of Computing IEEE, 2008,30(3):32-39.
[54]Denning P J,Comer D E,Gries D,et al. Computing as a discipline. Communications of the ACM,1989,32(1):9-23.
[55]Kernighan B W,Ritchie D M. The C Programming Language. 2nd ed. Englewood Cliffs: Prentice Hall,1988.
[56]Rossum G V,Drake F L. The Python Language Reference Manual. Surrey:Network Theory Ltd,2011.
[57]Stroustrup B. The C++ Programming Language. New York:Pearson Education India, 2000.
[58]Hejlsberg A,Wiltamuth S,Golde P. The C# Programming Language. Upper Saddle River: Addison-Wesley,2006.
[59]Crockford D. Javascript:The Good Parts. New York:O’Reilly Media Inc,2008.
[60]Lerdorf R J,Tatroe K,Kaehms B,et al. Programming PHP. O’Reilly Media,2002.
[61]Sebesta R W. Concepts of Programming Languages. 11th ed. Boston:Pearson,2016.
[62]Dijkstra E W. Go to statement considered harmful. Communications of the ACM,1968, 11(3):147-148.
[63]唐稚松. 时序逻辑程序设计与软件工程.  北京:科学出版社,2002.
[64]L?mmel R. Google’s MapReduce programming model—Revisited. Science of Computer Programming,2008,70(1):1-30.
[65]Turing A. Checking a Large Routine. Cambridge:MIT Press,1989:70-72.
[66]王戟,詹乃军,冯新宇,等.  形式化方法概貌.  软件学报,2019,30(1):33-61.
[67]周巢尘,詹乃军. 形式语义学引论. 2 版. 北京:科学出版社,2018.
[68]Hoare C A R. An axiomatic basis for computer programming. Communications of the ACM, 12(10):576-580.
[69]Goguen J A,Burstall R M. Institutions:Abstract model theory for specification and programming. Journal of the ACM,1992,39(1):95-146.
[70]Hoare C A R,He J F. Unifying Theories of Programming. Vol. 14. Englewood Cliffs: Prentice Hall,1998.
[71] Ro?u G. From Rewriting Logic , to Programming Language Semantics , to Program Verification. Logic,Rewriting,and Concurrency- Essays dedicated to Jos Meseguer on the Occasion of His 65th Birthday,2015:598-616.
[72]Pnueli A,Rosner R. On the synthesis of a reactive module. Proceedings of the 16th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages,1989:179- 190.
[73]Bullynck M. What Is An Operating System? A Historical Investigation(1954-1964). Reflections on Programming Systems. New York:Springer International Publishing,2018: 49-79.
[74]Patrick R L. General motors/North American monitor for the IBM 704 computer. International Workshop on Managing Requirements Knowledge,1987:797.
[75]Bauer W F. An integrated computation system for the ERA-1103. Journal of the ACM, 1956,3(3):181-185.
[76]Dijkstra E W. The structure of “THE”-multiprogramming system. Communications of the ACM,1968,11(5):341-346.
[77]Bauer W F. Computer design from the programmer’s viewpoint. Papers and Discussions Presented at the December 3-5 , 1958. Eastern Joint Computer Conference : Modern Computers:Objectives,Designs,Applications,Philadelphia,1958:46-51.
[78]Lee J A N. Time-Sharing at MIT:Introduction. IEEE Annals of the History of Computing, 1992,14(1):13-15.
[79]Corbat F J,Vyssotsky V A. Introduction and overview of the multics system. Proceedings of the November 30-December 1,1965,Fall Joint Computer Conference,Part I,Las Vegas,1965:185-196.
[80]Bach M J. The Design of the UNIX Operating System. Englewood Cliffs:Prentice-Hall, 1986.
[81]Mealy G H. The functional structure of OS/360,Part I:Introductory survey. IBM Systems Journal,1966,5(1):3-11.
[82]Hopper G M,Mauchly J W. Influence of programming techniques on the design of computers. Proceedings of the IRE,1953,41(10):1250-1254.
[83]Sammet J E. The early history of COBOL. SIGPLAN Not,1978,13(8):121-161.
[84]Dahl O J,Myhrhaug B,Nygaard K. Some features of the SIMULA 67 language. Proceedings of the 2nd Conference on Applications of Simulations,New York,1968:29- 31.
[85]Chomsky N. Three models for the description of language. IRE Transactions on Information Theory,1956,2(3):113-124.
[86]梅宏,王怀民.  软件中间件技术现状及发展.  中国计算机学会通讯,2015,1(1):2- 14.
[87]Buxton J N,Randell B. Software Engineering Techniques:Report on a Conference Sponsored by the NATO Science Committee. NATO Science Committee:Available from Scientific Affairs Division,NATO,1970.
[88]Jenkins B. Developments in computer auditing. Accountant,1972:537.
[89]Tanenbaum A S,Renesse R,Staveren H,et al. Experiences with the Amoeba distributed operating system. Communications of the ACM,1990,33(12):46-63.
[90]Tanenbaum A S,van Renesse R. Distributed operating systems. ACM Computing Surveys, 1985,17(4):419-470.
[91]Birrell A D,Nelson B J. Implementing remote procedure calls. ACM Transactions on Computer Systems,1984,2(1):39-59.
[92]Black A P. Supporting Distributed Applications:Experience with Eden//Baskett F,Birrell A,Cheriton D R. Proceedings of the 10th ACM Symposium on Operating System Principles, Orcas Island,1985:181-193.
[93]Emmerich W,Aoyama M,Sventek J. The impact of research on the development of middleware technology. ACM Transactions on Software Engineering & Methodology, 2008,17(4):1-48.
[94]Lu X C,Wang H M,Wang J,et al. Internet-based virtual computing environment:Beyond the data center as a computer. Future Generation Computer Systems,2013,29(1):309- 322.
[95]杜小勇,卢卫,张峰.  大数据管理系统的历史、现状与未来.  软件学报,2019,30(1):127-141.
[96]Bachman C W. The Origin of the Integrated Data Store(IDS):The First Direct-Access DBMS. IEEE Annals of the History of Computing,2009,31(4):42-54.
[97]Codd E F. A relational model of data for large shared data banks. Communications of the ACM,1970,13(6):377-387.
[98]Chang F,Dean J,Ghemawat S,et al. Bigtable:A distributed storage system for structured data. ACM Transactions on Computer Systems,2008,26(2):1-26.
[99]Corbett J C,Dean J,Epstein M,et al. Spanner:Google’s globally-distributed database.ACM Transactions on Computer Systems,2013,31(3):1-22.
[100]Naur P,Randell B. Software Engineering-Report on a Conference Sponsored by the NATO Science Committee. NATO Scientific Affairs Div(1968). http://homepages.cs.ncl.ac. uk/brian.randell/NATO/nato1968.PDF.
[101]Dijkstra E W. The humble programmer. Communications of the ACM,1972,15(10): 859-866.
[102]Brooks F. The Mythical Man-Month:Essays on Software Engineering. Upper Saddle River: Addison-Wesley,1995.
[103]Laplante P. What Every Engineering Should Know about Software Engineering. Boca Raton:CRC Press,2007.
[104]Sommerville I. Software Engineering. One Lake Street,Upper Saddle River:Addison- Wesley,1982.
[105]IEC,ISO. IEEE,Systems and software engineering-Vocabulary. Piscataway:IEEE Computer Society,2010.
[106]IEEE Standards. IEEE Standard Glossary of Software Engineering Terminology(IEEE Std 610. 12-1990). New York:Standards Coordinating Committee of the Computer Society of IEEE,1990.
[107]Pressman R S. Software Engineering:A Practitioner’s Approach. 2nd ed. New York: McGraw-Hill,2005.
[108]Ghezzi C,Jazayeri M,Mandrioli D. Fundamentals of Software Engineering. Englewood Cliffs:Prentice Hall PTR,2002.
[109]van Vliet H. Software Engineering:Principles and Practice. New York:John Wiley & Sons,2008.
[110]Bjorner D. 软件工程(卷 1-卷 3). 刘伯超,向剑文,等译. 北京:清华大学出版社,2010.
[111]Bourque P,Dupuis R,Abran A,et al. The guide to the software engineering body ofknowledge. IEEE Software,1999,16(6):35-44.
[112]Hamilton M H. What the errors tell us. IEEE Software,2018,35(5):32-37.
[113]Hamilton M H,Hackler W R. Universal systems language:Lessons learned from Apollo.Computer,2008,41(12):34-43.
[114]Prieto-Diaz R,Neighbors J M. Module interconnection languages. Journal of Systems and Software,1986,6(4):307-334.
[115]Taylor R N,Medvidovic N,Dashofy E M. Software Architecture:Foundations,Theory and Practice. New York:John-Willey,2009.
[116]Checkland P,Scholes J. Soft Systems Methodology in Action. New York:John Wiley & Sons Ltd,1990.
[117]Yourdon E,Constantine L. Structured Design:Fundamentals of a Discipline of Computer Program and Systems Design. Englewood Cliffs:Prentice-Hall,1979.
[118]Yourdon E. Modern Structured Analysis. Englewood Cliffs:Prentice-Hall,1989.
[119]Jackson M. Principle of Program Design. New York:Academic Press,1975.
[120]Jackson M. System Development. Englewood Cliffs:Prentice Hall,1983.
[121]deMarco T. Structure Analysis and System Specification. Pioneers and Their Contributions to Software Engineering. New York:Springer International Publishing,1979:255-288.
[122]Booch G,Maksimchuk R,Engle M,et al. Object-oriented Analysis and Design with Applications. 2nd ed. New York:Addision-Wesley,1993.
[123]Rumbaugh J,Blaha M R,Lorensen W,et al. Object-oriented Modeling and Design.Englewood Cliffs:Prentice-Hall,1991.
[124]Jacobson I. Object oriented software engineering:A use case driven approach. New York: Addison Wesley Longman Publishing,1992.
[125]Jacobson I,Booch G,Rumbaugh J. The Unified Software Development Process. New York:Adisson-Wesley,1998.
[126]Krechten P. The Rational Unified Process:An Introduction. New York:Addison-Wesley, 2004.
[127]Gamma E,Helm R,Johnson R,et al. Design Patterns. New York:Addison-Wesley, 1994.
[128]杨芙清,梅宏,李克勤.  软件复用与软件构件技术.  电子学报,1999,27(2):68-75.
[129]Papazoglou M P,Traverso P,Dustdar S,et al. Service-oriented computing:State of the art and research challenges. Computer,2007,40(11):38-45.
[130]Chrissis M B,Konrad M,Shrum S. CMMI Guidelines for Process Integration and ProductImprovement. New York:Addison-Wesley Longman Publishing,2003.
[131]Rienstra F. ISO 9000 for Software Quality Systems// Morais C C,et al. Proceedings of the 2nd International Conference on the Quality of Information and Communications Technology,Lisboa,1995:1-9.
[132]Larman C,Basili V R. Iterative and incremental developments. A brief history. Computer,2003,36(6):47-56.
[133]Gilb T. Evolutionary development. ACM SIGSOFT Software Engineering Notes,1981, 6(2):17.
[134]Edmonds E A. A process for the development of software for non-technical users as an adaptive system. General Systems,1974,19:215-218.
[135]梅宏,王千祥,张路,等.  软件分析技术进展.  计算机学报,2009,32(9):1697- 1710.
[136]Pohl K. Requirements Engineering:Fundamentals,Principles,and Techniques. New York:Springer International Publishing,2010.
[137]van Lamsweerde A. Requirements Engineering:From System Goals to UML Models to Software Specification. New York:John Wiley & Sons,2009.
[138]Yu E,Giorgini P,Maiden N,et al. Social Modeling for Requirements Engineering.Cambridge:MIT Press,2010.
[139]Sutcliffe A. Scenario-based requirements engineering. Proceedings of 11th IEEE International Requirements Engineering Conference,Monterey Bay,2003:320-329.
[140]Jackson M. Problem Frames:Analysing and Structuring Software Development Problems.New York:Addison-Wesley,2001.
[141]Kang K C,Kim S,Lee J,et al. FORM:A feature-oriented reuse method with domain- specific reference architectures. Annals of Software Engineering,1998,5(1):143.
[142]工业和信息化部. 2019 年全国软件和信息技术服务业主要指标快报表. http://www. miit.gov.cn/n1146312/n1146904/n1648374/c7663942/content[2020-10-20].
[143]美国计算机行业协会(CompTIA). IT Industry Outlook 2020. https://www.comptia.org/ content/research/it-industry-trends-analysis[2020-01-10].
[144]傅荣会. 中国软件产业发展的理论与实践.  北京:北京理工大学出版社,2017.
[145]王建平. 软件产业理论与实践.  北京:中国经济出版社,2003.
[146]中国电子信息产业发展研究院. 2017—2018 年中国软件产业发展蓝皮书. 北京:人民出版社,2018.
[147]Johnson L. A view from the 1960s:How the software industry began. IEEE Annals of theHistory of Computing,1998,20(1):36-42.
[148]梅宏. 建设数字中国:把握信息化发展新阶段的机遇.  人民日报,2018-08-19.
[149]梅宏,金芝,周明辉. 开源软件生态:研究与实践. 中国计算机学会通讯,2016,12(2):22-23.
[150]金芝,周明辉,张宇霞. 开源软件与开源软件生态:现状与趋势. 科技导报,2016,34(14):42-48.
[151]Mei H,GuoY. Toward ubiquitous operating systems:A software-defined perspective.Computer,2018,51(1):50-56.
[152]Peter Deutsch L,Finkbine R B. ACM Fellow profile. ACM SIGSOFT Software Engineering Notes,1999,24(1):1-21.
[153]Philip Chen C L,Zhang C Y. Data-intensive applications,challenges,techniques and technologies:A survey on big data. Information Sciences,2014,275:314-347.
[154]Lunze J,Lamnabhi-Lagarrigue F. Handbook of Hybrid Systems Control:Theory,Tools, Applications. Cambridge:Cambridge University Press,2009.
[155]Herlihy M,Shavit N. The art of multiprocessor programming. Kybernetes,2012,10(9- 10):S255b-S255.
[156]Leck Sewell T A,Myreen M O,Klein G. Translation validation for a verified OS kernel. Proceedings of the 34th ACM SIGPLAN Conference on Programming Language Design and Implementation,Seattle,2013:471-482.
[157]Montanaro A. Quantum algorithms:An overview. NPJ Quantum Information,2016,2(1):1-8.
[158]Lomonaco S J. Shor’s quantum factoring algorithm. Proceedings of Symposia in Applied Mathematics,2002,58:161-180.
[159]Grover L K. A fast quantum mechanical algorithm for database search. Proceedings of the 28th Annual ACM Symposium on Theory of Computing,Philadephia,1996:212-219.
[160]Ying M S. Foundations of Quantum Programming. San Francisco:Morgan Kaufmann, 2016.
[161]Huang X W,Kwiatkowska M,Wang S,et al. Safety Verification of Deep Neural Networks// Majumdar R,Kun?ak V. Computer Aided Verification. New York:Springer International Publishing,2017:3-29.
[162]Rastogi A,Hammer M A,Hicks M. Wysteria:A programming language for generic, mixed-mode multiparty computations. IEEE Symposium on Security and Privacy , Berkeley,2014:655-670.
[163]Wampler D,Clark T. Guest editors’ introduction:Multiparadigm programming. IEEE Software,2010,27(5):20-24.
[164]Hu Z J,Hughes J,Wang M. How functional programming mattered. National Science Review,2015,2(3):349-370.
[165]Torra V. Scala:From a Functional Programming Perspective—An Introduction to the Programming Language. New York:Springer International Publishing,2016.
[166]Markus V,Sebastian B,Christian D,et al. DSL Engineering:Designing,Implementing and Using Domain-Specific Languages. CreateSpace Independent Publishing Platform, 2013.
[167]Thereska E,Ballani H,O’Shea G,et al. IOFlow:A software-defined storage architecture. Proceedings of the 24th ACM Symposium on Operating Systems Principles,Farminton, 2013:182-196.
[168]Rompf T,Odersky M. Lightweight Modular Staging:A Pragmatic Approach to Runtime Code Generation and Compiled DSLs. ACM Sigplan Notices,2012,55(6):121-130.
[169]Chen T Q,Moreau T,Jiang Z H,et al. TVM:An automated end-to-end optimizing compiler for deep learning. Proceedings of the 12th USENIX Conference on Operating Systems Design and Implementation,Carlsbad,2018:579-594.
[170]Monsanto C,Foster N,Harrison R,et al. A compiler and run-time system for network
programming languages. Proceedings of the 39th Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages,Philadelphia,2012:217-230.
[171]Leroy X. Formal verification of a realistic compiler. Communications of the ACM,2009,
52(7):107-115.
[172]Wang Y T,Wilke P,Shao Z. An abstract stack based approach to verified compositional compilation to machine code. Proceedings of the ACM on Programming Languages,2019, 3:1-30.
[173]Yang X J,Chen Y,Eide E,et al. Finding and understanding bugs in C compilers. Proceedings of the 32nd ACM SIGPLAN Conference on Programming Language Design and Implementation,San Jose,2011:283-294.
[174]Nathan Foster J,Greenwald M B,Moore J T,et al. Combinators for bidirectional treetransformations:A linguistic approach to the view-update problem. http://doi.acm.org/10. 1145/1232420.1232424[2007-10-3].
[175]Carpenter B,Gelman A,Hoffman M D,et al. Stan:A probabilistic programming language.Journal of Statistical Software,2017,76(1):1-32.
[176]Anderson C J,Foster N,Guha A,et al. NetKAT:Semantic foundations for networks.ACM SIGPLAN Notices,2014,49(1):113-126.
[177]Bosshart P,Daly D,Izzard M,et al. P4:Programming protocol-independent packet processors. ACM SIGCOMM Computer Communication Review,2014,44(3):87-95.
[178]Gulwani S,Polozov O,Singh R. Program synthesis. Foundations and Trends in Programming Languages,2017,4(1-2):1-119.
[179]Vechev M T,Yahav E. Programming with “Big Code”. Foundations and Trends in Programming Languages,2016,3(4):231-284.
[180]Jin Z. Environment Modeling-based Requirements Engineering for Software Intensive Systems. Amsterdam:Elsevier Science,2018.
[181]Endsley M R. Designing for Situation Awareness:An Approach to User-Centered Design.2nd ed. Boca Raton:CRC Press,2011.
[182]Broy M,Schmidt A. Challenges in engineering cyber-physical systems. Computer,2014, 47(2):70-72.
[183]ZhangW,Mei H. Software development based on collective intelligence on the internet: feasibility,state-of-the-practice,and challenges. SCIENTIA SINICA Information,2017, 47(12):1601-1622.
[184]Sifakis J. Autonomous Systems—An Architectural Characterization// Boreale M,et al. Models,Languages,and Tools for Concurrent and Distributed Programming:Essays Dedicated to Rocco De Nicola on the Occasion of His 65th Birthday. New York:Springer International Publishing,2019:388-410.
[185]Wang H M. Harnessing the crowd wisdom for software trustworthiness. ACM SIGSOFT Software Engineering Notes,2018,43(1):1-6.
[186]Mei H,Zhang L. Can big data bring a breakthrough for software automation. Science China Information Sciences,2018,61(5):056101.
[187]Fitzgerald B,Stol K J. Continuous software engineering:A road map and agenda. Journal of Systems and Software,2017,123:176-189.
[188]Francesco P D,Malavolta I,Lago P. Research on architecting microservices:Trends, focus,and potential for industrial adoption. IEEE International Conference on Software Architecture,Gothenburg,2017:21-30.
[189]Myrbakken H,Colomo-Palacios R. DevSecOps:A multivocal literature review// Mas A, et al. Software Process Improvement and Capability Determination. New York:Springer International Publishing,2017:17-29.
[190]梅宏,郭耀.  面向网构软件的操作系统:发展及现状.  科技导报,2016,34(14):33-41.
[191]Rom n M,Hess C,Cerqueira R,et al. Gaia:A middleware platform for active spaces. ACM SIGMOBILE Mobile Computing and Communications Review,2002,6(4):65- 67.
[192]Quigley M,Conley K,Gerkey B,et al. ROS:An open-source robot operating system. Proceedings of the IEEE International Conference on Robotics and Automation,Kobe, 2009:1-8.
[193]Tuttlebee W H W. Software-defined radio:Facets of a developing technology. Personal Communications IEEE,1999,6(2):38-44.
[194]Gude N,Koponen T,Pettit J,et al. NOX:Towards an operating system for networks.ACM Sigcomm Computer Communication Review,2008,38(3):105-110.
[195]Androulaki E,Barger A,Bortnikov V,et al. Hyperledger fabric:A distributed operating system for permissioned blockchains. Proceedings of the 13th EuroSys Conference,Porto, 2018:1-15.
[196]Wang H M,Ding B,Shi D X,et al. Auxo:An architecture-centric framework supporting the online tuning of software adaptivity. Science China Information Sciences,2015, 58(9):1-15.
[197]王怀民,毛晓光,丁博,等.  系统软件新洞察.  软件学报,2019,30(1):22-32.
[198]王怀民,吴文峻,毛新军,等. 复杂软件系统的成长性构造与适应性演化. 中国科学:信息科学,2014,44(6):743-761.
[199]Satyanarayanan M. The emergence of edge computing. Computer,2017,50(1):30-39.
[200]Madhavapeddy A,Mortier R,Scott D,et al. Unikernels:Library operating systems for the cloud. ACM SIGARCH Computer Architecture News,2013,41(1):461-472.
[201]杜小勇,陈红. 大数据管理和分析系统生态:独立与融合发展并存,前沿科学,2019,2:84-87.
[202]杜小勇. 大数据管理.  北京:高等教育出版社,2019.
[203]崔斌,高军,童咏昕,等. 新型数据管理系统研究进展与趋势. 软件学报,2019,30(1):164-193.
[204]陈跃国,范举,卢卫杜,等. 数据整理—大数据治理的关键技术. 大数据,2019,5(3):16-25.
[205]信俊昌,王国仁,李国徽,等.  数据模型及其发展历程.  软件学报,2019,30(1):142-163.
[206]Sculley D,Holt G,Golovin D,et al. Hidden technical debt in machine learning systems.
Advances in Neural Information Processing Systems,2015,2:2503-2511.
[207]Cousot P,Giacobazzi R,Ranzato F. Program analysis is harder than verification:A computability perspective. International Conference on Computer Aided Verification, Oxford,2018:75-95.
[208]张健,张超,玄跻峰,等.  程序分析研究进展.  软件学报,2019,30(1):80-109.
[209]Ammar M,Russello G,Crispo B. Internet of things:A survey on the security of IoT frameworks. Journal of Information Security and Applications,2018,38:8-27.
[210]Brumley D,Poosankam P,Song D,et al. Automatic patch-based exploit generation is possible:Techniques and implications. Proceedings of the IEEE Symposium on Security and Privacy,Oakland,2008:143-157.
[211]Herbsleb J D,Moitra D. Global software development. Software IEEE,2001,18(2): 16-20.
[212]Mockus A. Keynote:Measuring open source software supply chains. Proceedings of the 27th ACM Joint Meeting on European Software Engineering Conference and Symposium on the Foundations of Software Engineering,Tallinn,2019:1-3.
[213]Ma Y,Bogart C,Amreen S,et al. World of code:An infrastructure for mining the universe
of open source VCS data. IEEE/ACM 16th International Conference on Mining Software Repositories,Montreal,2019:143-154.
[214]Zhou M H,Mockus A. Who will stay in the FLOSS community? Modeling participant’s
initial behavior. IEEE Transactions on Software Engineering,2015,41(1):82-99.
[215]Astromskis S,Bavota G,Janes A,et al. Patterns of developers behaviour:A 1000-hour industrial study. Journal of Systems & Software,2017,132:85-97.
[216]Vygotsky L. Interaction between learning and development. Readings on the Development of Children,1978,23(3):34-41.
[217]Zhang Y X,Zhou M H,Mockus A,et al. Companies’ participation in OSS development— An empirical study of openstack. IEEE Transactions on Software Engineering,2019,(99):1.
[218]Zhou M H,Mockus A,Ma X J,et al. Inflow and retention in OSS communities with commercial involvement:A case study of three hybrid projects. ACM Transactions on Software Engineering & Methodology,2016,25(2):1-29.
[219]Tu F F,et al. Be careful of when:An empirical study on timerelated misuse of issue tracking data. Proceedings of the 26th ACM Joint Meeting on European Software
Engineering Conference and Symposium on the Foundations of Software Engineering, Lake Buena Vista,2018:307-318.
[220]Bransford J D. How People Learn:Brain,Mind,Experience,and School:Expanded Edition. New York:Academies Press,2000.
[221]Curtis B. Fifteen years of psychology in software engineering:individual differences and cognitive science. Proceedings of the 7th International Conference on Software Engineering,New York,1984:97-106.
[222]吴爱华,侯永峰,杨秋波,等. 加快发展和建设新工科:主动适应和引领新经济. 高等工程教育研究,2017,(1):1-9.
[223]梅宏.  万物皆可互联,一切均可编程.  方圆,2018,(12):24.
[224]王怀民,吴文峻,毛新军,等. 复杂软件系统的成长性构造与适应性演化. 中国科学:信息科学,2014,45(6):743-761.
[225]梅宏,周明辉.  开源对软件人才培养带来的挑战.  计算机教育,2017,(1):2-5.
[226]“计算机教育 20 人论坛” 编写组.  计算机教育与可持续竞争力.  北京:高等教育出版社,2019.
[227]李晓明.  老年编程的畅想.  中国计算机学会通讯,2019,15(5):51.
[228]Sommerville I,Cliff D,Calinescu R,et al. Large-scale complex IT system. Communication of ACM,2012,55(7):71-77.
[229]毛新军,王涛,余跃. 软工程实践教程:基于开源和群智的方法. 北京:高等教育出版社,2019.
暂无
新书推荐