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  所示, 下面将介绍图定义的具体内容.
   228   229   230   231   232   233   234   235   236   237   238