2021, 32(4):887-888. DOI: 10.13328/j.cnki.jos.006230
摘要:软件是推动新一代信息技术发展的驱动力.随着互联网、云计算、人工智能等技术的快速发展,软件与物联网、区块链、自动驾驶等众多领域的融合进一步加强,正引领并促进这些领域向数字化、智能化发展,为社会、经济的加速演进和创新发展带来了新的契机.因此,面向领域的软件技术不仅是软件领域,也是众多其他领域国内外学者的关注焦点和研究重点.与传统的软件系统相比,面向领域的软件系统(简称领域软件)带来了研究与应用上的新挑战.面对领域软件的特点和需求,如何有效地构造领域软件,实现领域应用的软件定义与智能化,如何通过验证、分析、测试等多种手段严格保障系统控制行为的正确性、实时性、协同性等重要质量特性,是一个重大挑战. 本专题采取自由投稿的方式,共收到37篇投稿,其中36篇通过了形式审查.特约编辑邀请了30位领域专家参与审稿,每篇稿件至少邀请2位专家进行评审,每篇稿件都经过两轮审稿.共计16篇稿件通过第1轮评审,并在CCF软件工程专业委员会、系统软件专业委员会、形式化方法专业委员会年会2020 CCF中国软件大会(Chinasoft)上进行了报告.经过第2轮终审,最终有10篇论文入选本专题.其中, 论文“基于反例确认的CPS不确定性模型校准”研究了CPS中不确定性模型的准确性问题,提出了一种基于反例确认的校准方法以提高不确定性模型的准确度并精化CPS系统模型的验证结果. 论文“安全关键异构软件混合建模及代码生成方法”提出了一种AADL和SDL的混合建模方法,支持以自底向上的方式对安全关键软件系统进行混合建模,并给出了面向多核处理器平台的代码自动生成方法. 论文“基于环境建模的物联网系统TAP规则生成方法”提出了一种基于环境建模的TAP规则生成方法,自动地基于环境模型从服务需求中推导系统行为,检测系统行为的完整性与一致性,并最后转换为TAP规则. 论文“区块链赋能的高效物联网数据激励共享方案”提出了一个高效的区块链物联网数据激励共享框架,利用分片技术构建能够并行处理数据共享交易的异步共识区,并在云/边缘服务器和分片异步共识区上部署高效的共识机制,从而提高数据共享交易的处理效率. 论文“时空轨迹数据驱动的自动驾驶场景元建模方法”提出一种面向自动驾驶领域的时空轨迹数据元建模方法以实现数据的统一、处理与重用,并基于自动驾驶安全场景建模语言ADSML讨论了如何使用ADSML实现场景实例化. 论文“基于深度学习的混合模糊测试方法”提出了一个基于深度学习将符号执行与模糊测试相结合的混合测试方法,并实现了相应的混合测试工具SmartFuSE. 论文“一种结构信息增强的代码修改自动转换方法”基于深度学习提出了一种结构信息增强的代码修改自动转换方法,增强了模型对代码的结构信息和依赖信息的捕获能力,从而提升了代码修改自动转换的准确性. 论文“融合代码与文档的软件功能特征挖掘方法”提出了一种融合代码与文档的软件功能特征挖掘方法.通过迭代挖掘软件源代码和以Stack Overflow讨论帖为代表的软件文档,自动提取开源软件的功能特征描述,并构造层次化的软件功能特征视图. 论文“基于偶然正确性概率的错误定位技术”通过对基于代码覆盖的错误定位技术中可疑度的计算方法进行修正,提出了一种错误定位技术,以消除偶然正确性现象对错误定位技术的影响. 论文“面向神经机器翻译系统的多粒度蜕变测试”提出了一种基于蜕变测试的多粒度测试框架,用于在没有参考译文的情况下评估神经机器翻译系统的翻译质量及其翻译鲁棒性. 本专题面向领域软件的研究人员和工程人员,内容涵盖领域软件的需求分析、设计与建模、开发与构造、测试与验证等领域,反映了我国学者在相关领域的高水平研究成果.感谢《软件学报》编委会、CCF软件工程专委会、系统软件专委会、形式化方法专委会对专题工作的指导和帮助,感谢专题全体评审专家及时、耐心、细致的评审工作,感谢踊跃投稿的所有作者.希望本专题能够对领域软件的科研工作有所促进.
2021, 32(4):889-903. DOI: 10.13328/j.cnki.jos.006222
摘要:信息物理系统被广泛应用于众多关键领域,例如工业控制与智能制造.作为部署在这些关键领域中的系统,其系统质量尤为重要.然而,由于信息物理系统自身的复杂性以及系统中存在的不确定性(例如系统通过传感器感知环境时的偏差),信息物理系统的质量保障面临巨大的挑战.验证是保障系统质量的有效途径之一,基于系统模型与规约,它可以证明系统是否满足要求的性质.现有一些信息物理系统的验证工作也取得了显著进展,例如模型检验技术就被已有工作用于验证系统在不确定性影响下的行为是否满足性质规约,并在性质违反的情况下给出具体反例.这些验证工作的一个重要输入就是不确定性模型,它描述了系统中不确定性的具体情况.而实际中要对系统中不确定性精确建模却并非易事,因此验证中使用的不确定性模型很可能与实际不完全相符,这将导致验证结果不准确并与现实偏离.针对这一问题,提出了一种基于反例确认的不确定性模型校准方法,进一步精化验证结果以提高其准确度.首先通过确认反例在系统的执行中能否被触发来判断验证使用的不确定性模型是否精确.对于不精确的模型再利用遗传算法进行校准,并根据反例确认的结果来构造遗传算法的适应度函数以指导搜索,最后结合假设检验来帮助决定是否接受校准后的结果.代表案例的实验结果表明了所提出的不确定性模型校准方法的有效性.
宗喆,杨志斌,袁胜浩,周勇,Jean-Paul BODELEIX,Mamoun FILALI
2021, 32(4):904-933. DOI: 10.13328/j.cnki.jos.006223
摘要:随着系统复杂性的急剧增加,未来安全关键软件越来越多地采用异构构件组合架构,各种构件可能使用不同的计算模型或实现语言,使得整个软件系统呈现异构性.因此,设计此类系统需要使用复杂的建模方法.AADL (architecture analysis and design language)是一种安全关键系统体系结构多范式建模语言,丰富的可表达方式和可扩展性使其成为安全关键异构软件设计的重要选择.提出一种AADL和SDL(specification and description language)混合建模方法,支持以自底向上的方式对安全关键软件系统进行混合建模,并给出面向多核处理器平台的代码自动生成方法.首先,通过扩展AADL属性集,以支持使用SDL建模语言表达软件构件的功能行为.其次,以Ada作为目标语言,给出AADL-SDL混合模型的多任务代码生成方法.最后,实现了原型工具支持AADL和SDL混合建模及多任务Ada代码生成,并基于导航、制导与控制系统案例对所提方法的有效性进行分析.
2021, 32(4):934-952. DOI: 10.13328/j.cnki.jos.006224
摘要:用户需求是物联网智能服务的根本驱动力,如IFTTT等很多物联网框架允许用户使用简单的触发-命令编程(TAP)规则进行编程,但它们描述的是设备调度程序,并不是用户服务需求.一些物联网系统提出采用面向目标的需求方法,支持服务目标的分解,但很难保证物联网不同服务间的一致性和服务部署的完整性.为了支持正确的“用户编程”并保证用户服务需求的一致性与完整性,提出了基于环境建模的TAP规则自动生成方法,在用户提供的服务需求的基础上,根据环境模型自动推导出所需的系统行为,以检测系统行为的一致性和完整性,并最终自动生成TAP规则,实现从用户服务需求到物联网设备调度的自动生成.构建了物联网应用场景的环境本体以建模环境,并定义了基于环境本体的服务需求的描述方法.另外,针对方法的准确性、效率、性能以及构建环境本体的时间开销,在智能家居场景上进行了评估.结果表明,所提方法的准确性、效率和性能均超过可用阈值,且在需求达到一定数量后,构建环境本体花费的时间可忽略不计.
2021, 32(4):953-972. DOI: 10.13328/j.cnki.jos.006229
摘要:近年来,随着大量设备不断地加入物联网中,数据共享作为物联网市场的主要驱动因素成为了研究热点.然而,当前的物联网数据共享存在着出于安全顾虑和缺乏激励机制等原因导致用户不愿意参与共享数据的问题.在此背景下,区块链技术为解决用户的信任问题和提供安全的数据存储被引入到物联网数据共享中.然而,在构建基于区块链的安全分布式数据共享系统的探索过程中,如何突破区块链固有的性能瓶颈仍然是一个关键挑战.为此,研究了基于区块链的高效物联网数据激励共享方案.该方案首先提出了一个高效的区块链物联网数据激励共享框架,称为ShareBC.ShareBC利用分片技术构建能够并行处理数据共享交易的异步共识区,并在云/边缘服务器上和分片异步共识区上部署高效的共识机制,从而提高数据共享交易的处理效率.然后,为激励物联网用户参与数据共享,提出了一种基于智能合约实现的层次数据拍卖模型的共享激励机制.该机制解决了物联网数据共享中涉及的多层数据分配有效性问题,能够最大限度地提高整体社会福利.最后,实验结果表明了该方案的经济效益、激励兼容性和实时性以及可扩展性,且具有较低的计算成本和良好的实用性.
2021, 32(4):973-987. DOI: 10.13328/j.cnki.jos.006226
摘要:时空轨迹数据驱动的汽车自动驾驶场景建模,是当前汽车自动驾驶领域中驾驶场景建模、仿真所面临的关键问题,对于提高系统的安全性具有重要的研究意义.近年来,随着时空轨迹数据建模及应用研究的快速发展,时空轨迹数据应用于特定领域建模的研究引起人们的广泛关注.但是,由于时空轨迹数据所反映的现实世界的多元性和复杂性以及时空轨迹数据的海量、异构、动态等特点,基于时空轨迹数据驱动的安全攸关场景建模的研究仍面临着挑战,包括:统一的时空轨迹数据元模型、基于时空轨迹数据的元建模方法、基于数据分析技术的时空轨迹数据处理、数据质量评价等.针对汽车自动驾驶领域的场景建模需求,提出一种基于MOF元建模体系构建时空轨迹数据的元建模方法,根据时空轨迹数据的特征及自动驾驶的领域知识,构建了面向汽车自动驾驶的时空轨迹数据元模型;基于此,提出基于时空轨迹数据元建模技术体系的自动驾驶安全场景建模方法,并使用场景建模语言ADSML实例化安全场景,构建安全场景库,旨在为此类系统的安全关键场景建模提供一种可行的方案.结合变道超车场景的案例,展示了时空轨迹数据驱动的自动驾驶安全场景元建模方法的可用性,为场景模型的构建、仿真、分析奠定了基础.
2021, 32(4):988-1005. DOI: 10.13328/j.cnki.jos.006225
摘要:随着软件技术的快速发展,面向领域的软件系统在广泛使用的同时带来了研究与应用上的新挑战.由于领域应用对安全性、可靠性有着很高的要求,而符号执行和模糊测试等技术在保障软件系统的安全性、可靠性方面已经发展了数十年,许多研究和被发现的缺陷表明了它们的有效性.但是,由于两者的优劣各有不同,将这两者相结合仍是近期热门研究的话题.目前的结合方法在于两者相互协助,例如,模糊测试不可达的区域交给符号执行求解.但是,这些方法只能在模糊测试(或符号执行)运行时判定是否应该借助符号执行(或模糊测试),无法同时利用这两者的优势,从而导致性能不足.基于此,提出基于深度学习,将基于符号执行的测试与模糊测试相结合的混合测试方法.该方法旨在测试开始之前就判断适合模糊测试(或符号执行)的路径集,从而制导模糊测试(或符号执行)到达适合它们的区域.同时,还提出混合机制实现两者之间的交互,从而进一步提升整体的覆盖率.基于 LAVA-M中程序的实验结果表明,所提方法相对于单独符号执行或模糊测试,能够提升 20%+的分支覆盖率,增加约 1~13倍的路径数目,多检测出 929个缺陷.
2021, 32(4):1006-1022. DOI: 10.13328/j.cnki.jos.006227
摘要:在开发过程中,开发人员在进行缺陷修复、版本更新时,常常需要修改多处相似的代码.如何进行自动代码修改已成为软件工程领域的热点研究问题.一种行之有效的方式是:给定一组代码修改示例,通过抽取其中的代码修改模式,辅助相似代码进行自动转换.在现有工作中,基于深度学习的方法取得了一定进展,但在捕获代码间的长程信息依赖关系时,效果不佳.为此,提出了一种结构信息增强的代码修改自动转换方法ExpTrans.ExpTrans在解析代码时采用图的形式来表示修改示例,显式地指出了代码中变量之间的依赖关系,同时结合图卷积网络和Transformer架构,增强了模型对代码的结构信息和依赖信息的捕获能力,从而提升了代码修改自动转换的准确性.实验结果表明,对比同类型基于深度学习的方法,ExpTrans在准确率上提升了11.8%~30.8%;对比基于人工规则的方法,ExpTrans在修改实例的数量和准确率上均有显著提升.
2021, 32(4):1023-1038. DOI: 10.13328/j.cnki.jos.006228
摘要:在软件复用过程中,简洁、清楚的软件功能自然语言描述是帮助复用者快速了解待复用软件项目/代码库的前提和基础.但当前开源软件往往缺乏高质量的软件功能说明文档,使得这一过程变得更加复杂和困难.为此,提出了一种融合代码与文档的软件功能特征挖掘方法.该方法以动宾短语的形式描述软件功能特征,通过迭代挖掘软件源代码和以Stack Overflow讨论帖为代表的软件文档,自动提取开源软件的功能特征描述,并构造了层次化的软件功能特征视图.在针对多个开源软件项目的实验中,该方法可覆盖官方文档中列举的95.38%的软件功能.挖掘结果中语句和功能特征的准确率分别达到了93.78%和92.57%.对比现有工作TaskNav和APITasks,该方法在平均准确率上分别提升了28.78%和11.56%.
2021, 32(4):1039-1050. DOI: 10.13328/j.cnki.jos.006220
摘要:基于代码覆盖的错误定位技术是一种常用的错误定位方法,被用来识别与故障相关的程序元素.然而,有研究工作表明,基于代码覆盖的错误定位技术的有效性受到了偶然正确性现象的影响.偶然正确性现象是指程序中包含的错误被执行,但没有产生错误结果的情况,它在实际场景中是非常普遍的.根据以往的研究工作,提出了一种估算发生偶然正确性现象概率的方法.该方法从程序运行时内存中值的定义-使用关系出发,将各语句的执行对程序输出的影响进行了估计.基于偶然正确性概率,对基于代码覆盖的错误定位技术中可疑度的计算方法进行了修正,以消除偶然正确性现象对错误定位技术的影响.在SIR(software-artifact infrastructure repository)中提供的西门子测试套件上进行了实验,这也是偶然正确性相关工作中常被使用的目标程序.实验结果表明,相对于基于代码覆盖信息的错误定位技术,提出的方法提高或至少维持了原有的安全性,并较好地提高了错误定位的精确度.
2021, 32(4):1051-1066. DOI: 10.13328/j.cnki.jos.006221
摘要:机器翻译是利用计算机将一种自然语言转换成另一种自然语言的任务,是人工智能领域研究的热点问题之一.近年来,随着深度学习的发展,基于序列到序列结构的神经机器翻译模型在多种语言对的翻译任务上都取得了超过统计机器翻译模型的效果,并被广泛应用于商用翻译系统中.虽然商用翻译系统的实际应用效果直观表明了神经机器翻译模型性能有很大的提升,但如何系统地评估其翻译质量仍是一项具有挑战性的工作.一方面,若基于参考译文评估翻译效果,其高质量参考译文的获取成本非常高;另一方面,与统计机器翻译模型相比,神经机器翻译模型存在更显著的鲁棒性问题,然而还没有探讨神经机器翻译模型鲁棒性的相关研究.面对上述挑战,提出了一种基于蜕变测试的多粒度测试框架,用于在没有参考译文的情况下评估神经机器翻译系统的翻译质量及其翻译鲁棒性.该测试框架首先在句子粒度、短语粒度和单词粒度上分别对源语句进行替换,然后将源语句和替换后语句的翻译结果进行基于编辑距离和成分结构分析树的相似度计算,最后根据相似度判断翻译结果是否满足蜕变关系.分别在教育、微博、新闻、口语和字幕这5个领域的中英文数据集上对6个主流商用神经机器翻译系统使用不同的蜕变测试框架进行了对比实验.实验结果表明,所提方法在与基于参考译文方法的皮尔逊相关系数和斯皮尔曼相关系数上分别比同类型方法高80%和20%,说明提出的无参考译文的测试评估方法与基于参考译文的评估方法的正相关性更高,验证了其在评估准确性上显著优于同类型其他方法.
2021, 32(4):1067-1081. DOI: 10.13328/j.cnki.jos.006167
摘要:近年来,多模态学习逐步成为机器学习、数据挖掘领域的研究热点之一,并成功地应用于诸多现实场景中,如跨媒介搜索、多语言处理、辅助信息点击率预估等.传统多模态学习方法通常利用模态间的一致性或互补性设计相应的损失函数或正则化项进行联合训练,进而提升单模态及集成的性能.而在开放环境下,受数据缺失及噪声等因素的影响,多模态数据呈现不均衡性.具体表现为单模态信息不充分或缺失,从而导致“模态表示强弱不一致”“模态对齐关联不一致”两大挑战,而针对不均衡多模态数据直接利用传统的多模态方法甚至会退化单模态和集成的性能.针对这类问题,可靠多模态学习被提出并进行了广泛研究,系统地总结和分析了目前国内外学者针对可靠多模态学习取得的进展,并对未来研究可能面临的挑战进行展望.
2021, 32(4):1082-1115. DOI: 10.13328/j.cnki.jos.006169
摘要:语言模型旨在对语言的内隐知识进行表示,作为自然语言处理的基本问题,一直广受关注.基于深度学习的语言模型是目前自然语言处理领域的研究热点,通过预训练-微调技术展现了内在强大的表示能力,并能够大幅提升下游任务性能.围绕语言模型基本原理和不同应用方向,以神经概率语言模型与预训练语言模型作为深度学习与自然语言处理结合的切入点,从语言模型的基本概念和理论出发,介绍了神经概率与预训练模型的应用情况和当前面临的挑战,对现有神经概率、预训练语言模型及方法进行了对比和分析.同时又从新型训练任务和改进网络结构两方面对预训练语言模型训练方法进行了详细阐述,并对目前预训练模型在规模压缩、知识融合、多模态和跨语言等研究方向进行了概述和评价.最后总结了语言模型在当前自然语言处理应用中的瓶颈,对未来可能的研究重点做出展望.
2021, 32(4):1116-1128. DOI: 10.13328/j.cnki.jos.006156
摘要:生成高质量的样本一直是生成式对抗网络(generative adversarial networks,简称GANs)领域的主要挑战之一.鉴于此,利用条件熵构建一种距离,并将此直接惩罚于GANs生成器目标函数,在尽可能保持熵不变的条件下,迫使生成分布逼近目标分布,从而大幅度地提高网络生成样本的质量.除此之外,还通过优化GANs的网络结构以及改变两个网络的初始化策略,以进一步提高GANs的训练效率.在多个数据集上的实验结果显示,所提出的算法显著提高了GANs生成样本的质量;尤其是在CIFAR10、STL10和CelebA数据集上,将最佳的FID值从20.70、16.15、4.65分别降低到14.02、12.83、3.22.
2021, 32(4):1129-1150. DOI: 10.13328/j.cnki.jos.006168
摘要:索引是数据库系统中用于提升数据存取性能的主要技术之一.在大数据时代,随着数据量的不断增长,传统索引(如B+树)的问题日益突出:(1)空间代价过高.例如,B+树索引需要借助O(n)规模的额外空间来索引原始的数据,这对于大数据环境而言是难以容忍的.(2)每次查询需要多次的间接搜索.例如,B+树中的每次查询都需要访问从树根到叶节点路径上的所有节点,这使得B+树的查找性能受限于数据规模.自2018年以来,人工智能与数据库领域的结合催生了“学习索引”这一新的研究方向.学习索引利用机器学习技术学习数据分布和查询负载特征,并用基于数据分布拟合函数的直接式查找代替传统的间接式索引查找,从而降低了索引的空间代价并提升了查询性能.首先对学习索引技术的现有工作进行了系统梳理和分类;然后,介绍了各种学习索引技术的研究动机与关键技术,对比分析了各种索引结构的优劣;最后,对学习索引的未来研究方向进行了展望.
2021, 32(4):1151-1164. DOI: 10.13328/j.cnki.jos.006116
摘要:由于Shor算法可以在多项式时间内解决大整数分解以及离散对数问题,使得基于这些问题设计的经典的密码体制不再安全.目前涌现出许多后量子密码体制的研究,如基于格、基于编码、基于多变量和基于椭圆曲线同源的密码系统.相比于其他后量子密码体制,基于椭圆曲线同源的密码系统具有密钥尺寸短的优势,然而其实现效率不占优势.以两类基于超奇异椭圆曲线同源的密钥交换协议为基准,根据经典的椭圆曲线标量乘和双线性对的优化技巧,并结合椭圆曲线同源自身的一些特殊性质,分析优化这两类协议的可能性.与此同时,分类回顾了目前椭圆曲线同源的有效计算方面的已有进展,提出了该方向可进一步开展的研究工作.
2021, 32(4):1165-1185. DOI: 10.13328/j.cnki.jos.006165
摘要:为了解决量子计算对公钥密码安全的威胁,后量子密码成为密码领域的前沿焦点研究问题.后量子密码通过数学理论保证了算法的安全性,但在具体实现和应用中易受侧信道攻击,这严重威胁到后量子密码的安全性.基于美国NIST第2轮候选算法和中国CACR公钥密码竞赛第2轮的候选算法,针对基于格、基于编码、基于哈希、基于多变量等多种后量子密码算法进行分类调研,分析其抗侧信道攻击的安全性现状和现有防护策略.为了深入分析后量子密码的侧信道攻击方法,按照算法核心算子和攻击类型进行分类,总结了针对各类后量子密码常用的攻击手段、攻击点及攻击评价指标.进一步地,根据攻击类型和攻击点,梳理了现有防护策略及相应的开销代价.最后,根据攻击方法、防护手段和防护代价提出了一些安全建议,并且还分析了未来潜在的侧信道攻击手段与防御方案.
2021, 32(4):1186-1200. DOI: 10.13328/j.cnki.jos.005970
摘要:在节点高速移动的Ad Hoc网络环境中,广播风暴对网络性能的影响尤为重要,且网络拓扑结构的频繁变化极易导致路由中断.传统的AODV路由协议在路由发现阶段直接使用广播转发RREQ(路由请求分组)机制,容易导致广播风暴降低网络性能;同时,协议选择跳数最少的路径作为路由,没有考虑到节点的快速移动导致路由频繁失效,因此无法适应节点高速移动的网络环境.针对上面存在的问题,提出一种对AODV进行改进的协议.该协议在路由发起过程中,基于局部邻居节点数量计算动态转发概率;选择路由时,利用跨层思想,结合网络节点移动速度提出链路权值,依据链路权值选择路由路径.NS2仿真结果表明:该改进协议提高了数据包的投递率,缩短了端到端的传输时延,能够更好地适应节点高速移动的网络环境.
2021, 32(4):1201-1227. DOI: 10.13328/j.cnki.jos.006166
摘要:目标检测一直以来都是计算机视觉领域的研究热点之一,其任务是返回给定图像中的单个或多个特定目标的类别与矩形包围框坐标.随着神经网络研究的飞速进展,R-CNN检测器的诞生标志着目标检测正式进入深度学习时代,速度和精度相较于传统算法均有了极大的提升.但是,目标检测的尺度问题对于深度学习算法而言也始终是一个难题,即检测器对于尺度极大或极小目标的检测精度会显著下降,因此,近年来有不少学者在研究如何才能更好地实现多尺度目标检测.虽然已有一系列的综述文章从算法流程、网络结构、训练方式和数据集等方面对基于深度学习的目标检测算法进行了总结与分析,但对多尺度目标检测的归纳和整理却鲜有人涉足.因此,首先对基于深度学习的目标检测的两个主要算法流派的奠基过程进行了回顾,包括以R-CNN系列为代表的两阶段算法和以YOLO、SSD为代表的一阶段算法;然后,以多尺度目标检测的实现为核心,重点诠释了图像金字塔、构建网络内的特征金字塔等典型策略;最后,对多尺度目标检测的现状进行总结,并针对未来的研究方向进行展望.