Page 233 - 《软件学报》2026年第5期
P. 233
2112 软件学报 2026 年第 37 卷第 5 期
基于 CFRG 的软件配置约束推断. 在 CFRG 构建步骤, LLM-Extractor 输入目标软件的配置文档, 分 3 个步骤构建
关联图: 数据获取和预处理 (第 3.1.1 节)、配置-功能关联图初始化 (第 3.1.2 节)、配置-功能关联图补全 (第 3.1.3
节). 在基于 CFRG 的软件配置约束推断中, 输入构建完成的 CFRG, LLM-Extractor 分两个步骤提取配置间约束:
多配置关联子图搜索 (第 3.2.1 节) 和配置间约束推断 (第 3.2.2 节). 本节将详细介绍 LLM-Extractor 的实现细节.
数据获取和预处理 初始化的关联图 关联关系抽取
配置-功能 关联抽取
初始化 配置-配置 关联抽取
爬取的软件 预处理后的 功能-功能 关联抽取
配置文档 软件配置文档
推断结果 多配置关联子图 关系补全后的关联图
多配置约束1
多配置 多配置关联
Condition(Conf1) LeadTo 约束推断 子图搜索
NotEffect(Conf2)
多配置约束2
Condition(Conf3) LeadTo
NotEffect(Conf4)
···
图 6 LLM-Extractor 流程总览
3.1 配置-功能关联图构建
在第 2.2.1 节的经验研究中, 本文发现研究人员在人工阅读文档、搜索配置间约束时, 会在脑海中形成对已阅
读配置项的记忆, 这种记忆不仅包括配置项本身的含义, 还包含它们对系统功能和其他配置项的潜在影响. 当研究
人员阅读新的配置项时, 这些存储在记忆中的信息会被快速唤醒, 从而辅助他们综合判断新配置项与已有配置项
之间是否存在约束关系. 这种认知过程涉及信息的存储、联想和推理, 是人类分析多配置关系的核心方式. 受到这
一人工分析流程的启发, LLM-Extractor 在推断配置间约束之前, 首先会对每个配置的描述文档进行深入分析, 并
构建一个软件配置-功能关联图 (CFRG). 该图记录了软件配置项与系统功能之间的关联关系, 提供了一种结构化
的知识表示形式. 通过构建 CFRG, 不同配置项与功能之间的相互作用能够被清晰地记录下来, 有助于后续的配置
约束推断. 在完成 CFRG 的构建后, LLM-Extractor 模拟人工分析中的回忆、思考和推断过程, 基于 CFRG 搜索多
配置关联的上下文信息, 借助这些上下文信息推断出潜在的配置约束关系. 通过这一过程, LLM-Extractor 提升了
配置间约束推断的准确性和可解释性. CFRG 是 LLM-Extractor 方法的重要数据依据, 下面将进一步介绍 CFRG 的
内容以及图定义.
CFRG 是一种用于记录软件配置与功能实体之间控制和依赖关系的关联图, 具体而言, 它涵盖了 3 种主要的
关联关系: 1) 配置与功能的关联关系, 这类关系可概括为两种逻辑关系, 即配置控制功能和配置依赖功能, 前者体
现了配置对软件功能的控制作用, 后者则反映了软件功能对配置生效的约束作用; 2) 多个配置之间的直接关联关
系, 这种关系描述了多个配置对软件功能的共同影响, 或者一个配置对另一个配置生效的约束作用; 3) 多个功能之
间的关联关系, 这类关系记录了不同功能之间的相互依赖, 一般表现为一个功能的生效依赖于另一个功能的生效.
为了准确记录这些关联关系, 本文定义了配置节点、功能实体节点、配置状态节点、功能状态节点和配置条件节
点等图节点概念, 并将上述 3 种关联关系以“节点-边-节点”的形式存储到 CFRG 中, 从而形成一个具备可搜索性
的关联图, 为后续的配置间约束推断提供了结构化知识支持.
G G = ⟨E,R⟩, 其中
CFRG 的具体图定义为: 对于一个 CFRG 实例图 , E 表示图中节点, R 表示节点之间的关联
关系, E 和 R 的类型可以分为多种, 图中节点和边的定义如表 2 所示, 下面将介绍图定义的具体内容.

