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  关系补全.
   229   230   231   232   233   234   235   236   237   238   239