1974年1月创刊(月刊)
主管/主办:重庆西南信息有限公司
ISSN 1002-137X
CN 50-1075/TP
CODEN JKIEBK
编辑中心
    智能软件工程 栏目所有文章列表
    (按年度、期号倒序)
        一年内发表的文章 |  两年内 |  三年内 |  全部
    Please wait a minute...
    选择: 显示/隐藏图片
    1. 环境感知自适应软件的运行时输入验证技术综述
    王慧妍, 徐经纬, 许畅
    计算机科学    2020, 47 (6): 1-7.   DOI: 10.11896/jsjkx.200400081
    摘要632)      PDF(pc) (1523KB)(1633)    收藏
    随着软件智能化与大数据时代的到来,环境感知自适应软件作为智能软件中的代表趋于流行。环境感知自适应软件有两大特征:1)“环境感知”,即能够通过传感器等设备感知周围环境并采集环境数据;2)“自适应”,即能够基于采集的环境数据自适应地进行软件决策。这类软件的主要表现特征为在运行时刻能够动态感知周边环境的变化并进行交互,从而做出决策。此外,随着大数据时代的到来,越来越多的人工智能模型被使用并被期望能够帮助环境感知自适应软件更好地实现自适应机制,使其能够更加智能地通过与环境的感知交互来做决策。一方面,由于运行时环境复杂,该类软件的运行时环境情况往往难以估计和预料,使得其在实际部署后运行在复杂环境中的可靠性很难通过事先测试得到有效保障,这也成为了这类软件在运行时得到有效质量保障所面临的一大挑战。而另一方面,此类软件对人工智能模型的应用与人工智能模型基于统计的核心特征,使得其在运行时刻选择应用人工智能模型来进行辅助决策也存在一定的局限性,这更加剧了保障此类软件在运行时刻质量的难度。因此,如何能够在此类软件的实际部署运行时更好地保障其运行质量与可靠性成为了当今智能软件工程的一个广泛研究的问题。与此同时,输入验证被认为是保障运行时刻软件质量的一大常用手段,它通过对软件输入进行有效识别,来避免不合适的输入在运行时刻被输入软件而影响软件行为。基于此,文中对环境感知自适应软件的运行时输入验证技术进行总结与综述,基于此类软件的两大特征,从“环境感知”方面的环境数据感知模块的输入验证及“自适应”方面决策模块的输入验证两个方面,分别对已有技术进行调研与综述。同时,文中还探讨了对环境感知自适应软件的运行时输入验证技术问题中的主要性能挑战,为实现更加高效的输入验证做框架性总结。最后,还对人工智能技术广泛应用于环境感知自适应软件的现状带来的对此类软件额外决策的挑战做了讨论与分析,已有工作对此挑战的探索也让此类软件进一步成熟,并为其未来集成决策逻辑演化从而达到软件自成长的理想提供支撑。通过对相关技术的综述,试图为相关领域的科研工作者勾画一个对环境感知自适应软件在运行时刻较清晰的质量保障框架,为未来的相关研究提供可能的方向与角度。
    参考文献 | 相关文章 | 多维度评价
    2. 在可信编译器设计中实践CompCert编译器的语法分析器形式化验证过程
    李凌, 李璜华, 王生原
    计算机科学    2020, 47 (6): 8-15.   DOI: 10.11896/jsjkx.191000173
    摘要605)      PDF(pc) (1516KB)(1661)    收藏
    Jourdan等在其2012年发表的论文“Validating LR(1) Parsers”中提出了一种形式化验证语法分析器的方法,并将其成功地应用于CompCert编译器(2.3以上版本)的语法分析器验证中。借助这种方法,文中完成了L2C 项目中的Lustre*语言语法分析器的形式化验证,实现了开源L2C编译器前端语法分析器的两个选项之一。首先对这一语法分析器的实现进行了论述,其中包括有参考价值的技术细节;随后分析了该语法分析器的运行性能及正确性;最后对如何将这一方法推广至更一般的应用场景进行了总结。
    参考文献 | 相关文章 | 多维度评价
    3. 软件升级问题的多目标优化方法
    赵松辉, 任志磊, 江贺
    计算机科学    2020, 47 (6): 16-23.   DOI: 10.11896/jsjkx.200400027
    摘要685)      PDF(pc) (1670KB)(1205)    收藏
    近年来,开源软件包管理成为软件产品重用的一种普遍方式,尤其是在Linux发行版操作系统领域。其中,软件升级问题是软件包管理工具必须要解决的关键挑战之一。软件升级问题旨在按照某种优化准则找出能够满足用户升级请求的最合适的升级方案。优化准则由几个不同方向的优化目标组成,因此软件升级问题本质上是一个多目标优化问题。现有的解决软件升级问题的方法均是将多个优化目标聚合成为单个目标的形式再进行处理。这些方法都可能没有恰当地考虑不同的优化目标之间的关系,因此会存在潜在的风险。针对这种风险,文中提出了一个多目标演化框架——SATMOEA(Combining Constraints Solving and Multi-objective Evolutionary Algorithms),将软件升级问题构建为可满足问题+多目标优化问题的形式,并集成了约束求解和多目标优化算法,来对软件升级问题进行求解。基于MISC竞赛提供的升级问题标准实例集进行实验,结果表明对于有着大量约束条件的复杂问题实例,多目标演化框架在一次运行中即可有效地计算出各个优化目标均达到帕累托最优的解决方案,相比现有的升级问题求解器提供的升级方案更加多样,并且在一些优化目标上更具优势,可以满足用户在不同场景下的需求。
    参考文献 | 相关文章 | 多维度评价
    4. 一种解决嵌入式软件并发缺陷的建模方法
    崔凯, 赵国亮, 周宽久, 李明楚
    计算机科学    2020, 47 (6): 24-31.   DOI: 10.11896/jsjkx.191100187
    摘要645)      PDF(pc) (4113KB)(1177)    收藏
    嵌入式并发软件的中断嵌套和线程交织等程序的随机性和不确定性(Randomicity and Nondeterminism)会引起数据竞争(Data Race)和原子性违背(Atomicity Violations)等并发缺陷问题,并且这些问题很难被修复和重新构建。针对嵌入式软件中的数据竞争和原子性违背这类并发缺陷问题,文中提出了瘦中断处理(Thin Interrupt Service Routine,Thin ISR)方式。首先,利用状态迁移矩阵(State Transition Matrix,STM)进行建模,把中断处理程序中与访问共享变量相关的程序段移植到主程序中,即中断处理程序只负责将外界中断请求数据存到缓冲区中,中断的具体处理由主程序完成;然后,利用构建的STM模型生成对应的C代码,这样可以有效地避免原子性违背和数据竞争等并发缺陷;最后,利用排队方法对中断的到达时间与离开时间进行仿真。实验结果验证了本方法在解决数据竞争和原子性违背等并发缺陷问题方面的可行性与有效性。
    参考文献 | 相关文章 | 多维度评价
    5. 知识问答社区及其激励机制的建模与仿真分析
    许子熙, 毛新军, 杨亦, 卢遥
    计算机科学    2020, 47 (6): 32-37.   DOI: 10.11896/jsjkx.191000088
    摘要527)      PDF(pc) (2079KB)(1170)    收藏
    知识问答社区已经成为当前互联网知识共享的重要载体,它提供一系列的激励机制(如声望、徽章、特权等)来鼓励用户参与和贡献,从而提高社区的活跃度。如何对这些激励机制的有效性进行分析,并指导其改进,是目前知识问答社区研究与实践面临的一项重要挑战。针对软件开发知识问答社区,提出一种基于多Agent系统的社区及其激励机制的建模和仿真分析方法,将拥有大量用户的社区视为由自主Agent构成的多Agent系统,社区用户的贡献和交互视为Agent在激励机制驱动下的协同行为。将激励机制抽象描述为Agent的信念,基于自我决定理论来解释Agent期望的生成,并最终产生社区中Agent用户的行为。通过采集Stack Overflow社区2016-2018年间的数据,基于NetLogo仿真平台对社区的发展演变进行了仿真分析,结果表明文中提出的模型及机理可有效地解释和揭示知识问答社区在激励机制作用下的演变过程。
    参考文献 | 相关文章 | 多维度评价
    6. 基于多目标优化的测试用例优先级排序方法
    夏春艳, 王兴亚, 张岩
    计算机科学    2020, 47 (6): 38-43.   DOI: 10.11896/jsjkx.191100113
    摘要713)      PDF(pc) (2041KB)(1776)    收藏
    回归测试是软件测试中使用最频繁、成本最昂贵的测试方法。测试用例优先级排序是一种能够有效降低回归测试成本的方法,其目的是通过优先执行高级别的测试用例来达到提升软件故障检测的能力。文中提出了一种基于多目标优化的测试用例优先级排序方法,该方法在遗传算法的个体评价机制中融入了选择函数,设计了合理的编码方式以及合适的选择、交叉和变异策略,以故障检测率、语句覆盖率和有效执行时间为优化目标,采用非支配排序遗传算法对测试用例优先级排序。基于4个基准程序和4个工业程序的实验结果表明:与其他方法相比,所提方法能够提高软件测试的有效性。
    参考文献 | 相关文章 | 多维度评价
    7. 基于用户反馈的APP软件缺陷识别
    段文静, 姜瑛
    计算机科学    2020, 47 (6): 44-50.   DOI: 10.11896/jsjkx.191100133
    摘要323)      PDF(pc) (1440KB)(1145)    收藏
    当前,APP软件已被广泛应用,其质量越来越受到关注。高质量的软件的缺陷应尽可能少,然而软件测试并不能发现所有的缺陷,部分缺陷到用户使用阶段才被发现,因此通过分析用户反馈的信息有助于发现软件缺陷。文中提出了基于用户反馈的APP软件缺陷识别方法,通过定义APP软件缺陷抽取规则挖掘用户反馈中的软件缺陷,并在挖掘软件缺陷的过程中动态更新抽取规则,最后对抽取出的APP软件缺陷进行分类及严重程度分析。实验表明,所提方法是有效的,提取含有软件缺陷的APP软件用户评论的准确率达85.19%,缺陷分类准确率达83.23%。
    参考文献 | 相关文章 | 多维度评价
    8. 面向群体协作开发的开源软件峭壁分析
    何鹏, 喻绿君
    计算机科学    2020, 47 (6): 51-58.   DOI: 10.11896/jsjkx.190300140
    摘要490)      PDF(pc) (1932KB)(894)    收藏
    开源软件项目因门槛低、自由度高,在开发过程中存在进度缓慢、效率低下和项目质量偏低等问题;同时,软件峭壁(Software Cliff Wall)作为一种判定项目鲁棒性的依据,表现为软件开发过程中在短时间内完成远超过常规增量开发的一种代码贡献行为,是软件演化过程中可持续发展的一种潜在威胁。为了深入研究开源项目的开发过程,更准确地刻画软件演化,从而提高软件开发效率,分析软件峭壁的成因是一种行之有效的方法。实验以GitHub上9个时间跨度至少有5年的开源软件项目为研究对象,分别以月份和季度为周期,基于150 000多个commits上开发者的关注与评论信息构建开发者合作网络(Deve-loper Collaboration Networks,DCN),将代码行数超过1万行的单次commit视为软件峭壁,并从网络规模、网络结构、网络质量3个方面,利用节点数、连边数、节点更新率、模块度、平均路径长度、平均度、节点入度指数、节点出度均值、多样性这9个度量指标来分析软件开发过程中DCN与软件峭壁的关系。研究结果表明:1)当开发团队规模偏小,且成员更新幅度较大时,容易形成软件峭壁;2)保持开发者之间良好的“小世界”特性,有助于避免峭壁的产生;3)以季度为周期来分析软件开发过程中DCN与软件峭壁的关系更为合适,且开发团队成员的组织来源多样化也会在一定程度上促进软件峭壁的产生。
    参考文献 | 相关文章 | 多维度评价
    9. 代码标识符归一化研究现状及发展趋势
    张静宣, 江贺
    计算机科学    2020, 47 (3): 1-4.   DOI: 10.11896/jsjkx.200200009
    摘要765)      PDF(pc) (1397KB)(1714)    收藏
    作为代码分析和理解的重要内容,代码标识符及其归一化是国际学术界的前沿热点研究领域。标识符归一化旨在将标识符解析成自然语言词汇,以提高代码的可理解性和可维护性。标识符归一化主要包括两个极具挑战性的步骤,分别为组合词拆分和缩写词扩充。文中详细介绍了代码标识符归一化的研究现状,并进行了深入分析,总结出现有工作的困难和不足。同时,为了解决标识符归一化面临的困难和挑战,对该领域可行的解决思路和未来的发展趋势进行了归纳和展望,希望引导更多的研究者投入到这个重要的研究领域。
    参考文献 | 相关文章 | 多维度评价
    10. 代码相似性检测方法与工具综述
    张丹,罗平
    计算机科学    2020, 47 (3): 5-10.   DOI: 10.11896/jsjkx.190500148
    摘要989)      PDF(pc) (1428KB)(6689)    收藏
    在代码开源的潮流下,代码克隆在提高代码质量和降低开发成本的同时,一定程度地影响了软件系统的稳定性、健壮性与可维护性。代码相似性检测在计算机与信息安全发展方面具有重要的意义。为应对代码克隆带来的各种危害,目前学术界和工业界提出了很多代码相似性检测的方法,这些方法按照源代码信息处理程度可分为基于文本、词法、语法、语义和度量值5类;并开发了相应的检测工具,这些工具实现了很好的检测效果,但在大数据时代背景下也面临着数据规模不断扩大带来的一系列挑战。文中综述了代码相似性检测的方法,对5类检测方法做了详细比较;结合传统方法与机器学习技术,归类了不同检测方法对应的检测工具;按照不同评价标准评估了检测工具的检测效果,总结了每种检测方法的首选检测工具,并对未来代码相似性检测的研究方向做出了展望。
    参考文献 | 相关文章 | 多维度评价
    11. 智能化信息物理系统中非确定性的分类研究
    杨文华,许畅,叶海波,周宇,黄志球
    计算机科学    2020, 47 (3): 11-18.   DOI: 10.11896/jsjkx.191100052
    摘要717)      PDF(pc) (1853KB)(1383)    收藏
    信息物理系统呈现出日趋智能化的特征,而非确定性又是系统中普遍且固有的特性。例如,系统通过传感器感知环境时,会不可避免地存在误差。非确定性若未被妥当处理,往往会影响系统的正确运行,并带来一系列的问题。因此,对信息物理系统中的非确定性进行处理是至关重要的,也是促进信息物理系统进一步智能化的关键。对非确定性进行处理的前提是需要对其有充分的理解和认识,然而现有工作对信息物理系统中非确定性的研究尚处于探索阶段。针对这一问题,研究了信息物理系统中的非确定性分类。具体而言,根据信息物理系统中被广泛认可的5C技术架构对非确定性进行了分类,详细介绍了该架构每一层次上可能存在的非确定性,并结合典型的信息物理系统应用进行了举例说明;同时,总结了当前的相关研究工作,并展望了未来信息物理系统在应对非确定性方面的智能化研究方向。
    参考文献 | 相关文章 | 多维度评价
    12. 设计模式组合操作优化研究
    纪程宇,朱雪峰
    计算机科学    2020, 47 (3): 19-24.   DOI: 10.11896/jsjkx.190100046
    摘要401)      PDF(pc) (1622KB)(867)    收藏
    作为软件设计经验的总结,恰当使用设计模式能够有效提高软件系统的可复用性,确保最终所得软件产品的质量。但在实际应用中,人们很少使用单一的设计模式,通常需要根据实际的应用场景进行多个模式的组合,这可能会导致所得结果不确定,严重影响软件产品的质量。虽然现有的模式组合形式化方法能够有效地表达模式组合后的结果,但是组合方法逻辑复杂并包含大量的冗余操作,设计人员很难熟练使用。针对上述模式组合过程中存在的问题,文中对多模式之间的组合关系进行了深入探讨,从设计模式的形式化描述出发,结合Z语言的特点对现有的模式组合形式化方法进行了深入研究,并对现有的模式组合操作符进行了初步优化;在现有操作符集合的基础上提出了基于模式的约束、叠加和扩展操作符,通过操作符定义了模式组合的精确语义,并采用代数推理过程验证了优化后的方法可以有效地替代现有的模式组合形式化方法,且能够解决现有模式组合形式化方法中操作符冗余、数量过多导致的效率低等问题。最后,通过模式组合案例的研究,验证了所提方法的有效性。
    参考文献 | 相关文章 | 多维度评价
    13. 基于特征提取的开源社区Fork摘要自动生成方法
    张超,毛新军,卢遥
    计算机科学    2020, 47 (3): 25-33.   DOI: 10.11896/jsjkx.191000087
    摘要823)      PDF(pc) (2504KB)(1066)    收藏
    当前,基于P/R的分布式协同开发已经成为开源社区中的主导软件开发方式。开发者通过Fork复制软件项目的版本库,创建自身分支,并在新建分支中进行独立开发。由于P/R协同开发模型具有开放性、透明性和并行化等特征,开发人员在Fork项目时难以掌握项目的Fork概况,不知道其他开发人员是否已通过Fork开展相同或类似的开发工作,从而容易产生重复性的贡献和冗余性开发。针对这个问题,提出一种Fork摘要的自动生成方法以帮助项目管理者加强项目管控,避免冗余贡献,增强合作交流。该方法首先爬取开源社区中具有Feature和Bug标签信息的Issue数据,采用随机森林方法训练一个分类器模型,以对Fork特征进行分类;随后收集Fork分支的软件开发活动数据,采用TextRank算法生成Fork详细信息以解释Fork的主要目的;最后设计了一组组合规则及相应的算法来整合Fork的类别、特征和其他信息,以形成完整的Fork摘要。为了检验所提方法在指导分布式协同开发方面的有效性,在Github上进行了30组人工测试和60组实际案例测试。结果表明,所提方法生成的Fork摘要的准确率达到67.2%,实验中76%的项目管理者认为Fork摘要有助于更好地管理项目,加强沟通与合作。
    参考文献 | 相关文章 | 多维度评价
    14. 基于语义相似度的API使用模式推荐
    张云帆,周宇,黄志球
    计算机科学    2020, 47 (3): 34-40.   DOI: 10.11896/jsjkx.190300053
    摘要789)      PDF(pc) (1878KB)(1462)    收藏
    在软件开发过程中,复用应用程序编程接口(Application Programming Interface,API)可以提高软件开发效率,但是使用不熟悉的API是一项耗时且困难的挑战。已有的研究往往将API作为用户输入的查询,通过在语料库中搜索该API的使用模式来进行推荐,但这并不符合开发人员的查询习惯。文中提出了一种基于自然语言语义相似度的API使用模式推荐方法(Semantic Similazing Based API Recommendation,SSAPIR)。该方法使用层次聚类算法来提取API使用模式,然后通过计算查询信息和API使用模式来描述信息之间的语意相似度,向开发人员推荐相关度高且被广泛使用的API使用模式。为了验证SSAPIR的有效性,文中从GitHub的高质量Java项目中提取9个流行的第三方API库的API使用模式以及API使用模式的描述信息,并根据这9个流行的第三方API库的自然语言查询进行API使用模式推荐。通过计算推荐结果的Hit@K准确率来验证SSAPIR的有效性,实验结果表明,层次聚类能有效提高推荐准确率,且SSAPIR在Hit@10平均准确率上达到了85.02%,优于现有研究工作,能够很好地完成API使用模式推荐任务,为开发人员输入的自然语言查询提供精准的API使用模式。
    参考文献 | 相关文章 | 多维度评价
    15. 基于用户评论的代码质量识别与分析
    徐海燕,姜瑛
    计算机科学    2020, 47 (3): 41-47.   DOI: 10.11896/jsjkx.191100132
    摘要477)      PDF(pc) (1729KB)(1446)    收藏
    随着IT社区和代码托管平台的发展,针对代码的用户评论数量急剧增加。用户在使用代码后给出的评论中包含丰富的静态和动态代码质量信息,对其进行提取与分析将有助于开发者了解用户关注的代码质量信息,以有针对性地提升代码质量,还有助于用户选择满足要求的代码。为此,文中提出了包含静态特性和动态特性的代码质量模型,以及识别并分析用户评论中代码质量信息的方法。首先,根据评价对象和评价句型规则识别出具有代码质量的用户评论;然后,应用评价对象和评价观点抽取代码质量属性表现;最后,通过分析代码质量属性表现和情感倾向给出代码静态和动态质量的相关结果。实验结果表明,所提方法能够有效地分析用户评论中的代码质量信息。
    参考文献 | 相关文章 | 多维度评价
    16. 融合自注意力机制和多路金字塔卷积的软件需求聚类算法
    康雁,崔国荣,李浩,杨其越,李晋源,王沛尧
    计算机科学    2020, 47 (3): 48-53.   DOI: 10.11896/jsjkx.190700146
    摘要435)      PDF(pc) (1892KB)(1014)    收藏
    随着软件数量的急剧增长以及种类的日益多样化,挖掘软件需求文本特征并对软件需求特征聚类,成为了软件工程领域的一大挑战。软件需求文本的聚类为软件开发过程提供了可靠的保障,同时降低了需求分析阶段的潜在风险和负面影响。然而,软件需求文本存在离散度高、噪声大和数据稀疏等特点,目前有关聚类的工作局限于单一类型的文本,鲜有考虑软件需求的功能语义。文中鉴于需求文本的特点和传统型聚类方法的局限性,提出了融合自注意力机制和多路金字塔卷积的软件需求聚类算法(SA-MPCN&SOM)。该方法通过自注意力机制捕获全局特征,然后基于多路金字塔卷积从不同窗口的通路深度挖掘需求文本特征,使得感知的文本片段逐倍增加,最终融合多路文本特征,利用SOM完成聚类。在软件需求数据上的实验表明,所提方法能较好地挖掘需求特征并对其聚类,性能上优于其他特征提取方式和聚类算法。
    参考文献 | 相关文章 | 多维度评价
    17. 基于强化学习的Web服务众测任务分派方法
    唐文君,张佳丽,陈荣,郭世凯
    计算机科学    2020, 47 (3): 54-60.   DOI: 10.11896/jsjkx.191100085
    摘要673)      PDF(pc) (1783KB)(1210)    收藏
    如何将众包测试任务分派给合适的众测工人,以较低的成本获得更好的测试结果,是一个重要问题。文中将CWS众测任务分派问题建模为一个基于马尔可夫决策过程的问题,且使用Deep Q Network进行学习和实时在线测试任务分派。该基于强化学习的方法被命名为WTA-C。此外,文中根据众测工人执行任务的历史时间,通过统计条件概率计算测试工人在任务期限内完成任务的概率,将其作为工人信誉值来反映工人质量,并在每次分派完成后对工人信誉值进行更新。实验结果显示,WTA-C在控制测试任务的“质量-成本”权衡和保证工人可靠度方面优于其他基于启发式策略的实时分派方法,并在分派效果上高于各启发式策略18%以上,从而证明了其可以更好地适应CWS的结构和众测环境的特点。
    参考文献 | 相关文章 | 多维度评价
    首页 | 前页| 后页 | 尾页 第1页 共1页 共17条记录