软件学报杂志

发表咨询:400-808-1731

订阅咨询:400-808-1751

软件学报杂志 北大期刊 CSCD期刊 统计源期刊

Journal of Software

  • 11-2560/TP 国内刊号
  • 1000-9825 国际刊号
  • 2.86 影响因子
  • 1-3个月下单 审稿周期
软件学报是中国科学院软件研究所;中国计算机学会主办的一本学术期刊,主要刊载该领域内的原创性研究论文、综述和评论等。杂志于1990年创刊,目前已被上海图书馆馆藏、CSCD 中国科学引文数据库来源期刊(含扩展版)等知名数据库收录,是中国科学院主管的国家重点学术期刊之一。软件学报在学术界享有很高的声誉和影响力,该期刊发表的文章具有较高的学术水平和实践价值,为读者提供更多的实践案例和行业信息,得到了广大读者的广泛关注和引用。
栏目设置:理论计算机科学、系统软件与软件工程、模式识别与人工智能、数据库技术、计算机网络与信息安全、计算机体系结构

软件学报 2018年第08期杂志 文档列表

软件学报杂志数据驱动的软件智能化开发方法与技术专题
数据驱动的软件智能化开发方法与技术专题前言2177-2179

摘要:当今社会软件无所不在,追求高质量和高效率的软件开发是软件工程研究的核心目标.软件开发经历了从结构化方法、面向对象方法到网络服务化,逐步向基于互联网和开源模式构造的方法发展.软件开发工具与环境也是伴随着开发方法不断更替变化,从命令行开发工具到集成化开发环境,再到扩展开发环境、协同开发环境,正向智能化开发环境方向演进.

智能化的程序搜索与构造方法综述2180-2197

摘要:互联网、机器学习、人工智能等技术的迅速发展以及大量开源软件和开源社区的出现,给软件工程的发展带来了新的机遇和挑战.目前,在互联网上已经存在了数十亿行的各类程序代码,这些代码中存在着各种知识,尤其是众多已被广泛使用、高质量的软件代码,由此催生了利用大规模代码资源中蕴涵的众多知识进行智能化软件开发的新思路.它试图充分利用互联网中存在的代码资源、知识和群体智慧,以有效地提高软件开发的效率和质量,其核心技术是程序搜索与构造,具有非常重要的理论与应用价值.目前,该方向的研究工作主要集中在代码搜索、程序合成、代码推荐与补全、缺陷检测、代码风格改善、程序自动修复等方面.从以上几个方面对当前的主要研究工作进行综述,对具体的理论和技术途径进行梳理,并在最后总结了目前该领域研究过程中面-临的挑战,给出了建议的研究方向.

安卓应用用户界面交互模式抽取与检索2198-2209

摘要:安卓开发者需要通过不断地经验积累来提升其设计安卓界面及行为交互的能力.在数据驱动的软件开发中.代码推荐是其中一个关注热点.在此背景下,提出了一种安卓应用用户界面交互模式抽取与检索方法,提供面向安卓应用的界面相关代码查询与推荐能力,从而降低开发者在选择、试用、学习安卓应用所带来的人工戍本.以安卓活动(activity)为单元的界面交互模式代表了活动的界面构成及交互行为,该方法以此为分析目标,从一组开源的安卓应用项目中抽取出每一个活动的界面交互模式.在此基础上,支持用户通过检索的方式获取与其需求相关的活动设计细节.该方法被实现为一组工具链,为抽取与检索提供自动化支持.最后,通过两个案例对该方法的准确性和有效性进行验证.

基于StackOverflow数据的软件功能特征挖掘组织方法2210-2225

摘要:软件的功能描述文档是开发人员了解软件的重要基础.现有的软件项目并不都是具备全面描述软件功能的文档,但软件项目开发和应用过程中的各种交流记录蕴含了讨论其功能的大量信息.为此,提出了一种基于StackOverflow问答数据的软件功能特征挖掘组织方法.该方法提出以动宾短语形式描述软件功能特征0宅掘并组织蕴含在StackOverflow数据中的软件功能特征,自动生成一种以层次化方式展示的软件项目功能特征文档.在针对真实项目的实验中,该方法生成的软件功能文档可以覆盖官方文档中列举的97.6%的软件常用功能同时,该方法可以扩展从不同形式的项目交流记录中生成全面描述软件功能特征的文档.

融合结构与语义特征的代码注释决策支持方法2226-2242

