Page 234 - 《软件学报》2026年第5期
P. 234
张添翼 等: LLM-Extractor: 基于大语言模型的软件配置间约束提取方法 2113
表 2 CFRG 的实体类型和关系类型定义
类型 类别 定义 定义描述 示例
软件配置项: 软件文档中存在对 enable_double_write,
E C E C ⊂ allconfigs
应描述的所有配置项 wal_sync_method
wal_sync_method, doesn’t take
c ∈ E C ,sfromtext 软件配置状态: 该状态由确定的 effect(fsync==off) →
E CS (e Cond → AtStatus(e C ,e CS )) → e CS ∈ E CS 配置条件导致
AtStatus(wal_sync_method, doesn’t
take effect)
c 1 ,c 2 ,... ∈ E C , v 1 ,v 2 ,... ∈ Constant,
⊕ ∈ [<>⩽⩾=] 软件配置条件: 由一个或多个配 enable_double_write==off
E Cond
置相关的值约束组成 wal_sync_method==fsync
节点 e Cond = c 1 ⊕v 1 ∧c 2 ⊕v 2 ∧... → e Cond ∈ E Cond
background writer
软件功能实体: 配置文档中提到
∃e Cond ∈ E Cond ,e F ,e FS from text (bgwriter_lru_maxpages==0 →
E F 的功能实体, 功能实体的状态应
(e Cond → AtStatus(e F ,e FS )) → e F ∈ E F AtStatus(background writer,
当被明确的配置条件决定
disabled))
background writer is disabled
软件功能实体状态: 配置文档中
∃e Cond ∈ E Cond ,e F ,e FS from text (bgwriter_lru_maxpages==0 →
E FS 提到的功能实体, 状态应当被明
(e Cond → AtStatus(e F ,e FS )) → e FS ∈ E FS AtStatus(background writer,
确的配置条件决定
disabled))
E F AtStatus E FS 软件功能 E F 处在状态 E FS 或者 (background writer) AtStatus(is
AtStatus
E C AtStatus E CS 软件配置 E C 处在状态 E CS disabled)
(bgwriter_lru_maxpages)
软件配置 E C 与配置条件
RelatedTo E C RelatedTo E Cond E Cond RelatedTo
相关联
(bgwriter_lru_maxpages==0)
关系 (bgwriter_lru_maxpages==0)
LeadTo E Cond LeadTo E FS 配置条件 E Cond 会导致功能 E F LeadTo
处在状态 E FS
(background writer is disabled)
软件配置 E C 生效要求满足配置 bgwriter_lru_multiplier Require
Require E C Require E Cond E FS E F 处在
E Cond E F 或者满足
条件
(background writer is enabled)
状态 E FS
E C 代表当前软件系统的配置项, 软件配置项还具有配置类型和配置合法值两种属性, 一个配置项对应一个配
置类型, 但是可以对应多个合法取值, 如表 2 中 wal_sync_method 对应类型是枚举型, 对应合法取值有 open_datasync、
fsync 等. E CS 代表软件配置项生效相关的状态, 例如“doesn’t take effect”“take effect”, 又例如“recovery_parse_
workers prevails recovery_max_workers”, 这些状态由特定的、明确的配置条件导致.
E Cond 代表文档中出现的配置条件, 可能是单个配置项满足的取值条件, 例如 wal_sync_method==fsync, 也可
以是多个配置项取值条件析取或者合取的组合, 例如 wal_sync_method==fsync ∧ enable_double_write==on 是由两
个单配置条件合取连接成的组合配置条件.
E FS 是本文根据第 2.2.1 节中经验研究的结果定义的软件功能实体相关概念, 由于本文的研究问题是配
E F 和
置间约束提取, 而配置约束必须包含明确的、可检查的配置条件 E Cond , 因此我们只关注被 E Cond 控制的软件功能实
e Cond ∈ E Cond 、e F 和
体以及功能实体对应的状态, 因此 E F 和 E FS 的定义为: 对于一段文本语段, 如果可以从中提取
,
e FS 满足 e Cond LeadTo AtStatus(e F ,e FS ), 我们则认为 e F 属于功能实体 E F e FS 属于实体状态 E FS , 其中 AtStatus(e F ,e FS )
指功能实体 e F 处于状态 e FS . 例如在 bgwriter_lru_maxpages 的描述语句“When this parameter is set to 0, the background
writer is disabled”中, 我们可以提取 (bgwriter_lru_maxpages==0) LeadTo AtStatus(backgroundwriter, disabled), 其中
backgroundwriter 属于功能实体 E F , disabled 属于功能状态实体 E FS .
在实体间关联关系的定义上, R= 〈AtStatus, RelatedTo, LeadTo, Require〉 , 如表 2 关系部分所示, 定义了不同类
型实体之间的关联关系.
介绍完构图动机和图定义之后, 本文下面将正式介绍 CFRG 构建的 3 个步骤: 数据获取和预处理、CFRG 初
始化和 CFRG 关系补全.

