1974年1月创刊(月刊)
主管/主办:重庆西南信息有限公司
ISSN 1002-137X
CN 50-1075/TP
CODEN JKIEBK
编辑中心
    计算机软件* 栏目所有文章列表
    (按年度、期号倒序)
        一年内发表的文章 |  两年内 |  三年内 |  全部
    Please wait a minute...
    选择: 显示/隐藏图片
    1. 二进制代码相似性检测技术综述
    方磊, 武泽慧, 魏强
    计算机科学    2021, 48 (5): 1-8.   DOI: 10.11896/jsjkx.200400085
    摘要810)      PDF(pc) (1459KB)(3706)    收藏
    代码相似性检测常用于代码预测、知识产权保护和漏洞搜索等领域,可分为源代码相似性检测和二进制代码相似性检测。软件的源代码通常难以获得,因此针对二进制代码的相似性检测技术能够适用的场景更加广泛,学术界也先后提出了多种检测技术,文中对近年来该领域的研究进行了综述。首先总结代码相似性检测的基本流程和需要解决的难题(如跨编译器、跨编译器优化配置、跨指令架构检测);然后根据关注的代码信息的不同,将当前的二进制代码相似性检测技术分为4类,即基于文本的、基于属性度量的、基于程序逻辑的和基于语义的检测技术,并列举了部分代表性方法和工具(如Karta,discovRE,Ge-nius,Gemini,SAFE等);最后根据发展脉络和最新研究成果,对该领域的发展方向进行了分析和论述。
    参考文献 | 相关文章 | 多维度评价
    2. 反向调试技术研究综述
    徐建波, 舒辉, 康绯
    计算机科学    2021, 48 (5): 9-15.   DOI: 10.11896/jsjkx.200600152
    摘要527)      PDF(pc) (1838KB)(1190)    收藏
    在软件的开发测试部署过程中,调试工作耗费了开发人员非常多的精力和时间,有时一个很难被发现的错误会导致多次重启调试。反向调试是软件调试的一种技术,无需重启即可向后查看运行的指令及状态,这能够大大提高软件调试的速度,降低软件开发的难度,有效修复程序运行时发生的错误。该技术的核心问题是运行状态的恢复,目前针对该问题的解决方法主要有状态保存和状态重构。文中主要从反向调试的原理、学术研究、产品实现、技术应用等方面梳理其发展情况,对该技术进行分析研究,总结了基于时间和基于指令的状态保存反向调试技术以及两种反向执行重构状态的方法,并提出了有关记录重放程序执行、定位分析软件错误、反向数据流恢复这3方面的应用,可为反向调试技术的研究应用提供一定的参考。
    参考文献 | 相关文章 | 多维度评价
    3. 一种面向形式化表格需求模型的测试用例生成方法
    汪文轩, 胡军, 胡建成, 康介祥, 王辉, 高忠杰
    计算机科学    2021, 48 (5): 16-24.   DOI: 10.11896/jsjkx.201000048
    摘要502)      PDF(pc) (1897KB)(1042)    收藏
    现代安全关键性系统的软件规模和复杂性的快速增长给这类安全关键性软件系统的开发带来了很多挑战。传统文本文档的需求描述方法无法保证此类系统的开发进度和系统可靠性要求。为此文中提出了一种兼具可读性和可自动分析的形式化表格需求建模方法。文中介绍了一种针对这种表格模型测试用例的自动生成方法,工作包括对该形式化需求表格模型展开语义分析,建立需求模型的控制树结构,得到其测试等价类;为了减少不必要的测试,定义了不同安全级别的软件需求模型的测试覆盖标准,并针对不同覆盖率准则分别给出基于控制树结构的测试路径约束选择方法;对于每条路径约束测试等价类,提出了基于域错误的测试用例选择方法,能够自动生成所需的检测域错误的测试用例集。最后,通过一个需求模型实例展示了所提方法的有效性。
    参考文献 | 相关文章 | 多维度评价
    4. SymFuzz:一种复杂路径条件下的漏洞检测技术
    李明磊, 黄晖, 陆余良, 朱凯龙
    计算机科学    2021, 48 (5): 25-31.   DOI: 10.11896/jsjkx.200600128
    摘要614)      PDF(pc) (2058KB)(1260)    收藏
    当前漏洞检测技术可以实现对小规模程序的快速检测,但对大型或路径条件复杂的程序进行检测时其效率低下。为实现复杂路径条件下的漏洞快速检测,文中提出了一种复杂路径条件下的漏洞检测技术SymFuzz。SymFuzz将导向式模糊测试技术与选择符号执行技术相结合,通过导向式模糊测试技术对程序路径进行过滤,利用选择符号执行技术对可能触发漏洞的路径进行求解。该技术首先通过静态分析获取程序漏洞信息;然后使用导向式模糊测试技术,快速生成可以覆盖漏洞函数的测试用例;最后对漏洞函数内可以触发漏洞的路径进行符号执行,生成触发程序漏洞的测试用例。文中基于AFL与S2E等开源项目实现了SymFuzz的原型系统。实验结果表明,SymFuzz与现有的模糊测试技术相比,在复杂路径条件下的漏洞检测效果提高显著。
    参考文献 | 相关文章 | 多维度评价
    5. 安全关键软件术语推荐和需求分类方法
    杨志斌, 杨永强, 袁胜浩, 周勇, 薛垒, 程高辉
    计算机科学    2021, 48 (5): 32-44.   DOI: 10.11896/jsjkx.210100105
    摘要413)      PDF(pc) (3149KB)(1456)    收藏
    安全关键软件需求中的相关知识大多需要手工提取,既费时又费力。近年来,人工智能技术逐渐被应用于安全关键软件设计与开发过程中,以减少工程师的手工劳动,缩短软件开发的生命周期。文中提出了一种安全关键软件术语推荐和需求分类方法,为安全关键软件需求规约提供了基础。首先,基于词性规则和依存句法规则对候选术语进行提取,通过术语相似度计算和聚类方法对候选术语进行聚类,将聚类结果推荐给工程师;其次,基于特征提取方法和分类方法将安全关键软件需求自动分为功能、安全性、可靠性等需求;最后,在AADL(Architecture Analysis and Design Language)开源建模环境OSATE中实现了原型工具TRRC4SCSTool,并基于工业界案例需求、安全分析与认证标准等构建实验数据集进行了实验验证,证明了所提方法的有效性。
    参考文献 | 相关文章 | 多维度评价
    6. 数据驱动的开源贡献度量化评估与持续优化方法
    范家宽, 王皓月, 赵生宇, 周添一, 王伟
    计算机科学    2021, 48 (5): 45-50.   DOI: 10.11896/jsjkx.201000107
    摘要328)      PDF(pc) (1723KB)(1250)    收藏
    在当今数字化时代,开源技术、开源软件和开源社区日益重要,而通过量化分析方法研究开源领域的问题也已经成为一个重要的趋势。开发者是开源项目中的核心,其贡献度的量化以及量化后的贡献度提升策略,是开源项目能够健康发展的关键。文中提出了一种数据驱动的开源贡献度量化评估与持续优化方法,并通过一个实际的工具框架Rosstor(Robotic Open Source Software Mentor)进行了实现。该框架包含两个主要部分:1)贡献度评估模型,采取了熵权法,可以动态客观地评估开发者的贡献度;2)贡献度持续优化模型,采取了深度强化学习方法,最大化了开发者的贡献度。文中选取了GitHub上若干著名的开源项目的贡献者数据,通过大量且充分的实验验证了Rosstor不仅能够使所有项目上开发者的贡献度得到大幅度提升,而且还具有一定的抗干扰性,充分证明了所提方法和框架的有效性。Rosstor框架为当下广泛开展的开源项目和开源社区的可持续健康发展提供了方法和工具方面的支持。
    参考文献 | 相关文章 | 多维度评价
    7. 一种AltaRica 3.0模型中类的平展化方法
    祁健, 胡军, 谷青范, 荣灏, 展万里, 董彦宏
    计算机科学    2021, 48 (5): 51-59.   DOI: 10.11896/jsjkx.200700184
    摘要360)      PDF(pc) (2982KB)(567)    收藏
    AltaRica是一类面向复杂安全关键系统的建模语言,卫士转换系统(Guarded Transition System,GTS)是最新的AltaRica 3.0的执行语义模型。AltaRica 3.0层次结构语法模型中类的平展化是将AltaRica 3.0语法模型转换为等价的平展化GTS语义模型过程中的一个重要步骤。文中提出了一种AltaRica 3.0模型中类的平展化优化方法。首先,设计专用的数据结构来存储AltaRica 3.0模型中类的语义结构,并对原有的ANTLR(Another Tool for Language Recognition)元语言描述的AltaRica 3.0模型颗粒度进行重新精化和定义;其次基于ANTLR生成相应的词法和语法分析器,并自动构造输入模型的语法树,通过对语法树的遍历,取得细粒度的类的关键信息并进行存储;然后设计了专用的算法,高效地实现了类的平展化过程;最后通过实例系统的分析,验证了所提方法的正确性和有效性。
    参考文献 | 相关文章 | 多维度评价
    8. 面向恶意软件检测模型的黑盒对抗攻击方法
    陈晋音, 邹健飞, 袁俊坤, 叶林辉
    计算机科学    2021, 48 (5): 60-67.   DOI: 10.11896/jsjkx.200300127
    摘要382)      PDF(pc) (2755KB)(1225)    收藏
    深度学习方法已被广泛应用于恶意软件检测中并取得了较好的预测精度,但同时深度神经网络容易受到对输入数据添加细微扰动的对抗攻击,导致模型输出错误的预测结果,从而使得恶意软件检测失效。针对基于深度学习的恶意软件检测方法的安全性,提出了一种面向恶意软件检测模型的黑盒对抗攻击方法。首先在恶意软件检测模型内部结构参数完全未知的前提下,通过生成对抗网络模型来生成恶意软件样本;然后使生成的对抗样本被识别成预先设定的目标类型以实现目标攻击,从而躲避恶意软件检测;最后,在Kaggle竞赛的恶意软件数据集上展开实验,验证了所提黑盒攻击方法的有效性。进一步得到,生成的对抗样本也可对其他恶意软件检测方法攻击成功,这验证了其具有较强的攻击迁移性。
    参考文献 | 相关文章 | 多维度评价
    9. 程序调试中的树形结构演变可视化模型
    苏庆, 黎智洲, 刘添添, 吴伟民, 黄剑锋, 李小妹
    计算机科学    2021, 48 (5): 68-74.   DOI: 10.11896/jsjkx.200100133
    摘要288)      PDF(pc) (3900KB)(862)    收藏
    树形结构作为一种非线性数据结构,在程序执行过程中的演变过程较为抽象,尤其是在对其进行加工型操作时,容易发生内存泄漏。针对编程初学者难以掌握树形结构的逻辑演变过程,以及在程序中发生内存泄漏错误时调试较为困难的问题,文中提出了一种对程序调试过程中树形结构的演变过程进行可视化呈现的处理模型TEVM(Tree Evaluation Visualization Model)。针对单个可视化程序在调试步骤前和调试步骤后的两个树形结构,设计了一种将树形结构转换为线性表示的结构对比算法,得出了它们的包括泄漏树在内的结构差异;同时设计了一种树形结构布局方法,并计算它们的布局差异。根据结构差异和布局差异生成可视化演变序列,调用绘图引擎对该序列进行解析和执行,从而完成对树形结构及其演变过程的动态、平滑和直观的可视化呈现,帮助编程初学者快速理解树形结构相关程序的执行过程,提升调试效率。将TEVM模型集成于一个面向编程实训教学的集成开发环境原型 Web AnyviewC中,取得了较好的应用效果。
    参考文献 | 相关文章 | 多维度评价
    10. 基于类粒度的克隆代码群稳定性实证研究
    张久杰, 陈超, 聂宏轩, 夏玉芹, 张丽萍, 马占飞
    计算机科学    2021, 48 (5): 75-85.   DOI: 10.11896/jsjkx.200900062
    摘要315)      PDF(pc) (2539KB)(655)    收藏
    克隆代码研究与软件工程中的各类问题密切相关。现有的克隆代码稳定性研究主要集中于克隆代码与非克隆代码的比较以及不同克隆代码类型之间的比较,少有研究对克隆代码的稳定性与克隆群所分布的面向对象类进行相关分析。基于面向对象类的粒度进行了克隆群稳定性实证研究,设计了4项与克隆群稳定性相关的研究问题,围绕这些研究问题,将克隆群分为类内、类间和混合3组,并基于4种视角下的9个演化模式进行了克隆群稳定性的对比分析。首先,检测软件系统所有子版本中的克隆代码,识别并标注所有克隆代码片段所属的类信息;其次,基于克隆片段映射方法完成相邻版本间克隆群的演化映射和演化模式的识别与标注,并将映射和标注结果合并为克隆代码演化谱系;然后,在不同视角下,针对3组克隆群进行稳定性计算;最后,根据实验结果对比分析了3组克隆群的稳定性差异。在7款面向对象开源软件系统总共近7 700个版本上进行的克隆群稳定性实验结果表明:约60%的类内克隆群的生命周期率达到50%及以上,类间克隆和混合克隆群的生命周期率达到50%及以上的占比均约为35%;类内克隆群发生变化的次数最少,类间克隆群发生合并、分枝和延迟修复演化模式的次数相对略多,混合克隆群发生片段减少、内容一致变化和不一致变化的次数最多。总体而言,类内克隆群的稳定性表现最佳,混合克隆群在演化中可能需要重点跟踪或优先重构。克隆代码稳定性分析方法及实验结论将为克隆代码的跟踪、维护以及重构等克隆管理相关软件活动提供有力的参考和支持。
    参考文献 | 相关文章 | 多维度评价
    11. 基于连续型深度置信神经网络的软件可靠性预测
    亓慧, 史颖, 李灯熬, 穆晓芳, 侯明星
    计算机科学    2021, 48 (5): 86-90.   DOI: 10.11896/jsjkx.210200055
    摘要308)      PDF(pc) (1761KB)(781)    收藏
    为了提高软件可靠性智能预测的精度,采用连续型深度置信神经网络算法用于软件可靠性预测。首先提取影响软件可靠性的核心要素样本,并获取样本要素的关键特征;然后建立连续型深度置信神经网络(Deep Belief Network,DBN)的软件可靠性预测模型,输入待预测样本,通过多个受限波尔兹曼机(Restricted Boltzmann Machine,RBM)层的预处理训练,以及多次反向微调迭代获取DBN权重等参数,直到达到最大RBM层数和最大反向微调迭代次数;最后获得稳定的软件可靠性预测模型。实验结果证明,通过合理设置DBN隐藏层节点数和学习速率,可以获得良好的软件可靠性预测准确率和标准差。与常用的软件可靠性预测算法相比,所提算法的预测准确度高且标准差小,在软件可靠性预测方面的适用度较高。
    参考文献 | 相关文章 | 多维度评价
    12. 知识驱动的相似缺陷报告推荐方法
    余笙, 李斌, 孙小兵, 薄莉莉, 周澄
    计算机科学    2021, 48 (5): 91-98.   DOI: 10.11896/jsjkx.200600159
    摘要335)      PDF(pc) (1736KB)(682)    收藏
    软件缺陷在软件开发过程中不可避免,提交的缺陷报告则是分析和修复缺陷的重要信息来源。开发人员常通过借鉴相似的历史缺陷报告和修复信息来辅助对当前新缺陷的分析和修复。文中提出了一种知识驱动的相似缺陷报告推荐方法。该方法首先利用信息检索和Word Embedding技术构建缺陷知识图谱;然后利用TF-IDF和Word Embedding技术计算缺陷报告之间的文本相似度,同时综合考虑缺陷的各项属性,从而得到缺陷报告之间的主次要属性相似度;最后将上述相似度融合成综合相似度,利用综合相似度推荐相似缺陷报告。实验结果表明,与基线方法相比,在Firefox数据集上所提方法的性能平均提高了12.7%。
    参考文献 | 相关文章 | 多维度评价
    13. 融合聚类算法和缺陷预测的测试用例优先排序方法
    肖蕾, 陈荣赏, 缪淮扣, 洪煜
    计算机科学    2021, 48 (5): 99-108.   DOI: 10.11896/jsjkx.200400100
    摘要391)      PDF(pc) (4745KB)(840)    收藏
    持续集成环境下,软件快速更新加快了回归测试执行的频率,但缺陷快速反馈的需求对回归测试又提出了更高要求。测试用例优先排序技术研究测试用例的重要性,通常将缺陷探测能力强的测试用例优先执行,使其提早发现软件缺陷,其可解决持续集成环境下的快速反馈需求。缺陷预测技术可通过被测系统代码特征和历史缺陷来预估信息预测软件在新版本中发现缺陷的可能性,传统基于聚类的测试用例优先排序方法大多未考虑不同类簇数和特征子集对聚类结果的影响。文中将缺陷预测应用到聚类优先排序方法,构建测试用例和代码关联矩阵,对测试用例进行聚类分析,结合缺陷预测结果和最大最小距离策略指导簇间和簇内排序。通过实验验证发现,类簇数和聚类特征子集选择对排序效果有一定影响,当未能获取最佳类簇数和特征子集时,相比单一的聚类优先排序方法,所提方法可更有效地提高回归测试效率。
    参考文献 | 相关文章 | 多维度评价
    首页 | 前页| 后页 | 尾页 第1页 共1页 共13条记录