Please wait a minute...
ISSN 1000-1239 CN 11-1777/TP

当期目录

2020年 第57卷 第3期    出版日期:2020-03-01
软件技术
2020面向服务的群智化生态化软件开发方法专题前言
聂长海, 张路
2020, 57(3):  459-460.  doi:10.7544/issn1000-1239.2020.qy0301
摘要 ( 646 )   HTML ( 53)   PDF (206KB) ( 366 )  
相关文章 | 计量指标
我们正在进入一个软件定义和使能一切的智能化时代,如何提高大规模复杂软件的开发效率、确保软件质量已成为各行各业创新和发展的核心竞争力. 近年来,云计算、大数据、人工智能和第五代移动通信(5G)等新技术的飞速发展更是深刻改变了人们应用和开发软件的方式,以服务化、群智化和生态化为代表的软件开发方法已成为现代软件开发的新趋势. 在此背景下,研究面向服务的群智化生态化软件开发方法,将来自多方面的先进理论方法进行有效融合创新、汇聚群体智慧、增强软件生态系统的自适应演化能力已成为国内外学术界和工业界研究的前沿和重点,如何有效组织、群体协作,构建健康可持续的软件生态系统仍是当前软件开发方法面临的重大挑战.
基于混合神经网络和注意力机制的软件缺陷自动分派方法
刘烨, 黄金筱, 马于涛
2020, 57(3):  461-473.  doi:10.7544/issn1000-1239.2020.20190606
摘要 ( 519 )   HTML ( 20)   PDF (831KB) ( 337 )  
相关文章 | 计量指标
软件缺陷修复是软件质量保证的一个重要环节.在互联网上开源、开放的群智化软件开发环境中,提升缺陷分派的效率和效果,有助于提高缺陷修复率并降低维护成本.目前,基于机器学习的缺陷自动分派方法已成为主流技术,但也存在特征人工构建、文本表示能力不足等问题.近年来,鉴于深度学习在自然语言处理领域的成功应用,研究者尝试将深度学习技术引入缺陷分派任务中,使得缺陷修复者的预测效果有了显著提高.然而,不同类型的神经网络亦存在各自的局限性.针对上述问题,将缺陷自动分派任务视为文本分类问题,结合卷积神经网络、循环神经网络和注意力机制各自的优势,提出了一种基于混合神经网络和注意力机制的缺陷自动分派方法Atten-CRNN,能更有效地捕获缺陷报告的重要文本特征和序列特征,从而提供更精准的缺陷修复者推荐服务.在Eclipse和Mozilla两个大型的知名软件开源项目中进行了实证研究,在20万量级的缺陷报告上的实验结果表明:无论是否考虑注意力机制,Atten-CRNN的预测准确率要高于基于卷积神经网络和基于循环神经网络的基准模型.
面向技术论坛的问题解答状态预测
沈明珠, 刘辉
2020, 57(3):  474-486.  doi:10.7544/issn1000-1239.2020.20190625
摘要 ( 347 )   HTML ( 7)   PDF (1858KB) ( 150 )  
相关文章 | 计量指标
当遭遇技术问题时,开发人员往往会在Stack Overflow等技术论坛上发布问题并等待回答.此类QA系统也是基于互联网的群智化软件开发的一个重要表现形式.但是论坛上提出的问题并不一定能够获得满意答案.因此,提出问题并被动地等待答案并不总是最佳策略.为此,提出了一种基于深度神经网络的方法以自动预测问题能否获得满意答案.提前预知问题能否及时获得有效答复,开发人员可以提前规划应对策略.该方法不仅充分利用了问题本身的文本信息,也将提问人员相关内容作为预测的主要依据.利用最新的深度学习技术,充分挖掘输入特征与问题解答状态之间的内在关联关系.在Stack Overflow提供的数据集上的实验结果表明:所提出的方法能够预测问题的解答情况,结果显示在预测问题是否有满意答案的查准率为58.87%、查全率为46.68%(随机猜测的查准率为38.77%,查全率为35.26%),并优于机器学习KNN和浅层神经网络FastText.
基于群体智能的软件工程方法综述
徐立鑫, 吴化尧
2020, 57(3):  487-512.  doi:10.7544/issn1000-1239.2020.20190626
摘要 ( 669 )   HTML ( 29)   PDF (1354KB) ( 550 )  
相关文章 | 计量指标
基于群体智能的软件工程旨在利用潜在高效的群体智能方法来解决软件工程问题,其中群体智能方法不仅包括机器群体智能,还包括人类群体智能以及人机结合群体智能.基于群体智能的软件工程研究为解决复杂软件工程问题提供了新的思路,已成为现代软件工程的重要组成部分.以软件工程生命周期中的需求分析、设计、构造、测试和维护为主线,系统梳理和总结不同层次群体智能方法在上述软件开发活动上的应用.在此基础上,为不同层次群体智能方法间的相互借鉴与转化提供参考,并探讨基于群体智能的软件工程的未来发展趋势和挑战.
GitHub中软件生态系统的演化
齐晴, 曹健, 刘妍岑
2020, 57(3):  513-524.  doi:10.7544/issn1000-1239.2020.20190615
摘要 ( 651 )   HTML ( 19)   PDF (3585KB) ( 226 )  
相关文章 | 计量指标
大多数软件项目都是相互依赖的,因此对软件生态系统的分析吸引了许多研究人员的兴趣.近年来,除了分析一些著名的软件生态系统外,研究人员还对GitHub中的软件生态系统及其功能进行了研究.然而,GitHub中软件生态系统发展的基本过程以及其演化的原因尚未引起广泛关注,当前研究对GitHub中的软件生态系统演化进行了深入研究.首先基于动态社区发现方法检测GitHub中不断演化的生态系统,然后识别并比较GitHub中的不同演化事件.通过演化过程示意图直观地展示了从2015年到2018年长期存活的软件生态系统其演化过程.为了理解生态系统存活或消亡的原因,进行了多元线性回归分析,找出了与生态系统存活相关的重要因素.此外,提出了3个典型案例研究,以显示GitHub中软件生态系统的演化行为.
面向微服务软件开发方法研究进展
吴化尧, 邓文俊
2020, 57(3):  525-541.  doi:10.7544/issn1000-1239.2020.20190624
摘要 ( 615 )   HTML ( 38)   PDF (889KB) ( 540 )  
相关文章 | 计量指标
微服务是面向服务体系结构的最新发展趋势和研究热点,其不仅在工业实践中形成了广泛且重要的应用,在学术界也受到日益增长的关注.以软件工程生命周期中的各项活动为主线,系统全面地对当前的微服务软件开发方法进行梳理和总结,尤其分析了面向微服务软件开发在需求分析、设计与实现、测试以及重构上的已有方法、工具和实践,并讨论了该领域的未来研究方向,从而为更加科学有效地开发高质量微服务提供参考和借鉴.
人工智能
编码技术改进大规模分布式机器学习性能综述
王艳, 李念爽, 王希龄, 钟凤艳
2020, 57(3):  542-561.  doi:10.7544/issn1000-1239.2020.20190286
摘要 ( 639 )   HTML ( 14)   PDF (3120KB) ( 373 )  
相关文章 | 计量指标
由于分布式计算系统能为大数据分析提供大规模的计算能力,近年来受到了人们的广泛关注.在分布式计算系统中,存在某些计算节点由于各种因素的影响,计算速度会以某种随机的方式变慢,从而使运行在集群上的机器学习算法执行时间增加,这种节点叫作掉队节点(straggler).介绍了基于编码技术解决这些问题和改进大规模机器学习集群性能的研究进展.首先介绍编码技术和大规模机器学习集群的相关背景;其次将相关研究按照应用场景分成了应用于矩阵乘法、梯度计算、数据洗牌和一些其他应用,并分别进行了介绍分析;最后总结讨论了相关编码技术存在的困难并对未来的研究趋势进行了展望.
一种融合语义分析特征提取的推荐算法
陈嘉颖, 于炯, 杨兴耀
2020, 57(3):  562-575.  doi:10.7544/issn1000-1239.2020.20190189
摘要 ( 557 )   HTML ( 21)   PDF (5008KB) ( 461 )  
相关文章 | 计量指标
推荐系统是大数据环境下解决用户个性化推荐的关键技术.针对现有推荐算法所面临的难以分析提取用户、项目本质特征的问题,将知识图谱作为异质信息融入协同过滤推荐算法进行项目语义特征分析,提出一种融合语义分析特征提取的推荐算法.首先根据推荐平台中项目的非结构化评论文本信息,结合知识图谱利用实体识别与连接技术在知识库中提取项目特征相关实体与关系,构建子知识库;然后通过知识图谱表示学习方法对子知识库进行表示学习,并将其用于项目和用户的低维向量表示;设计知识感知的协同学习框架,定义损失函数优化用户、项目的细粒度特征向量;最后根据用户、项目表征结果对目标用户进行Top-N推荐.在2个数据集上进行验证实验,结果表明:改进的算法在推荐准确率、召回率方面优于对比算法,能够为用户推荐更符合其偏好的项目.
一种权重平均值的深度双Q网络方法
吴金金, 刘全, 陈松, 闫岩
2020, 57(3):  576-589.  doi:10.7544/issn1000-1239.2020.20190159
摘要 ( 223 )   HTML ( 3)   PDF (4628KB) ( 110 )  
相关文章 | 计量指标
深度强化学习算法的不稳定性和可变性对其性能有重要的影响.深度Q网络模型在处理需要感知高维输入数据的决策控制任务中性能良好.然而,深度Q网络存在着高估动作值使agent性能变差的问题.尽管深度双Q网络能够缓解高估带来的影响,但是仍然存在低估动作值的问题.在一些复杂的强化学习环境中,即使是很小的估计误差也会对学习到的策略产生很大影响.为了解决深度Q网络中高估动作值和深度双Q网络中低估动作值的问题,提出一种基于权重平均值的深度双Q网络方法(averaged weighted double deep Q-network, AWDDQN),该方法将带权重的双估计器整合到深度双Q网络中.为了进一步地减少目标值的估计误差,通过计算之前学习到的动作估计值的平均值来产生目标值,并且根据时间差分误差动态地确定平均动作值的数量.实验结果表明:AWDDQN方法可以有效减少估计偏差,并且能够提升agent在部分Atari 2600游戏中的表现.
基于图表示学习的会话感知推荐模型
曾义夫, 牟其林, 周乐, 蓝天, 刘峤
2020, 57(3):  590-603.  doi:10.7544/issn1000-1239.2020.20190188
摘要 ( 560 )   HTML ( 15)   PDF (3670KB) ( 331 )  
相关文章 | 计量指标
根据历史记录预测用户的下一次点击(即基于会话的推荐)是推荐系统中一个重要的子任务.重点研究会话推荐中如何在不牺牲预测准确性的情况下缓解用户的兴趣漂移问题,提高用户满意度.基本思想是从全局统计的角度出发,建立一个用于表示物品先后点击顺序的物品依赖关系图,据此提出一种图表示学习算法,生成可以保留关联物品间复杂关联关系的物品向量表达,最后,基于长/短期记忆机制,将物品向量表达作为“固定”输入,从而构建一个可以同时捕捉用户长期兴趣和短期兴趣的会话感知推荐模型.不同于其他相关工作,首次提出将下一次点击预测模型建立在“固定”物品表达的基础上.在公开数据集上的实验结果表明:提出的推荐模型在预测准确性和推荐多样新颖性上的表现优于其他相关方法.
基于特征对抗对的视觉特征归因网络研究
张宪, 史沧红, 李孝杰
2020, 57(3):  604-615.  doi:10.7544/issn1000-1239.2020.20190256
摘要 ( 290 )   HTML ( 16)   PDF (4540KB) ( 175 )  
相关文章 | 计量指标
可视化图像关键特征区域是计算机视觉一个重要而需要深入研究的问题.图像关键特征区域可视化的技术已经在弱监督定位和理解数据隐藏特征的领域中得到广泛应用.近年来,基于神经网络分类器的特征定位显示已成为最新的技术,并且通常用于医学和自然图像数据集上.但存在特征定位显示不精确的缺陷.针对传统神经网络分类器在可视化图像关键特征区域标注方法上的局限性,提出了一种基于生成对抗对特征的关键特征区域可视化方法(即视觉特征归因方法).该方法通过构造关键特征区域对抗对,采用生成和鉴别对抗网络生成关键特征区域,可有效过滤冗余信息并实现精准定位,有效解决了疾病特征可视化问题.在该方法中,为了解决传统生成对抗网络难以达到负载均衡的缺陷,采用了Wasserstein距离解决协调其训练平衡的问题,同时使用梯度惩罚加速收敛过程.在人工合成数据集、肺部数据集和心脏数据集上的实验结果表明,提出的方法在视觉显示的定性和定量的问题中,均产生了理想的真实效果图,非常接近观察到的效果.
信息安全
敏感渐进不可区分的位置隐私保护
王斌, 张磊, 张国印
2020, 57(3):  616-630.  doi:10.7544/issn1000-1239.2020.20190086
摘要 ( 276 )   HTML ( 6)   PDF (5266KB) ( 128 )  
相关文章 | 计量指标
用户在连续查询的移动过程中,由于面向目标位置的移动特性,表现出一种敏感程度不断提升的渐进式变化.攻击者可利用这种敏感程度渐进识别用户目标,进而获得其隐私信息,对用户隐私安全产生威胁.针对这种情况,从防止攻击者获得用户敏感位置渐进这一目标出发,依据广义差分隐私的基本原理并结合Voronoi图划分的位置信息处理,提出了一种ε-敏感程度不可区分的隐私保护方法.该方法通过在当前位置区域中添加噪声数据来满足ε-敏感程度不可区分,并以此实现用户的敏感渐进不可区分.但是通过在欧氏空间和路网环境分别展开测试的结果显示,大量添加噪声实现的敏感渐进不可区分在服务质量方面存在一定影响,因此又提出一种基于用户位置偏移减少噪声添加数量的算法改进.最后,通过对ε-敏感程度不可区分的隐私保护模型的安全性分析以及2种不同隐私实现策略的实验验证,可得出所提出的算法及算法改进具有较好的实际部署价值,并且具有同类算法不具备的隐私保护能力,可有效地阻止攻击者利用用户连续移动过程中的敏感程度渐进变化分析获得用户隐私的攻击行为.
基于最大频繁子图挖掘的动态污点分析方法
郭方方, 王欣悦, 王慧强, 吕宏武, 胡义兵, 吴芳, 冯光升, 赵倩
2020, 57(3):  631-638.  doi:10.7544/issn1000-1239.2020.20180846
摘要 ( 244 )   HTML ( 3)   PDF (1067KB) ( 82 )  
相关文章 | 计量指标
目前,传统面向恶意代码识别的动态污点分析方法广泛存在行为依赖图数量巨大、匹配时间消耗长的问题.提出一种动态污点分析方法——基于最大频繁子图挖掘的动态污点分析方法.该方法从恶意代码家族行为依赖图挖掘出代表家族显著共性特征的最大频繁子图,被挖掘出的最大频繁子图即为某类恶意代码家族以及该家族所有变种之间最为突出的共有特征,使用挖掘出的最大频繁子图与被测行为依赖图进行比较匹配即可.既能够保证原有恶意代码特征无丢失又削减了行为依赖图数量,并在此基础上进一步提升了识别效率.经实验分析,提出的这种新的动态污点分析方法相比于传统方法,当最小支持度为0.045时,行为依赖图数量减少了82%,识别效率提高了81.7%,准确率达到了92.15%.
一种基于边缘计算的传感云低耦合方法
梁玉珠, 梅雅欣, 杨毅, 马樱, 贾维嘉, 王田
2020, 57(3):  639-648.  doi:10.7544/issn1000-1239.2020.20190588
摘要 ( 497 )   HTML ( 19)   PDF (2103KB) ( 200 )  
相关文章 | 计量指标
随着物联网和云计算的快速发展,衍生了一种新的网络结构——传感云.传感云是物联网和云计算结合的产物.物联网中的物理节点可以通过传感云平台虚拟成多个节点,为用户提供服务.然而,当底层物理传感器节点同时接收多个服务命令时,会出现一些服务冲突,即耦合问题.这种耦合问题可能导致服务的失败,并危及系统安全.为了解决这个问题,提出了一种基于边缘计算思想的扩展KM(Kuhn-Munkres)算法.边缘计算是一种新兴的计算模式,在物联网中得到越来越广泛的应用,特别是那些由于延迟等限制而无法有效利用云计算的应用.边缘计算作为云和物联网层的中间平台,可以提供调度方法.首先,边缘层对重复请求命令进行合并,减少向下传输的命令数量;其次,优先调用边缘层数据缓存队列里的数据;最后利用改进KM算法实现每一轮的最大匹配.理论分析和实验结果表明,提出的方法可以提高资源利用率,减小计算成本,接近最短的时间解决耦合问题.
系统结构
基于用户级融合I/O的Key-Value存储系统优化技术研究
安仲奇, 张云尧, 邢晶, 霍志刚
2020, 57(3):  649-659.  doi:10.7544/issn1000-1239.2020.20180799
摘要 ( 268 )   HTML ( 5)   PDF (2418KB) ( 249 )  
相关文章 | 计量指标
传统分布式键值存储系统大都基于操作系统提供的套接字与可移植操作系统接口构建,受限于接口语义及内核开销,难以发挥底层新型网络和存储硬件高吞吐与低延迟的性能优势.聚焦键值存储系统的数据通路,面向高速以太网与NVMe(non-volatile memory express)固态存储,于用户态整合网络栈与I/O栈,协同设计以优化吞吐性能与延迟稳定性.用户级融合I/O栈的控制平面由同一处理器核心于同一上下文中统一管理网卡与固态存储设备的硬件队列,消除了传统分离式设计所导致的多次进出内核态、多次上下文切换以及潜在的核间通信与数据迁移等的弊端,最大限度降低系统软件层面的管控开销.数据平面采用统一的内存池,借助用户级设备驱动,数据于上层键值系统与底层设备之间直接通过DMA传输,没有额外数据拷贝与操作系统干涉.针对大消息访问请求,通过将数据分片并交叠执行网络与存储DMA操作,进一步掩藏了访问延迟.实现了全用户态键值存储系统UKV,支持内存-外存2层存储以及广泛应用的Memcache接口.将UKV与由Twitter开源的Fatcache系统进行了测试对比.实验结果表明,涉及外存的SET请求的每秒查询吞吐量提高了14.97%~97.78%,GET操作的每秒查询吞吐量提高了14.60%~51.81%;涉及外存的SET操作的p95延迟降低了26.12%~40.90%,GET操作的p95延迟降低了15.10%~24.36%.
一种分布式持久性内存文件系统的一致性机制
陈波, 陆游游, 蔡涛, 陈游旻, 屠要峰, 舒继武
2020, 57(3):  660-667.  doi:10.7544/issn1000-1239.2020.20190074
摘要 ( 455 )   HTML ( 13)   PDF (1999KB) ( 440 )  
相关文章 | 计量指标
持久性内存(persistent memory, PM)和远程直接内存访问(remote direct memory access, RDMA)具有高带宽、低延迟的硬件性能,这为设计高性能的分布式存储系统提供了新的机遇.然而,它们这些新的特性为高效的数据一致性管理引出了诸多问题:一方面,持久性内存数据一致性依赖于CPU主动执行硬件指令刷写缓存实现,而这类指令开销极高,严重影响CPU处理性能;另一方面,RDMA在服务器端CPU不参与的情况下直接读写服务器端内存,因此服务器端CPU无法主动感知数据写入事件以执行数据刷写操作,一旦系统崩溃会造成数据不一致的问题.针对以上2个问题,提出一种分布式持久性内存文件系统的一致性机制(crash consistency mechanism, CCM):首先设计实现了基于操作日志的一致性保障策略,通过将每次操作的元信息记录至日志,并持久化,以保障系统的一致性状态;其次,设计了一种客户端对服务器端的远程写一致性策略,在完成数据传输的同时使服务器端CPU主动执行数据刷写;最后实现了一种服务器端的数据异步持久化,以提高系统的处理能力.测试结果表明,基于CCM的文件系统写吞吐可达到网络裸带宽的88%.相比于现有系统Octopus,CCM性能下降控制在1%以内.