摘要:代码注释是辅助编程人员理解源代码的有效手段之一.高质量的注释决策不仅能够覆盖软件系统中的核心代码片段,还能避免产生多余的代码注释.然而在实际开发中,编程人员往往缺乏统一的注释规范,大部分的注释决策都取决于个人经验以及领域知识.对于新手程序员来说,注释决策显然成为一项重要而艰巨的任务.为了减少编程人员投入过多的精力在注释决策上,从大量的代码注释实例中学习出一种通用的注释决策规范,并提出了Comment Adviser方法,以辅助编程人员在代码开发过程中做出恰当的注释决策.由于注释决策与代码本身的上下丈信息密切相关,因此,从当前代码行的上下文代码中提取代码结构特征以及代码语义特征作为支持注释决策的主要依据.然后,利用机器学习算法判定当前代码行是否为可能的注释点.在GitHub中的10个大型开源软件的数据集上评估了所提出的方法,实验结果以及用户调研表明,代码注释决策支持Comment Adviser方法的可行性和有效性.

一种基于关联分析与N-Gram的错误参数检测方法2243-2257

摘要:为了检测软件系统中存在错误参数的函数调用,提出了一种基于关联分析和N-Gram语言模型的静态检测方法(ANiaD).基于海量开源代码,构建了关联分析模型以挖掘参数间存在的强关联规则.针对参数间存在强关联规则的函数调用构建N-Gram语言模型.基于训练过的N-Gram模型,计算给定函数调用语句正确的概率.低概率的函数调用被报告为异常函数调用.基于10个开源Java项目对该方法进行实验验证.实验结果表叽该方法检测的查准率约43.40%,显著高于现有的基于相似度的检测方法(查准率25%).

面向开源生态的软件数据挖掘技术研究综述2258-2271

摘要:全球开源软件生态中孕育的大众化软件生产模式正在快速形成一种新型的软件生产力,在软件开发和应用各个环节发挥了巨大作用.大众化软件生产的数据规模目趋庞大、协同范围不断扩展、管理模式高度精简,这些全球化特征使其在软件复用、协同开发、知识管理等环节面临诸多挑战,迫切需要新的理论指导和工具支持.首先,界定了大众化软件生产活动的分布范围、基本过程和数据形态;然后,从软件复用、协同开发、知识管理这3个核心环节对开源社区数据挖掘技术的研究工作进行了归类与分析;最后,总结了该领域研究工作存在的问题和未来的发展趋势.

基于贡献分配的开源软件核心开发者评估2272-2282

摘要:开源软件中如何真实评估所有开发者的贡献度并有效区分核心开发者和开发者,是一个重要的研究问题.通过设计开发文件的贡献度分配算法,以9个Apache项目为基础,分析了开发者对项目的贡献度,并以此有效地区分核心开发者和开发者.实验结果通过Apache官方主页公布的开发者地位名单进行考证,同时在真实名单的相似度上与传统评估方案进行了比较,验证了算法的实用性和有效性.最后,通过支持向量机建立分类模型,结合不同影响开发者地位的关键因素,提升了开发者分类的精确度.

代码文件贡献组成模式的分析2283-2293

摘要:软件开发过程中,同一代码文件经常由多名开发者共同开发和维护,各个开发者向文件贡献了不同的代码量,使之形成特有的贡献组成.代码文件的贡献组成是否合理,直接影响开发者的任务分配,进而影响软件质量和开发效率.对于不同类型的代码文件,如何刻画并确定其合理的贡献组成模式,成为一个亟待解决的问题.协同开发支撑工具的成熟,使得开发人员的活动可被有效地记录,因此,其所产生的海量数据为数据驱动的智能化软件开发打下了基础.首先,基于代码所有权,从贡献组成的集中度、复杂度和稳定性这3个维度出发,提出刻画贡献组成的3个量度:其次。以OpenStack的核心项目Nova为研究案例,在其版本控制数据上建立贡献组成的量度,总结了12种通用文件类型,归纳出3种贡献组成模式:最后,结合邮件以及面对面访谈的方式,验证了量度的有效性以及贡献组成模式的合理性.并从贡献组成的角度对软件开发过程给出了一些指导性建议.

面向软件安全性缺陷的开发者推荐方法2294-2305

摘要:软件开发与维护过程中常会出现一些安全性缺陷,这些安全性缺陷会给软件和用户带来很大的风险.安全性缺陷在修复过程中,其修复级别和质量要求往往高于一般性的缺陷,因此,推荐出富有安全性经验的开发者及时、有效地修复这些安全性缺陷非常重要.现有的开发者推荐技术在推荐开发者时仅仅考虑了开发者的历史开发内容彳艮少考虑到开发人员的安全性缺陷修复经验和修复质量等因素,所以这些技术不适用于安全性缺陷的开发者推荐.针对安全性缺陷的修复,提出了一种有效的软件开发者推荐方法SecDR.SecDR在推荐开发者时不仅考虑了开发者的历史开发内容(与安全性相关),还分析了开发者的修复质量和历史修复缺陷的复杂度等因素.此外,SecDR还实现了开发者的多经验级别推荐:推荐初级开发者修复简单的安全性缺陷、高级开发者修复复杂的安全性缺陷.在3个开源项目(Mozilla,Libgdx,ElasticSearch)上分别对SecDR推荐开发者进行有效性验证.对比实验表明,SecDR针对安全性缺陷推荐开发者相比于其他方法(如DR_PSF)的推荐精度平均高出19%-42%。另外,实验对比了SecDR与实际开发人员的分配情况,结果显示,SecDR可以更好地规避不合理的软件开发者的推荐.

