栏目文章信息

    计算机软件技术 栏目所有文章列表
    (按年度、期号倒序)
        一年内发表的文章 |  两年内 |  三年内 |  全部
    Please wait a minute...
    选择: 显示/隐藏图片
    1. 改进的基于底层虚拟机混淆器的指令混淆框架
    王雅仪, 刘琛, 黄天波, 文伟平
    《计算机应用》唯一官方网站    2023, 43 (2): 490-498.   DOI: 10.11772/j.issn.1001-9081.2021122234
    摘要432)   HTML22)    PDF (2140KB)(199)    收藏

    针对底层虚拟机混淆器(OLLVM)在指令混淆层面只支持指令替换一种算法,且仅支持5种运算符和13种替换方案的问题,设计了一种改进版的指令混淆框架InsObf,以加强OLLVM指令层面的混淆效果。InsObf包含指令加花和指令替换,其中指令加花首先对基本块的指令进行依赖分析,然后插入叠加跳转和虚假循环两种花指令;指令替换在OLLVM的基础上,拓展至13种运算符,共计52种指令替换方案。在底层虚拟机(LLVM)上实现了框架原型后,通过实验表明,与OLLVM相比,InsObf在时间开销增长约10个百分点,空间开销增长约20个百分点的情况下,圈复杂度和抗逆向能力均可提高近4倍;与同样基于OLLVM改进的Armariris和Hikari相比,InsObf在同一量级的时空开销下,可以提供更高的代码复杂度。因此,InsObf可提供指令层级的有效保护。

    图表 | 参考文献 | 相关文章 | 多维度评价
    2. 基于混合代码表示的源代码脆弱性检测
    张琨, 杨丰玉, 钟发, 曾广东, 周世健
    《计算机应用》唯一官方网站    2023, 43 (8): 2517-2526.   DOI: 10.11772/j.issn.1001-9081.2022071135
    摘要389)   HTML12)    PDF (1958KB)(204)    收藏

    软件脆弱性对网络与信息安全产生了极大的威胁,而脆弱性的根源在于软件源代码。因为现有的传统静态检测工具和基于深度学习的检测方法没有完整地表示代码特征,并且简单地使用词嵌入方法转换代码表示,所以检测结果准确率低,误报率高或漏报率高。因此,提出了一种基于混合代码表示的源代码脆弱性检测方法来解决代码表示不完整的问题,并提升检测性能。首先将源代码编译为中间表示(IR),并提取程序依赖图;然后基于数据流和控制流分析进行程序切片来得到结构化的特征,同时使用doc2vec嵌入节点语句得到非结构化的特征;接着使用图神经网络(GNN)对混合特征进行学习;最后使用训练好的GNN进行预测和分类。为了验证所提方法的有效性,在软件保证参考数据集(SARD)和真实世界数据集上进行了实验评估,检测结果的F1值分别达到了95.3%和89.6%。实验结果表明,所提方法有较好的脆弱性检测能力。

    图表 | 参考文献 | 相关文章 | 多维度评价
    3. 基于特征选择和TrAdaBoost的跨项目缺陷预测方法
    李莉, 石可欣, 任振康
    《计算机应用》唯一官方网站    2022, 42 (5): 1554-1562.   DOI: 10.11772/j.issn.1001-9081.2021050867
    摘要367)   HTML12)    PDF (2257KB)(91)    收藏

    跨项目软件缺陷预测可以解决预测项目中训练数据较少的问题,然而源项目和目标项目通常会有较大的数据分布差异,这降低了预测性能。针对该问题,提出了一种基于特征选择和TrAdaBoost的跨项目缺陷预测方法(CPDP-FSTr)。首先,在特征选择阶段,采用核主成分分析法(KPCA)删除源项目中的冗余数据;然后,根据源项目和目标项目的属性特征分布,按距离选出与目标项目分布最接近的候选源项目数据;最后,在实例迁移阶段,通过采用评估因子改进的TrAdaBoost方法,在源项目中找出与目标项目中少量有标签实例分布相近的实例,并建立缺陷预测模型。以F1作为评价指标,与基于特征聚类和TrAdaBoost的跨项目软件缺陷预测(FeCTrA)方法以及基于多核集成学习的跨项目软件缺陷预测(CMKEL)方法相比,CPDP-FSTr的预测性能在AEEEM数据集上分别提高了5.84%、105.42%,在NASA数据集上分别提高了5.25%、85.97%,且其两过程特征选择优于单一特征选择过程。实验结果表明,当源项目特征选择比例和目标项目有类标实例比例分别为60%、20%时,所提CPDP-FSTr能取得较好的预测性能。

    图表 | 参考文献 | 相关文章 | 多维度评价
    4. 基于深度语义融合的代码缺陷静态检测方法
    程靖云, 王布宏, 罗鹏
    《计算机应用》唯一官方网站    2022, 42 (10): 3170-3176.   DOI: 10.11772/j.issn.1001-9081.2021081548
    摘要330)   HTML9)    PDF (2119KB)(119)    收藏

    随着计算机软件规模和复杂度的不断增加,软件中存在的代码缺陷对公共安全形成了严重威胁。针对静态分析工具拓展性差,以及现有方法检测粒度粗、检测效果不够理想的问题,提出了一种基于程序切片和语义特征融合的代码缺陷静态检测方法。首先,对源代码中的关键点进行数据流和控制流分析,并采用基于过程间有限分布子集(IFDS)的切片方法,以获取由多行与代码缺陷相关的语句组成的代码片段;然后,通过词嵌入法获取代码片段语义相关的向量表示,从而在保证准确率的同时选择合适的代码片段长度;最后,利用文本卷积神经网络(TextCNN)和双向门控循环单元(BiGRU)分别提取代码片段中的局部关键特征和上下文序列特征,并将所提方法用于检测切片级别的代码缺陷。实验结果表明,所提方法能够有效检测不同类型的代码缺陷,并且检测效果显著优于静态分析工具Flawfinder;在细粒度的前提下,IFDS切片方法能进一步提高F1值和准确率,分别达到了89.64%和92.08%;与现有的基于程序切片的方法相比,在关键点为应用程序编程接口(API)或变量时,所提方法的F1值分别达到89.69%、89.74%,准确率分别达到92.15%、91.98%。可见在不显著增加时间复杂度的同时,所提方法具备更好的综合检测性能。

    图表 | 参考文献 | 相关文章 | 多维度评价
    5. 基于底层虚拟机的标识符混淆方法
    田大江, 李成扬, 黄天波, 文伟平
    《计算机应用》唯一官方网站    2022, 42 (8): 2540-2547.   DOI: 10.11772/j.issn.1001-9081.2021071166
    摘要281)   HTML7)    PDF (901KB)(114)    收藏

    针对现有代码混淆仅限于某一特定编程语言或某一平台,并不具有广泛性和通用性,以及控制流混淆和数据混淆会引入额外开销的问题,提出一种基于底层虚拟机(LLVM)的标识符混淆方法。该方法实现了4种标识符混淆算法,包括随机标识符算法、重载归纳算法、异常标识符算法以及高频词替换算法,同时结合这些算法,设计新的混合混淆算法。所提混淆方法首先在前端编译得到的中间文件中候选出符合混淆条件的函数名,然后使用具体的混淆算法对这些函数名进行处理,最后使用具体的编译后端将混淆后的文件转换为二进制文件。基于LLVM的标识符混淆方法适用于LLVM支持的语言,不影响程序正常功能,且针对不同的编程语言,时间开销在20%内,空间开销几乎无增加;同时程序的平均混淆比率在77.5%,且相较于单一的替换算法和重载算法,提出的混合标识符算法理论分析上可以提供更强的隐蔽性。实验结果表明,所提方法具有性能开销小、隐蔽性强、通用性广的特点。

    图表 | 参考文献 | 相关文章 | 多维度评价
    6. 基于面向服务架构的工业软件的任务调度算法
    宁明超, 张俊勃, 陈戈
    《计算机应用》唯一官方网站    2023, 43 (3): 885-893.   DOI: 10.11772/j.issn.1001-9081.2022010055
    摘要263)   HTML16)    PDF (1439KB)(116)    收藏

    针对采用面向服务架构(SOA)的工业软件的任务调度问题,考虑任务的多重属性,属性的随机性、时变性及耦合关系,以及调度过程实时性和处理任务并行性的要求,提出一种适用于基于SOA的工业软件的任务调度算法。首先,对任务调度问题进行建模,并设计用于评估任务重要程度的效用函数;然后,提出基于重要程度排序的调度算法(IRSA),按照重要程度递减的顺序对任务进行调度;最后,设计资源预留机制和抢占式调度机制,以提高IRSA的调度效率。实验结果表明,与先来先服务(FCFS)、最早截止时间优先(EDF)、最小松弛度优先(LLF)、固定优先级调度(FPS)这四种在线调度算法相比,当每秒任务到达数量为7.99时,IRSA使任务的平均响应时间减少55.83%~61.27%,且在所有性能指标上均具有明显优势,能够实现对基于SOA的工业软件的高效任务调度。

    图表 | 参考文献 | 相关文章 | 多维度评价
    7. Android应用的用户行为模式挖掘及复用方法
    毛群, 王微微, 尤枫, 赵瑞莲, 李征
    《计算机应用》唯一官方网站    2022, 42 (7): 2155-2161.   DOI: 10.11772/j.issn.1001-9081.2021040652
    摘要259)   HTML13)    PDF (1206KB)(75)    收藏

    软件测试是保障Android应用质量的有效手段,而理解Android应用的功能作为Android测试过程的基础,旨在深入探究应用的业务逻辑并发现其功能问题,在测试中尤为重要。用户行为模式可充分辅助测试人员理解Android应用功能,从而提高测试效率。基于“相似Android应用共享用户行为模式”的构想,提出一种Android应用的用户行为模式挖掘及复用方法,以降低Android应用测试成本并提高测试效率。具体而言,针对待测Android应用,从其相似Android应用挖掘出用户行为模式;然后利用基于语义的事件模糊匹配策略为待测应用寻找对应事件,并基于用户图形界面(GUI)模型的最优路径选择策略为待测应用生成目标事件序列,从而实现相似应用间的用户行为模式复用。针对三类应用的32种用户行为模式进行实验,结果表明,87.4%的行为模式可在相似Android应用上被完整复用,并且被复用的行为模式可有效覆盖待测应用中90.2%的重要状态。可见,所提方法为Android应用测试提供了有效支撑。

    图表 | 参考文献 | 相关文章 | 多维度评价
    8. 基于自适应混合粒子群优化的软件缺陷预测特征选择方法
    于振华, 刘争气, 刘颖, 郭城
    《计算机应用》唯一官方网站    2023, 43 (4): 1206-1213.   DOI: 10.11772/j.issn.1001-9081.2022030444
    摘要254)   HTML6)    PDF (1910KB)(123)    收藏

    特征选择是软件缺陷预测中数据预处理的关键步骤。针对现有特征选择方法存在的降维效果不显著、选取的最优特征子集分类精度低等问题,提出了一种基于自适应混合粒子群优化(SHPSO)的软件缺陷预测特征选择方法。首先,结合种群划分设计了基于Q学习的自适应权重更新策略,其中引入Q学习根据粒子的状态自适应地调整惯性权重;其次,为了平衡算法前期的全局搜索能力和后期的收敛速度,提出了基于曲线自适应的时变学习因子;最后,采用混合位置更新策略帮助粒子尽快跳出局部最优解,并增加粒子的多样性。在12个公开软件缺陷数据集上进行实验验证的结果表明,与使用全部特征的方法、常用的传统特征选择方法及主流的基于智能优化算法的特征选择方法相比,所提方法在提高软件缺陷预测模型分类性能和降低特征空间维度上均取得了有效的结果。与改进樽海鞘群算法(ISSA)相比,所提方法的分类精度平均提高了约1.60%,特征子集规模平均降低了约63.79%。实验结果表明,所提方法可以选出分类精度较高且数量较少的特征子集。

    图表 | 参考文献 | 相关文章 | 多维度评价
    9. 考虑决策者心理行为的软件质量评价方法
    孙延浩, 许伟, 张涛, 刘宁馨
    《计算机应用》唯一官方网站    2022, 42 (8): 2528-2533.   DOI: 10.11772/j.issn.1001-9081.2021060999
    摘要246)   HTML2)    PDF (611KB)(56)    收藏

    针对软件质量评价方法中缺乏考虑决策者心理行为的问题,提出一种基于区间二元语义的交互式多准则决策(TODIM)软件质量评价方法。首先,通过区间二元语义表征专家对软件质量的评价信息;其次,利用主观赋权法和逼近理想解排序法(TOPSIS)分别计算软件质量属性的主客观权重,并在此基础上通过组合赋权法获取软件质量属性的综合权重;然后,为更好地刻画专家在软件质量评价过程中的心理行为,将TODIM引入软件质量评价中。利用TODIM方法对高速铁路调度系统的助理调度员终端进行软件质量评价,结果表明铁路软件供应商提供的第3款助理调度员终端软件的占优度值最高,质量最优。将该方法与后悔理论方法以及II类偏好序结构排序法(PROMETHEE-II)进行对比分析,所得结果表明三种方法在质量最优软件的选取上具有一致性,然而三者的总体排序有所差异,说明所构建方法在描述多准则的交互关系和决策者的心理行为上具有较强的优越性。

    图表 | 参考文献 | 相关文章 | 多维度评价
    10. 基于感知成本的流程模型与事件日志有效对齐
    李多芹, 方贤文, 王丽丽, 邵叱风
    《计算机应用》唯一官方网站    2022, 42 (10): 3154-3161.   DOI: 10.11772/j.issn.1001-9081.2021081378
    摘要234)   HTML2)    PDF (3777KB)(58)    收藏

    现存的成本函数没有考虑到业务流程中各活动在现实情境中的不同的重要程度,于是在模型与日志的对齐过程中可能会导致对齐成本严重偏离感知成本。针对这一问题,基于业务流程中行为的典型流特征提出了重要同步成本函数的概念,并在该函数下给出一种能够提升效率的对齐方法。首先,基于感知成本的概念定义重要同步成本函数;接着,依据日志迹以及流程模型中行为的典型流特征来确定用以分割流程模型与日志迹的重要匹配子序列;最后,基于重要同步成本函数来对齐分割后的子流程和对应的日志迹子序列,并将分段对齐的结果进行合并得到最终的对齐结果。实验部分从准确率和效率两方面进行验证所提方法:在准确率方面,与现存的标准成本函数和最大同步成本函数相比,所提成本函数下的对齐准确率最高提升了17.44个百分点,且当事件日志包含混合噪声时,所提成本函数下的平均对齐准确率最高,为88.67%;在对齐效率方面则通过比较对齐所耗时间来验证,现存两种函数的平均耗时分别为1.58 s和2.21 s,而所提方法为0.63 s,效率分别提升了150.79%和250.79%。实验结果表明所提方法能在满足准确率需求的同时提升对齐的效率。

    图表 | 参考文献 | 相关文章 | 多维度评价
    11. 离散事件系统最优监督控制算法
    胡瑜洪, 王德光, 何家汉, 张志恒
    《计算机应用》唯一官方网站    2023, 43 (7): 2271-2279.   DOI: 10.11772/j.issn.1001-9081.2022060884
    摘要228)   HTML2)    PDF (3280KB)(185)    收藏

    离散事件系统的监控器可以通过禁止可控事件来使系统满足安全性和活性规范。然而,监控器并不对允许发生的可控事件主动进行选择,所以存在同时允许多个可控事件发生的情况。但在实际应用中,如交通调度、机器人路径规划中,要求系统在每个状态下最多只允许一个可控事件的发生。针对上述问题,引入一种最优机制来量化控制成本,并提出一种离散事件系统最优监督控制算法,以确保系统的安全性和活性,并使事件执行累计的成本最小。首先,给定受控系统和行为约束的自动机模型,并基于Ramadge和Wonham的监督控制理论求解出无阻塞和行为最大许可的监控器;其次,通过定义的成本函数为监控器中每个事件的执行赋予相应成本;最后,利用动态规划思想迭代计算求解出最优定向监控器,从而实现每个状态下最多发生一个可控事件和事件执行累计的成本最小的目标。使用单向列车导轨案例和多轨道列车控制案例来验证所提算法的有效性和正确性。对于上述两个案例,所提算法求解的定向监控器到达目标状态所需的事件执行累计的成本分别为26.0和14.0,低于贪心算法的27.5和16.0,以及Q-learning算法的26.5和14.0。

    图表 | 参考文献 | 相关文章 | 多维度评价
    12. 基于托肯重演的并行结构过程模型修复方法
    白二净, 李晓岩, 杜玉越
    《计算机应用》唯一官方网站    2023, 43 (2): 499-506.   DOI: 10.11772/j.issn.1001-9081.2021122154
    摘要228)   HTML2)    PDF (3299KB)(75)    收藏

    过程挖掘可以根据企业信息系统生成的事件日志建立业务过程模型。当实际业务过程发生变化时,过程模型与事件日志之间会产生偏差,这时需要对过程模型进行修正。对于含有并行结构的过程模型修复,由于加入自环和不可见变迁等因素,有些现有的修正方法的精度会降低。因此提出一种基于逻辑Petri网和托肯重演的并行结构过程模型修复方法。首先根据子模型的输入输出库所与日志的关系,确定子模型的插入位置;然后通过托肯重演的方式确定偏差所在位置;最后根据基于逻辑Petri网提出的方法进行过程模型的修复。在ProM平台上进行了仿真实验,验证了该方法的正确性和有效性,并与Fahland等方法进行对比分析。结果表明,所提方法的精度达到85%左右,相比Fahland、Goldratt方法分别提高了17和11个百分点;在简洁度方面该算法没有增加自环和不可见变迁,而Fahland和Goldratt方法均增加了不可见变迁和自环;三种方法的拟合度均在0.9以上,而Goldratt方法略低一些。以上证明用所提方法修正后的模型具有更高的拟合度和精度。

    图表 | 参考文献 | 相关文章 | 多维度评价
    13. 求解测试用例自动生成问题的多因子回溯搜索优化算法
    胡中波, 王旭鹏
    《计算机应用》唯一官方网站    2023, 43 (4): 1214-1219.   DOI: 10.11772/j.issn.1001-9081.2022030393
    摘要226)   HTML5)    PDF (1135KB)(78)    收藏

    路径覆盖测试用例自动生成(ATCG-PC)问题是自动化软件测试领域的热点。ATCG-PC问题中群智能进化算法常用的适应度函数之间具有高度的相似性,然而现有的解决ATCG-PC问题的群智能进化算法尚未考虑这一相似性特征。受相似性特征启发,将两个相似的适应度函数看作两个任务,从而将ATCG-PC问题转化为多任务ATCG-PC问题,并提出了一种新的解决多任务ATCG-PC问题的群智能进化算法,即多因子回溯搜索优化算法(MFBSA)。所提算法通过多因子选择Ⅰ的记忆种群功能提高全局搜索能力,并通过选型记忆交配使得相似任务之间能够通过知识转移提高彼此的优化效率。在6个雾计算测试程序和6个自然语言处理测试程序上对所提算法性能进行了评价。与回溯搜索优化算法(BSA)、免疫遗传算法(IGA)、收敛速度控制器粒子群优化(PSO-CSC)算法、自适应粒子群优化(APSO)算法和超立方体差分进化(DE-H)算法相比,MFBSA覆盖12个测试程序上的路径所使用的测试用例总数分别减少了64.46%、66.64%、67.99%、74.15%和61.97%。实验结果表明,所提算法能够有效降低测试成本。

    图表 | 参考文献 | 相关文章 | 多维度评价
    14. 基于优化的灰狼算法的大规模Web服务组合
    徐雪敏, 张秀国, 肖媛元, 曹志英
    《计算机应用》唯一官方网站    2022, 42 (10): 3162-3169.   DOI: 10.11772/j.issn.1001-9081.2021091556
    摘要214)   HTML6)    PDF (2213KB)(68)    收藏

    针对大规模Web服务环境中难以获得整体性能高的组合服务的问题,提出了一种大规模Web服务组合方法。首先,采用文档对象模型(DOM)对XML格式的用户需求描述文档进行解析,以生成抽象Web服务组合序列;然后,采用服务主题模型进行服务筛选,并为每个抽象Web服务选取Top-k个具体Web服务从而缩减组合空间;接着,为提高服务组合质量和组合效率,提出了一种基于Logistic混沌映射和非线性收敛因子的优化的灰狼算法(OGWO/LN)来进行最优服务组合方案选择;该算法采用混沌映射来生成初始种群以增加服务组合方案的多样性,并避免了多次局部寻优;同时,提出一种非线性收敛因子来调节算法的搜索能力以提高算法的寻优性能;最后,采用MapReduce框架对OGWO/LN进行了并行实现。在真实数据集上的实验结果表明,所提算法与IFOA4WSC、MR-IDPSO、MR-GA等算法相比,平均适应度值分别提高了8.69%、7.94%和12.25%,在解决大规模Web服务组合问题时具有更好的寻优性能和稳定性。

    图表 | 参考文献 | 相关文章 | 多维度评价
    15. 多变体系统服务质量及损耗评估方法
    陈玉枚, 扈红超, 王亚文
    《计算机应用》唯一官方网站    2023, 43 (3): 876-884.   DOI: 10.11772/j.issn.1001-9081.2022010119
    摘要211)   HTML3)    PDF (2404KB)(63)    收藏

    多变体系统利用多样化技术和动态冗余策略从架构层面实现系统的高安全性和高可靠性,然而现有研究很少涉及多变体系统服务质量(QoS)的量化评估。针对以上问题,提出一种多变体系统QoS及损耗评估方法。首先,在多变体系统架构形式化建模的基础上,基于QoS属性及权重矩阵提出QoS评估模型和流程,并使用信息熵法则评估QoS属性的重要程度;然后,构造典型的多变体系统测试实例,设计并选取影响系统性能和安全性的QoS属性;最后,量化评估系统的QoS属性权重、QoS值、QoS差异和损耗,其中,性能属性平均损耗15.86个百分点,安全属性增益4.98个百分点。评估结果表明多变体机制存在QoS损耗,但它的安全属性带来了一定程度的QoS增益,可为构造高QoS以及低QoS损耗的多变体系统提供一些参考。

    图表 | 参考文献 | 相关文章 | 多维度评价
    16. 基于行为轮廓和逻辑Petri网的模型修复方法
    张昊宇, 王丽丽
    《计算机应用》唯一官方网站    2023, 43 (8): 2527-2536.   DOI: 10.11772/j.issn.1001-9081.2022070980
    摘要186)   HTML6)    PDF (4583KB)(56)    收藏

    现实中的业务流程不断发生变化,需要对初始的业务流程模型进行修复以更好地表示实际业务流程。模型修复的关键步骤是分析现实日志和模型间的偏差,目前寻找偏差的方法主要采用对齐重演技术,未从行为的角度定量分析抽象的结构。因此,提出了一种通过行为轮廓分析日志和模型偏差的方法,并在此基础上进一步给出了基于逻辑Petri网的模型修复方法。首先,基于行为轮廓计算日志和模型间的服从度以识别偏差迹;然后,在偏差迹中依据偏差三元组集从偏差活动中选择逻辑变迁;最后,基于逻辑变迁设置逻辑函数,并通过添加新的分支或重构新的结构来修复原模型。对修复模型的适应度和精确度进行了验证,仿真实验结果表明,在尽可能保持修复模型与原始模型相似的基础上,相较于Fahland方法与Goldratt方法,所提修复方法在适应度都为1的情况下,得到的修复模型具有更高的精确度。

    图表 | 参考文献 | 相关文章 | 多维度评价
    17. 基于提交排序和预测模型的测试套件选择方法
    刘美英, 杨秋辉, 王潇, 蔡创
    《计算机应用》唯一官方网站    2022, 42 (8): 2534-2539.   DOI: 10.11772/j.issn.1001-9081.2021061016
    摘要181)   HTML4)    PDF (694KB)(81)    收藏

    为在持续集成(CI)环境下减少回归测试集、提升回归测试的效率,提出一种适用于CI环境的回归测试套件选择方法。首先,根据每个提交的测试套件历史失败率和执行率信息,进行提交排序;然后,采用机器学习方法,对提交涉及的测试套件进行失败率预测,并选择具有较高失败率的测试套件。该方法综合使用提交排序技术和测试套件选择技术,从而保证既提高故障检测率又能在一定程度上降低测试成本。在Google的开源数据集上进行的实验结果表明:与同样采用提交排序的方法和采用测试套件选择的方法相比,所提方法的开销感知平均故障检测率APFDc提高了1%~27%;在相同的测试时间成本下,所提方法的测试召回提高了33.33~38.16个百分点,变更召回提高了15.67~24.52个百分点,测试套件选择率降低了约6个百分点。

    图表 | 参考文献 | 相关文章 | 多维度评价
    18. 体系结构动态变化的软件测试资源分配算法
    李磊, 张国富, 苏兆品, 岳峰
    《计算机应用》唯一官方网站    2023, 43 (7): 2261-2270.   DOI: 10.11772/j.issn.1001-9081.2022060824
    摘要171)   HTML3)    PDF (1050KB)(65)    收藏

    测试资源分配是软件测试中的一个核心问题。已有相关研究大都假设软件的体系结构是静态不变的,且几乎没有考虑成本约束。针对该问题,提出一种体系结构动态变化的软件测试资源分配算法。首先构建了一种体系结构动态变化的多阶段多目标多约束测试资源分配模型;然后基于参数重估计、广义差分进化,在算法中加入了种群重新初始化,该方法能减小算法搜索空间并提升算法性能;最后在算法中加入了一种新的修复处理机制,该机制能有效剔除算法产生的无效解。与归一化加权求和多目标差分进化(WNS-MODE)算法和基于第三代广义差分进化的动态测试资源分配(DTRA-GDE3)算法相比,所提算法获得的解集的容量值分别提高了约11.81倍和0.39倍。在覆盖值指标方面,所提算法完全覆盖了WNS-MODE算法,并且相对于DTRA-GDE3算法提高了81个百分点。在超体积值指标方面,所提算法分别提高了近6倍和9倍。实验结果表明,所提算法能够更好地适应软件体系结构的动态变化,可为软件产品的动态测试提供更多和更优的测试资源分配方案,并满足用户需求的动态变化。

    图表 | 参考文献 | 相关文章 | 多维度评价
    19. 代码相似性检测技术综述
    孙祥杰, 魏强, 王奕森, 杜江
    《计算机应用》唯一官方网站    2024, 44 (4): 1248-1258.   DOI: 10.11772/j.issn.1001-9081.2023040551
    摘要145)   HTML0)    PDF (1868KB)(112)    收藏

    代码复用为软件开发带来便利的同时也引入了安全风险,如加速漏洞传播、代码恶意抄袭等,代码相似性检测技术通过分析代码间词法、语法、语义等信息计算代码相似程度,是判断代码复用最有效的技术之一,也是近年发展较快的程序安全分析技术。首先,系统梳理代码相似性检测的近期技术进展,根据目标代码是否开源,将代码相似性检测技术分为源码相似性检测和二进制代码相似性检测,又根据编程语言、指令集的不同进行二次细分;其次,总结每一种技术的思路和研究成果,分析机器学习技术在代码相似性检测领域成功的案例,并讨论现有技术的优势与不足;最后,给出代码相似性检测技术的发展趋势,为相关研究人员提供参考。

    图表 | 参考文献 | 相关文章 | 多维度评价
    20. 基于协同融合网络的代码搜索模型
    宋其洪, 刘建勋, 扈海泽, 张祥平
    《计算机应用》唯一官方网站    2023, 43 (12): 3896-3902.   DOI: 10.11772/j.issn.1001-9081.2022111783
    摘要132)   HTML5)    PDF (1457KB)(87)    收藏

    搜索并重用相关代码可以有效提高软件开发效率。基于深度学习的代码搜索模型通常将代码片段和查询语句嵌入同一向量空间,通过计算余弦相似度匹配并输出相应代码片段;然而大多数模型忽略了代码片段与查询语句间的协同信息。为了更全面地表征语义信息,提出一种基于协同融合的代码搜索模型BofeCS。首先,采用BERT(Bidirectional Encoder Representations from Transformers)模型提取输入序列的语义信息并将它表征为向量;其次,构建协同融合网络提取代码片段和查询语句间分词级的协同信息;最后,构建残差网络缓解表征过程中的语义信息丢失。为验证BofeCS的有效性,在多语言数据集CodeSearchNet上进行实验。实验结果表明,相较于基线模型UNIF(embedding UNIFication)、TabCS(Two-stage attention-based model for Code Search)和MRCS(Multimodal Representation for neural Code Search),BofeCS的平均倒数排名(MRR)、归一化折损累计增益(NDCG)和前k位成功命中率(SR@k)均有显著提高,其中MRR值分别提升了95.94%、52.32%和16.95%。

    图表 | 参考文献 | 相关文章 | 多维度评价
    21. 基于蚁群算法优化反向传播神经网络的软件质量预测
    朱嘉豪, 郑巍, 杨丰玉, 樊鑫, 肖鹏
    《计算机应用》唯一官方网站    2023, 43 (11): 3568-3573.   DOI: 10.11772/j.issn.1001-9081.2022101600
    摘要127)   HTML3)    PDF (1715KB)(64)    收藏

    针对基于反向传播神经网络(BPNN)的软件质量预测模型存在收敛慢、模型精度不高的问题,提出一种基于蚁群算法优化BPNN的软件质量预测(SQP-ACO-BPNN)方法。首先,选择软件质量评价指标,确立软件质量评价体系;其次,采用BPNN构建初始软件质量预测模型,并利用蚁群优化(ACO)算法确定若干网络结构、网络初始连接权值和阈值;再次,给出网络结构评价函数,选择神经网络模型的最佳结构、网络初始连接权值和阈值;最后,通过BP算法训练该网络,得到最终的软件质量预测模型。在机载嵌入式软件质量预测数据上的实验结果表明,优化后的BPNN模型有效提高了预测的准确率、精确率、召回率和F1值,并且模型能够更快收敛,验证了SQP-ACO-BPNN方法的有效性。

    图表 | 参考文献 | 相关文章 | 多维度评价
    22. 面向深度学习应用的组件式开发框架的设计实现
    刘祥, 华蓓, 林飞, 魏宏原
    《计算机应用》唯一官方网站    2024, 44 (2): 526-535.   DOI: 10.11772/j.issn.1001-9081.2023020213
    摘要83)   HTML9)    PDF (4596KB)(71)    收藏

    针对目前深度学习应用缺少有效的开发与部署工具的问题,提出一个面向深度学习应用的组件式开发框架。所提框架根据应用的资源消耗类型进行功能拆分,使用评测引导的资源分配方案进行瓶颈消除,使用分步装箱方案兼顾高CPU利用率和低显存开销的功能放置。基于此框架开发的实时车牌号检测应用,在吞吐优先模式下GPU利用率达到82%,在延迟优先模式下平均应用延迟达到0.73 s,在三种模式下(吞吐优先模式、延迟优先模式以及吞吐/延迟的均衡模式)下,CPU平均利用率达到68.8%。实验结果表明,基于此框架能够进行硬件吞吐与应用延迟的平衡型配置,在吞吐优先模式下高效利用平台的计算资源,在延迟优先模式下满足应用的低延迟需求。相较于MediaPipe,使用本框架能够进行超实时的多人姿态估计应用开发,应用的检测帧率最高提升了1 077%。实验结果表明,所提框架能够作为CPU-GPU异构服务器上面向深度学习应用开发部署的有效解决方案。

    图表 | 参考文献 | 相关文章 | 多维度评价
    23. 基于依赖增强的分层抽象语法树的代码克隆检测
    万泽轩, 谢春丽, 吕泉润, 梁瑶
    《计算机应用》唯一官方网站    2024, 44 (4): 1259-1268.   DOI: 10.11772/j.issn.1001-9081.2023040485
    摘要76)   HTML0)    PDF (1734KB)(57)    收藏

    在软件工程领域,基于语义相似的代码克隆检测方法可以降低软件维护的成本并预防系统漏洞,抽象语法树(AST)作为典型的代码抽象表征形式,已成功应用于多种程序语言的代码克隆检测任务,然而现有工作主要利用原始AST提取代码的语义,没有深入挖掘AST中的深层语义和结构信息。针对上述问题,提出一种基于依赖增强的分层抽象语法树(DEHAST)的代码克隆检测方法。首先,对AST进行分层处理,将AST划分得到不同的语义层次;其次,为AST的不同层次添加相应的依赖增强边构建DEHAST,将简单的AST变成具有更丰富程序语义的异构图;最后,使用图匹配网络(GMN)模型检测异构图的相似性,实现代码克隆检测。在BigCloneBench和Google Code Jam两个数据集上的实验结果显示,DEHAST能够检测100%的Type-1和Type-2代码克隆、99%的Type-3代码克隆和97%的Type-4代码克隆;与基于树的方法ASTNN(AST-based Neural Network)相比,F1分数均提高了4个百分点,验证了DEHAST可以较好地完成代码语义克隆检测。

    图表 | 参考文献 | 相关文章 | 多维度评价
    24. 基于UMCS树的UML类图的混合相似性度量
    袁中臣, 马宗民
    《计算机应用》唯一官方网站    2024, 44 (3): 883-889.   DOI: 10.11772/j.issn.1001-9081.2022111702
    摘要72)   HTML4)    PDF (2820KB)(74)    收藏

    软件重用是基于给定条件从存储库中检索以前开发的软件产品,检索基于相似性度量。UML(Unified Modeling Language)类图被广泛应用于软件设计,UML类图重用作为软件设计重用的核心而备受关注。因此,对UML类图的相似性开展研究。类图包含语义和结构信息。目前,UML类图的相似性研究主要集中在语义,也有个别讨论结构相似性,但没有考虑将语义和结构相结合。因此,提出一种结合语义和结构的混合相似性度量。鉴于UML类图的非形式化特征,将UML类图转换成图模型,搜索最大公共子图列表,构建了最大公共子图树,提出一个基于最大公共子图序列的混合相似性度量方法。针对概念公共子图和结构公共子图分别定义了语义匹配和结构匹配,并开展了相似性对比和基于相似性的分类质量比较实验,实验结果验证了所提出方法的优势。

    图表 | 参考文献 | 相关文章 | 多维度评价
2024年 44卷 4期
刊出日期: 2024-04-10
文章目录
过刊浏览
荣誉主编:张景中
主  编:徐宗本
副主编
:申恒涛 夏朝晖

国内邮发代号:62-110
国外发行代号:M4616
地址:四川成都双流区四川天府新区
   兴隆街道科智路1369号
   中科信息(科学城园区) B213
   (计算机应用编辑部)
电话:028-85224283-803
   028-85222239-803
网址:www.joca.cn
E-mail: bjb@joca.cn
期刊微信公众号
CCF扫码入会