前 言

我们正在进入一个软件定义和使能一切的智能化时代,如何提高大规模复杂软件的开发效率、确保软件质量已成为各行各业创新和发展的核心竞争力.近年来,云计算、大数据、人工智能和第五代移动通信(5G)等新技术的飞速发展更是深刻改变了人们应用和开发软件的方式,以服务化、群智化和生态化为代表的软件开发方法已成为现代软件开发的新趋势.在此背景下,研究面向服务的群智化生态化软件开发方法,将来自多方面的先进理论方法进行有效融合创新、汇聚群体智慧、增强软件生态系统的自适应演化能力已成为国内外学术界和工业界研究的前沿和重点,如何有效组织、群体协作,构建健康可持续的软件生态系统仍是当前软件开发方法面临的重大挑战.

2019年初,《计算机研究与发展》编辑部联合中国计算机学会软件工程专委会和系统软件专委会推出了本期“面向服务的群智化生态化软件开发方法”专题,介绍服务化、群智化和生态化软件开发方法及其相互融合的最新研究进展.通过公开征文,从22篇投稿中经过两轮专家评审以及在2019年11月在杭州举办的专委会年会(NASAC 2019)上的口头汇报和质询,本专题最终收录了5篇研究论文,分别涵盖了群体智能在软件开发中的应用、软件生态系统的演化以及面向服务的软件开发等方面的研究主题,期望能为从事相关研究工作的读者提供参考和借鉴.

软件缺陷修复是软件开发过程中的一个重要环节,尤其在以开源软件为代表的群智化软件开发模式下,如何提高缺陷分派的效率和准确性是保证软件质量的重要因素.刘烨等作者的论文“基于混合神经网络和注意力机制的软件缺陷自动分派方法”将缺陷自动分派任务转化为文本分类问题,并提出了一种基于混合神经网络和注意力机制的缺陷自动分派方法 AtenGCRNN.该方法能更有效地捕获缺陷报告的重要文本特征和序列特征,可以为软件开发提供更精准的缺陷修复者推荐服务.

软件开发同样离不开对软件开发相关知识的有效利用,Stack Overflow等技术社区是目前软件开发人员获取软件开发知识的重要途径.针对在技术社区上提出的问题并不一定会获得有效答案这一问题,沈明珠等作者的论文“面向技术论坛的问题解答状态预测”提出了一种基于深度学习的问题解答状态预测方法,能够提前预知问题能否及时获得有效答复,从而使开发人员能及时修改问题描述、或以其它途径寻求帮助.

基于群体智能的软件工程旨在利用潜在高效的群体智能方法来解决软件工程问题,其中群体智能方法不仅包括机器群体智能,还包括人类群体智能以及人机结合群体智能.徐立鑫等作者的论文“基于群体智能的软件工程方法综述”给出了应用不同层次群体智能方法解决软件工程问题的统一框架,并系统总结了各类群体智能方法在软件工程生命周期各项活动中的应用,能为不同层次间群体智能方法的相互借鉴和转化提供参考.

随着开源软件开发平台的快速发展,不同的软件项目正逐步以软件生态系统的方式呈现,如何理解软件生态系统的演化过程、揭示软件生态系统的演化规律是相关研究的一个热点话题.齐晴等作者的论文“GitHub中软件生态系统的演化”以开源软件开发平台GitHub为例,围绕如何识别不断演化的软件生态系统、软件生态系统中存在哪些不同的演化事件类型以及软件生态系统的长期存活与哪些因素密切相关这3个主要研究问题,分别给出了相应的识别和分析方法,并描述了3个具体的研究案例.

面向服务软件开发已成为现代软件开发的一种重要组成部分,其中微服务是面向服务软件开发的最新发展趋势,正受到工业界和学术界的广泛重视和关注.吴化尧等作者的论文“面向微服务软件开发方法研究进展”系统收集了与微服务软件开发相关的研究论文,并在此基础上总结了面向微服务软件开发在需求分析、设计与实现、测试以及重构上的已有方法、工具和实践,能为更加科学有效地开发高质量微服务软件提供参考.

我们衷心希望本专题能够抛砖引玉,软件工程及系统软件等相关领域的研究和开发人员能在研读本专题文章后得到新的启发,以进一步促进面向服务的群智化生态化软件开发方法的相关研究.由于时间仓促、容量有限,本专题无法全面覆盖服务化、群智化和生态化软件开发各领域的所有最新研究工作,存在不足之处,敬请各位同行谅解和批评指正.衷心感谢《计算机研究与发展》编辑部提供了宝贵机会出版此专题!衷心感谢各位作者、审稿专家和编辑部工作人员的全力支持和辛勤付出,以使得本专题能顺利出版!

2020年2月

聂长海(南京大学)

张 路(北京大学)