一种多特征融合的软件开发者推荐2306-2321

摘要:软件开发者能力评价和协作关系推荐,是大数据环境下软件智能化开发领域的一个研究热点.通过分析互联网开发者社区和企业内部开发环境,设计出基于模糊综合评价的开发者能力模型.随后,通过挖掘开发者与任务的动态交互行为、静态匹配度以及开发者能力这3个不同维度的特征并结合矩阵分解技术,提出一种能力与行为感知的多特征融合协同过滤开发者推荐方法,最终解决开发者推荐面临的评价矩阵稀疏性和冷启动问题,提升个性化精准推荐效率.从系统层面给出适合大数据环境的多特征融合开发者推荐原型系统实践并对现有开源技术框架的优化改进,实验过程分别基于互联网问答社区StackOverflow和企业内部GitLab环境进行了实验分析.最后,对未来研究可能的问题及思路进行了展望.

基于循环神经网络的缺陷报告分派方法2322-2335

摘要:随着开源软件项目规模的不断增大,人工为缺陷报告分派合适的开发人员(缺陷分派)变得越来越困难.而不合适的缺陷分派往往会严重影响缺陷修复的效率,为此,迫切需要一种缺陷分派辅助技术帮助项目管理者更好地完成缺陷分派任务.当前,大部分研究工作都基于缺陷报告文本以及相关元数据信息分析来刻画开发者的特征,忽略了对开发者活跃度的考虑,使得对具有相似特征的开发者进行缺陷报告分派预测时表现较差.提出一个基于循环神经网络的深度学习模型DeepTriage,一方面,利用双向循环网络加池化方法提取缺陷报告的文本特征;另一方面,利用单向循环网络提取特定时刻的开发者活跃度特征,并融合两者,利用已修复的缺陷报告进行监督学习.在Eclipse等4个不同的开源项目数据集上的实验结果表明,DeepTriage较之同类工作在缺陷分派预测准确率上有显著提升.

自然语言数据驱动的智能化软件安全评估方法2336-2349

摘要:软件安全性是衡量软件是否能够抵御恶意攻击的重要性质.在当前互联网环境下,黑客攻击无处不在,因而估计软件中可能含有的漏洞数量与类型,即对软件进行安全评估,变得十分必要.在实际中,用户不仅需要对未或者最新的软件实施安全性评估,对已软件也会有一定的安全评估需求,例如,当用户需要从市场上互为竞争的多款软件中做出选择,就会希望能够花费较低成本、较为客观地对这些软件进行第三方的评估与比较.提出了一种由自然语言数据驱动的智能化软件安全评估方法来满足这一要求.该方法基于待评估软件现有用户的使用经验信息来评估软件的安全性.它首先自适应地爬取用户在软件使用过程中对软件的自然语言评价数据,并利用深度学习方法与机器学习评估模型的双重训练来获得软件的安全性评估指标.由于所提出的自适应爬虫能够在反馈中调整特征词,并结合搜索引擎来获得异构数据,因而可通过采集广泛的自然语言数据来进行安全评估.另外,使用一对多的机器翻译训练能够有效地解决将自然语言数据转换为语义编码的问题,使得用于安全评估的机器学习模型可以建立在自然语言的语义特征基础上.在国际通用漏洞披露数据库(CVE)和美国国家漏洞数据库(NVD)上对该方法进行了实验,结果表明,该方法在评估软件漏洞数量、漏洞类型以及漏洞严重程度等指标上十分有效.

基于限定自然语言需求模板的AADL模型生成方法2350-2370

