• 2024年第35卷第2期文章目次
    全 选
    显示方式: |
    • >综述文章
    • 软件中代码注释质量问题研究综述

      2024, 35(2):513-531. DOI: 10.13328/j.cnki.jos.006944

      摘要 (778) HTML (450) PDF 3.72 M (1253) 评论 (0) 收藏

      摘要:代码注释作为辅助软件开发群体协作的关键机制, 被开发者所广泛使用以提升开发效率. 然而, 由于代码注释并不直接影响软件运行, 使其常被开发者忽视, 导致出现代码注释质量问题, 进而影响开发效率. 代码注释中存在的质量问题会影响开发者理解相关代码, 甚至可能产生误解从而引入代码缺陷, 因此这一问题受到研究者的广泛关注. 采用系统文献调研, 对近年来国内外学者在代码注释质量问题上的研究工作进行系统的分析. 从代码注释质量的评价维度、度量指标以及提升策略这3个方面总结研究现状, 并提出当前研究所存在的不足、挑战及建议.

    • 测试集有效性评价:问题、进展与挑战

      2024, 35(2):532-580. DOI: 10.13328/j.cnki.jos.006953

      摘要 (536) HTML (508) PDF 2.62 M (1069) 评论 (0) 收藏

      摘要:测试用例集的缺陷检测有效性指测试集能够在多大程度上检测出软件中存在的缺陷. 如何评价测试集的缺陷检测有效性是一个重要问题. 覆盖率和变异得分是两个最重要和最广泛使用的测试集有效性度量. 为量化测试集的缺陷检测能力, 研究人员对测试集有效性评价进行了大量研究并且取得了较大的进展. 与此同时, 现有研究存在不一致的结论, 该领域依然存在一些亟待解决的挑战. 对多年来国内外学者在测试集有效性评价领域的研究成果进行系统性的梳理和总结. 首先, 阐述测试集有效性评价研究中的问题. 然后, 介绍并分析基于覆盖率和基于变异得分的测试集有效性的评价以及介绍测试集有效性评价在测试集优化中的应用. 最后, 指出测试集有效性评价研究中面临的挑战并给出建议的研究方向.

    • 开源软件供应链研究综述

      2024, 35(2):581-603. DOI: 10.13328/j.cnki.jos.006975

      摘要 (1095) HTML (441) PDF 1.08 M (1425) 评论 (0) 收藏

      摘要:开源软件已经成为现代社会的一项关键基础设施, 支撑着几乎所有领域的软件开发. 通过安装依赖、API调用、项目fork、文件拷贝和代码克隆等形式的代码复用, 开源软件之间形成了错综复杂的供应(依赖)关系网络, 被称为开源软件供应链. 一方面, 开源软件供应链为软件开发提供了便利, 已然成为软件行业的基石. 另一方面, 上游软件的风险可以沿着开源软件供应链波及众多的下游软件, 使开源软件供应链呈现牵一发而动全身的特点. 开源软件供应链近年来逐渐成为学术界和工业界的关注焦点. 为了帮助增进研究人员对开源软件供应链的认识, 从整体性的角度, 对开源软件供应链给出定义和研究框架; 然后, 对国内外的研究工作进行系统文献调研, 总结结构与演化、风险传播与管理、依赖管理3个方面的研究现状; 最后, 展望开源软件供应链的研究挑战和未来研究方向.

    • 基于深度学习的代码生成方法研究进展

      2024, 35(2):604-628. DOI: 10.13328/j.cnki.jos.006981

      摘要 (900) HTML (524) PDF 7.13 M (1402) 评论 (0) 收藏

      摘要:关注根据自然语言描述生成相关代码片段的代码生成(code generation)任务. 在软件开发过程中, 开发人员常常会面临两种情形. 一种是通用功能的实现, 需要开发人员编写大量重复且技术含量较低的代码; 另一种是依赖于特定任务要求, 需要开发人员查询文档或使用其他工具才能完成的代码编写工作. 代码生成作为最直接辅助开发人员完成编码的工作受到学术界和工业界的广泛关注. 让机器理解用户需求, 自行完成程序编写也一直是软件工程领域重点关注的问题之一. 近年来, 随着深度学习在软件工程领域任务中的不断发展, 尤其是预训练模型的引入使得代码生成任务取得了十分优异的性能. 系统梳理当前基于深度学习的代码生成相关工作, 并将目前基于深度学习的代码生成方法分为3类: 基于代码特征的方法、 结合检索的方法以及结合后处理的方法. 第1类是指使用深度学习算法利用代码特征进行代码生成的方法, 第2类和第3类方法依托于第1类方法进行改进. 依次对每一类方法的已有研究成果进行系统的梳理、 分析与总结. 除此之外, 汇总并分析已有的代码生成工作中常用的语料库与评估方法, 以便于后续研究进行实验设计. 最后, 对代码生成方法研究进展进行总结, 并针对未来值得关注的研究方向进行展望.

    • 开源软件库生态治理技术研究综述:二十年进展

      2024, 35(2):629-674. DOI: 10.13328/j.cnki.jos.006983

      摘要 (772) HTML (554) PDF 2.26 M (926) 评论 (0) 收藏

      摘要:在“人-机-物”三元融合、泛在计算的时代蓝海下, “开放多变”“需求多样”和“场景复杂”的软件部署和运行环境对开源软件库生态的治理技术提出了更多需求和更高期望. 为进一步推动构建可信软件供应链生态, 围绕泛在计算模式、打造自主可控的技术体系, 聚焦于开源软件库管理生态, 收集近20多年来(2001–2023)发表于软件工程领域较高影响力的学术期刊和会议的348篇论文, 对开源软件库生态治理技术的研究工作进行梳理. 讨论开源软件库生态的建模与分析、演化与维护、质量保证和管理等方面的工作, 总结研究现状、问题、挑战与趋势.

    • 图知识蒸馏综述:算法分类与应用分析

      2024, 35(2):675-710. DOI: 10.13328/j.cnki.jos.006933

      摘要 (981) HTML (482) PDF 12.80 M (1424) 评论 (0) 收藏

      摘要:图数据, 如引文网络, 社交网络和交通网络, 广泛地存在现实生活中. 图神经网络凭借强大的表现力受到广泛关注, 在各种各样的图分析应用中表现卓越. 然而, 图神经网络的卓越性能得益于标签数据和复杂的网络模型, 而标签数据获取困难且计算资源代价高昂. 为了解决数据标签的稀疏性和模型计算的高复杂性问题, 知识蒸馏被引入到图神经网络中. 知识蒸馏是一种利用性能更好的大模型(教师模型)的软标签监督信息来训练构建的小模型(学生模型), 以期达到更好的性能和精度. 因此, 如何面向图数据应用知识蒸馏技术成为重大研究挑战, 但目前尚缺乏对于图知识蒸馏研究的综述. 旨在对面向图的知识蒸馏进行全面综述, 首次系统地梳理现有工作, 弥补该领域缺乏综述的空白. 具体而言, 首先介绍图和知识蒸馏背景知识; 然后, 全面梳理3类图知识蒸馏方法, 面向深度神经网络的图知识蒸馏、面向图神经网络的图知识蒸馏和基于图知识的模型自蒸馏方法, 并对每类方法进一步划分为基于输出层、基于中间层和基于构造图知识方法; 随后, 分析比较各类图知识蒸馏算法的设计思路, 结合实验结果总结各类算法的优缺点; 此外, 还列举图知识蒸馏在计算机视觉、自然语言处理、推荐系统等领域的应用; 最后对图知识蒸馏的发展进行总结和展望. 还将整理的图知识蒸馏相关文献公开在GitHub平台上, 具体参见: https://github.com/liujing1023/Graph-based-Knowledge-Distillation.

    • 面向机器人系统的虚实迁移强化学习综述

      2024, 35(2):711-738. DOI: 10.13328/j.cnki.jos.007006

      摘要 (544) HTML (414) PDF 1.99 M (1160) 评论 (0) 收藏

      摘要:近年来, 基于环境交互的强化学习方法在机器人相关应用领域取得巨大成功, 为机器人行为控制策略优化提供一个现实可行的解决方案. 但在真实世界中收集交互样本存在高成本以及低效率等问题, 因此仿真环境被广泛应用于机器人强化学习训练过程中. 通过在虚拟仿真环境中以较低成本获取大量训练样本进行策略训练, 并将学习策略迁移至真实环境, 能有效缓解真实机器人训练中存在的安全性、可靠性以及实时性等问题. 然而, 由于仿真环境与真实环境存在差异, 仿真环境中训练得到的策略直接迁移到真实机器人往往难以获得理想的性能表现. 针对这一问题, 虚实迁移强化学习方法被提出用以缩小环境差异, 进而实现有效的策略迁移. 按照迁移强化学习过程中信息的流动方向和智能化方法作用的不同对象, 提出一个虚实迁移强化学习系统的流程框架, 并基于此框架将现有相关工作分为3大类: 基于真实环境的模型优化方法、基于仿真环境的知识迁移方法、基于虚实环境的策略迭代提升方法, 并对每一分类中的代表技术与关联工作进行阐述. 最后, 讨论虚实迁移强化学习研究领域面临的机遇和挑战.

    • 合作-竞争混合型多智能体系统的虚拟遗憾优势自博弈方法

      2024, 35(2):739-757. DOI: 10.13328/j.cnki.jos.006832

      摘要 (353) HTML (228) PDF 4.31 M (981) 评论 (0) 收藏

      摘要:合作-竞争混合型多智能体系统由受控的目标智能体和不受控的外部智能体组成. 目标智能体之间互相合作, 同外部智能体展开竞争, 应对环境和外部智能体的动态变化, 最终完成指定的任务. 针对如何训练目标智能体使他们获得完成任务的最优策略的问题, 现有工作从两个方面展开: (1)仅关注目标智能体间的合作, 将外部智能体视为环境的一部分, 利用多智能体强化学习来训练目标智能体. 这种方法难以应对外部智能体策略未知或者动态改变的情况; (2)仅关注目标智能体和外部智能体间的竞争, 将竞争建模为双人博弈, 采用自博弈的方法训练目标智能体. 这种方法主要针对单个目标智能体和单个外部智能体的情况, 难以扩展到由多个目标智能体和多个外部智能体组成的系统中. 结合这两类研究, 提出一种基于虚拟遗憾优势的自博弈方法. 具体地, 首先以虚拟遗憾最小化和虚拟多智能体策略梯度为基础, 设计虚拟遗憾优势策略梯度方法, 使目标智能体能更准确地更新策略; 然后, 引入模仿学习, 以外部智能体的历史决策轨迹作为示教数据, 模仿外部智能体的策略, 显式地建模外部智能体的行为, 来应对自博弈过程中外部智能体策略的动态变化; 最后, 以虚拟遗憾优势策略梯度和外部智能体行为建模为基础, 设计一种自博弈训练方法, 该方法能够在外部智能体策略未知或者动态变化的情况下, 为多个目标智能体训练出最优的联合策略. 以协同电磁对抗为研究案例, 设计具有合作-竞争混合特征的3个典型任务. 实验结果表明, 同其他方法相比, 所提方法在自博弈效果方面有至少78%的提升.

    • 基于知识增强的开放域多轮对话模型

      2024, 35(2):758-772. DOI: 10.13328/j.cnki.jos.006823

      摘要 (535) HTML (295) PDF 6.27 M (1212) 评论 (0) 收藏

      摘要:如何减轻安全回复和重复回复一直是开放域多轮对话模型的两大挑战性难题. 然而, 现有开放域对话模型往往忽略了对话目标的引导性作用, 以及如何在对话历史和对话目标中引入和选择更精确的知识信息. 鉴于此, 提出基于知识增强的多轮对话模型. 所提模型首先将对话历史中实词进行义原及领域词替换, 达到消除歧义和丰富对话文本表示的效果. 然后将经过知识增强后的对话历史、扩充的三元组世界知识、知识管理和知识拷贝加以集成, 以融合知识、词汇、对话历史和对话目标多种信息, 生成多样性回复. 通过两个国际基准开放域汉语对话语料库上的实验结果及可视化验证所提模型同时在自动评测和人工评测上的有效性.

    • >综述文章
    • 区块链网络综述

      2024, 35(2):773-799. DOI: 10.13328/j.cnki.jos.006985

      摘要 (545) HTML (412) PDF 6.65 M (1205) 评论 (0) 收藏

      摘要:区块链是典型的分布式系统, 底层网络的性能和安全性至关重要. 区块链网络的本质是P2P网络, 然而在安全模型、传输协议和性能指标等方面与传统P2P网络存在明显差异. 首先, 针对区块链网络的传输流程进行全面、深入地分析, 阐明区块链网络所面临的瓶颈挑战. 其次, 针对区块链网络拓扑结构和传输协议的最新研究工作, 从节点异构性、编码方案、广播算法和中继网络等方面系统性地分类梳理, 并归纳总结跨链网络实现和网络仿真工具. 最后, 探讨区块链网络的未来研究趋势.

    • 区块链互操作技术综述

      2024, 35(2):800-827. DOI: 10.13328/j.cnki.jos.006950

      摘要 (656) HTML (404) PDF 9.66 M (1269) 评论 (0) 收藏

      摘要:区块链技术被认为是构建价值互联网的基石, 然而彼此独立的区块链系统形成了数据、价值孤岛. 区块链互操作(也被称为跨链操作)是打破链间壁垒、构建区块链网络的关键技术. 在区分狭义与广义区块链互操作的基础上, 重新定义狭义区块链互操作, 并抽象出跨链读与跨链写两类基本操作; 分析总结实现狭义区块链互操作需要解决的3个关键技术问题: 跨链信息传输、跨链信任传递、跨链操作原子性保障; 系统梳理这3个问题的研究现状, 并分别从多角度进行比较; 在此基础上, 从关键技术问题的角度分析具有代表性的整体解决方案; 最后指出几个值得进一步探索的研究方向.

    • 区块链扩展技术现状与展望

      2024, 35(2):828-851. DOI: 10.13328/j.cnki.jos.006954

      摘要 (407) HTML (342) PDF 7.04 M (1103) 评论 (0) 收藏

      摘要:近年来, 区块链技术引起广泛关注, 其作为一种分布式账本技术, 由于具备开放性、透明性和不可篡改性, 已经被应用到诸多领域. 但随着用户数量和访问需求的大幅增加, 现有区块链体系结构可扩展性不足导致的性能瓶颈, 制约了区块链技术的应用和推广, 如何解决可扩展性问题已成为学术界和工业界关注的热点. 对已有的区块链扩展方案进行分析和总结. 首先, 介绍区块链基本概念和可扩展性问题的由来, 定义可扩展性问题并提出衡量可扩展性的指标. 其次, 给出分类框架, 将现有方案按网络扩展、链上扩展、链下扩展3大类进行介绍, 通过对不同的区块链可扩展性方案进行分析, 比较各自的技术特点并归纳优缺点. 最后, 对亟待解决的开放性问题进行讨论, 展望区块链技术未来趋势.

    • 网络重要流检测方法综述

      2024, 35(2):852-871. DOI: 10.13328/j.cnki.jos.006938

      摘要 (414) HTML (323) PDF 3.71 M (1068) 评论 (0) 收藏

      摘要:网络的管理与监测是网络领域的重要话题, 这一领域的相关技术通常也称为网络测量(network measurement). 网络重要流检测(network heavy hitter detection)是网络测量的一项关键技术, 也是研究对象. 重要流指占用网络资源(如带宽或发送的数据包数量)超过某一给定标准的流, 检测重要流有助于快速识别网络异常, 提升网络运行效率, 但链路的高速化为其实现带来了挑战. 按出现时间顺序, 可将重要流检测方法划分为两大类: 基于传统网络框架的和基于软件定义网络(SDN)框架的. 围绕网络重要流检测相关的框架与算法, 系统地总结其发展过程与研究现状, 并尝试给出其未来可能的发展方向.

    • 网络协议软件漏洞挖掘技术综述

      2024, 35(2):872-898. DOI: 10.13328/j.cnki.jos.006942

      摘要 (1144) HTML (449) PDF 1.38 M (15390) 评论 (0) 收藏

      摘要:网络协议软件部署和应用非常广泛, 在网络空间提供了诸如通信、传输、控制、管理等多样化的功能. 近年来, 其安全性逐渐受到学术界和工业界的重视, 及时发现和修补网络协议软件漏洞, 成为一项重要的课题. 网络协议软件由于部署形态多样、协议交互过程复杂、相同协议规范的多个协议实现存在功能差异等特点, 使得其漏洞挖掘技术面临诸多挑战. 首先对网络协议软件漏洞挖掘技术进行分类, 对已有关键技术的内涵进行界定. 其次, 进一步综述网络协议软件漏洞挖掘4个方面的技术进展, 包括网络协议描述方法、挖掘对象适配技术、模糊测试技术和基于程序分析的漏洞挖掘方法, 通过对比分析归纳不同方法的技术优势及评价维度. 最后, 总结网络协议软件漏洞挖掘的技术现状和挑战, 并提炼5个潜在研究方向.

    • 云原生数据库综述

      2024, 35(2):899-926. DOI: 10.13328/j.cnki.jos.006952

      摘要 (640) HTML (402) PDF 8.38 M (1286) 评论 (0) 收藏

      摘要:云基础设施的虚拟化、高可用、可弹性调度等特点, 为云数据库提供了开箱即用、可靠可用、按需计费等优势. 云数据库按照架构可以划分为云托管数据库(cloud-hosted database)以及云原生数据库(cloud-native database). 云托管数据库将数据库系统直接部署到云上虚拟机环境中, 具备低成本、易运维、高可靠的优势. 在此基础上, 云原生数据库充分利用云基础设施弹性伸缩的特点, 采用计算存储分离的架构, 实现了计算资源和存储资源的独立伸缩, 进一步提升数据库性价比. 然而计算存储分离的架构为数据库系统设计带来了新的挑战. 深入分析云原生数据库系统的架构和技术. 首先将云原生OLTP和云原生OLAP的数据库架构按照资源分离模式的差异分别进行归类分析, 并对比各类架构的优势与局限. 其次, 基于计算存储分离的架构, 按照各个功能模块深入探讨云原生数据库的关键技术: 主要包括云原生OLTP关键技术(数据组织、副本一致性、主备同步、故障恢复以及混合负载处理)和云原生OLAP关键技术(存储管理、查询处理、无服务器感知计算、数据保护以及机器学习优化). 最后, 总结现有云原生数据库的技术挑战并展望未来研究方向.

    • 轨迹异常检测研究综述

      2024, 35(2):927-974. DOI: 10.13328/j.cnki.jos.006996

      摘要 (1299) HTML (468) PDF 2.76 M (1318) 评论 (0) 收藏

      摘要:传感器技术的飞速发展催生大量交通轨迹数据, 轨迹异常检测在智慧交通、自动驾驶、视频监控等领域具有重要的应用价值. 不同于分类、聚类和预测等轨迹挖掘任务, 轨迹异常检测旨在发现小概率、不确定和罕见的轨迹行为. 轨迹异常检测中一些常见的挑战与异常值类型、轨迹数据标签、检测准确率以及计算复杂度有关. 针对上述问题, 全面综述近20年来轨迹异常检测技术的研究现状和最新进展. 首先, 对轨迹异常检测问题的特点与目前存在的研究挑战进行剖析. 然后, 基于轨迹标签的可用性、异常检测算法原理、离线或在线算法工作方式等分类标准, 对现有轨迹异常检测算法进行对比分析. 对于每一类异常检测技术, 从算法原理、代表性方法、复杂度分析以及算法优缺点等方面进行详细总结与剖析. 接着, 讨论开源的轨迹数据集、常用的异常检测评估方法以及异常检测工具. 在此基础上, 给出轨迹异常检测系统架构, 形成从轨迹数据采集到异常检测应用等一系列相对完备的轨迹挖掘流程. 最后, 总结轨迹异常检测领域关键的开放性问题, 并展望未来的研究趋势和解决思路.

    • 基于先验地图的视觉重定位方法综述

      2024, 35(2):975-1009. DOI: 10.13328/j.cnki.jos.006946

      摘要 (476) HTML (417) PDF 6.21 M (1225) 评论 (0) 收藏

      摘要:在自动驾驶、增强现实和智能移动机器人领域, 视觉重定位是非常重要的基础问题. 视觉重定位是指根据视觉传感器实时拍摄的数据, 在已有先验地图中确定位置和姿态的问题. 过去数十年间, 该问题受到广泛关注, 涌现出种类繁多的先验地图构建方法和视觉重定位方法. 这些工作差异大, 涉及范围广, 技术概括和总结尚缺乏. 因此, 对视觉重定位领域进行综述具有重要的理论和应用价值. 尝试为视觉重定位相关方法建立一个统一的蓝图, 从图像数据在大规模地图数据库中查询的角度对相关工作进行分析和总结. 综述不同类型地图数据库构建方法、不同特征匹配、重定位和位姿计算方法, 总结目前视觉重定位的主流数据集, 最后分析视觉重定位存在的挑战和潜在发展方向.

    • 机器人操作系统ROS安全性研究综述

      2024, 35(2):1010-1027. DOI: 10.13328/j.cnki.jos.006943

      摘要 (414) HTML (331) PDF 6.70 M (1154) 评论 (0) 收藏

      摘要:机器人日益走进人们的日常生活, 也受到了国内外越来越多的关注. 机器人系统的一个重要特性是安全性, 增强机器人系统的安全性可以保护机器人免受恶意攻击者的入侵. 机器人操作系统的安全性是机器人系统安全性的重要组成部分. 虽然近年来研究人员针对机器人操作系统的安全性做了许多研究工作, 但遗憾的是, 安全性目前还没有得到足够的重视. 为了引起人们对机器人系统安全性更多的关注, 同时帮助人们快速了解当前主流机器人操作系统ROS (robot operating system)的安全性解决方案, 对ROS的安全性进行系统的调研和总结. 一方面, 深入分析ROS的安全特性, 总结ROS中已知的安全问题. 另一方面, 对近年来ROS安全性相关的研究进行分类分析和概括总结, 并从机密性、完整性和可用性这3个方面, 对众多ROS的安全性解决方案进行比较. 最后, 对ROS安全性研究的前景进行展望.

    • 面向GPU并行编程的线程同步综述

      2024, 35(2):1028-1047. DOI: 10.13328/j.cnki.jos.006984

      摘要 (493) HTML (339) PDF 7.09 M (924) 评论 (0) 收藏

      摘要:并行计算已成为主流趋势. 在并行计算系统中, 同步是关键设计之一, 对硬件性能的充分利用至关重要. 近年来, GPU (graphic processing unit, 图形处理器)作为应用最为广加速器得到了快速发展, 众多应用也对GPU线程同步提出更高要求. 然而, 现有GPU系统却难以高效地支持真实应用中复杂的线程同步. 研究者虽然提出了很多支持GPU线程同步的方法并取得了较大进展, 但GPU独特的体系结构及并行模式导致GPU线程同步的研究仍然面临很多挑战. 根据不同的线程同步目的和粒度对GPU并行编程中的线程同步进行分类. 在此基础上, 围绕GPU线程同步的表达和执行, 首先分析总结GPU线程同步存在的难以高效表达、错误频发、执行效率低的关键问题及挑战; 而后依据不同的GPU线程同步粒度, 从线程同步表达方法和性能优化方法两个方面入手, 介绍近年来学术界和产业界对GPU线程竞争同步及合作同步的研究, 对现有研究方法进行分析与总结. 最后, 指出GPU线程同步未来的研究趋势和发展前景, 并给出可能的研究思路, 从而为该领域的研究人员提供参考.

当期目录


文章目录

过刊浏览

年份

刊期

联系方式
  • 《软件学报 》
  • 主办单位:中国科学院软件研究所
                     中国计算机学会
  • 邮编:100190
  • 电话:010-62562563
  • 电子邮箱:jos@iscas.ac.cn
  • 网址:https://www.jos.org.cn
  • 刊号:ISSN 1000-9825
  •           CN 11-2560/TP
  • 国内定价:70元
您是第位访问者
版权所有:中国科学院软件研究所 京ICP备05046678号-3
地址:北京市海淀区中关村南四街4号,邮政编码:100190
电话:010-62562563 传真:010-62562533 Email:jos@iscas.ac.cn
技术支持:北京勤云科技发展有限公司

京公网安备 11040202500063号