摘要:随着嵌入式软件系统在汽车、核工业、航空、航天等安全关键领域的广泛应用,其失效将会导致财产的损失、环境的破坏甚至人员的伤亡,使得保障软件安全性成为系统开发过程中的重要部分.传统的安全性分析方法主要应用在软件的需求分析阶段和设计阶段,然而需求与设计之间的鸿沟却一直是软件工程领域的一大难题.正是由于这一鸿沟的存在,使得需求分析阶段的安全性分析结果难以完整而详尽地反映在软件设计中.其根本原因是:当前的软件需求主要通过自然语言描述,存在二义性与模糊性,且难以进行自动化处理.为了解决这一问题,面向构件化嵌入式软件,首先提出了一种半结构化的限定自然语言需求模板用于需求规约,能够有效地降低自然语言需求的二义性与模糊性;然后,为了降低自动化处理的复杂性,采用需求抽象语法图作为中间模型,实现基于限定自然语言需求模板规约的软件需求与AADL模型之间的转换,并在此过程中自动记录两者之间的可追踪关系;最后,基于AADL开源工具OSATE对所提出方法进行了插件实现,并通过航天器导航、制导与控制系统(guidance,navigation and control,简称GNC)进行了实例性验证.

软件学报杂志系统软件与软件工程
基于多面体模型的编译“黑魔法”2371-2396

摘要:基于多面体模型的编译技术发展近30年,已经在多个开源编译器和商业编译器中得到了应用和实现与传统的编译优化模型相比,多面体模型具备应用范围广、表示能力强、优化空间大等优点,代表了程序自动并行化领域众多方向最先进的水平,成为国际上多个编译研发团队的研究热点.同时,多面体模型抽象程度高、实现难度大、面临问题多的特征,阻碍了基于该模型的编译技术在发展相对滞后地区的普及,形成国内专门从事该问题研究的团队屈指可数的现象.为了打开多面体模型的“黑盒子”,首先描述了多面体模型的原理,揭示了基于多面体模型的编译流程,并指出了该领域的主要研究内容:接下来,从程序并行性、数据局部性和其他领域上的扩展应用这3个方面对该领域上的研究进展进行了介绍;最后,对该研究领域当前面临的挑战和潜在的研究方向进行了总结.研究目的是通过回顾和总结基于多面体模型的编译技术研究进展,为国内编译研发团队提供重要参考,以期推动我国在该领域上的发展.

软件学报杂志模式识别与人工智能
基于语义分析的情感计算技术研究进展2397-2426

摘要:随着机器学习和大数据技术的应用发展,基于语义分析的情感计算与分析技术在研究人类的感知、注意力、记忆、决策、社会交流等诸多方面起着重大作用,它不仅影响到了人工智能技术的发展,还影响到了人/机交互的方式,并受到学术界以及企业界的广泛关注.在针对情感定义以及相关90多种情感模型分析的基础上,归纳并提出了目前情感分析领域中存在的6项关键性问题与挑战,其中主要包括:情感的来源与本质特征的表示问题;多模态的情感计算问题;外部因素对情感演化过程的影响度量问题;情感的个性化度量问题;情感群体化特征与传播动力学机制问题以及细微情感的表达、算法改进与优化等问题同时,针对其中的关键问题与技术挑战进行了理论探讨、技术分析、实际应用以及当前工作进展与趋势分析,从而为深入研究和解决基于语义分析条件下的情感计算提供了新的研究线索与方向.

基于双向LSTM网络的不确定和否定作用范围识别2427-2447

摘要:不确定和否定信息抽取,是自然语言处理领域中的重要任务和研究热点.针对不确定和否定作用范围识别任务,提出一种基于两层双向LSTM神经网络的作用范围识别方法.首先,对于从线索词到达词语的句法路径,使用第1层双向LSTM神经网络从中学习到有用特征;接着,将词法特征与句法路径特征一起组成当前词语的特征表示;最后,将作用范围识别问题看作序列标注任务,利用第2层双向LSTM神经网络界定当前线索词的作用范围.实验结果表明,所提出的模型优于其他神经网络模型,并在BioScope生物医学语料上取得了良好性能.其中,在Abstracts子语料上的不确定和否定作用范围识别精确率分别达到86.20%和80.28%.

软件学报杂志数据库技术
稀疏可交换图建模研究综述2448-2469

摘要:可交换性假设是采用贝叶斯模型对网络数据建模的重要前提,基于Aldous—Hoover表示理论的可交换图不能生成稀疏网络.实证结果表明,真实世界中的很多复杂网络都具有节点度幂律分布的稀疏特征,基于Kallenberg表示理论的可交换图能够同时满足可交换性和稀疏性.以Caron—Fox模型和Graphex模型为例,对稀疏可交换图建模的相关概念、理论和方法的研究发展进行了综述.首先讨论了随机图、贝叶斯非参数混合模型、可交换表示理论、Poisson点过程、离散非参数先验等理论的研究历程;然后介绍了Caron—Fox模型的表示;进而总结了进行稀疏可交换图的随机模拟所涉及的截断采样和边缘化采样方法;接下来综述了稀疏可交换图模型的后验推理技术:最后对稀疏可交换图建模的最新讲展和研究前景做了介绍。