Page 229 - 《软件学报》2026年第5期
P. 229

2108                                                       软件学报  2026  年第  37  卷第  5  期


                 提前获取大量配置文件样本, 且分析效果受数据质量影响较大, 难以提取复杂约束关系. 文本分析方法基于软件文
                 档、软件日志、软件注释等自然语言信息, 从中提取配置约束, 这种方法可以快速分析来自不同软件系统的文本,
                 具有高度的可移植性. 但是由于自然语言的高度非结构化, 分析难度较大, 研究工作较少.
                    近两年来大语言模型在自然语言理解和逻辑推理上展现出强大能力, 这让我们能更加高效地完成自然语言分
                 析工作, 这为基于自然语言分析的配置约束提取方法提供了新的思路. 因此本文从自然语言分析的角度入手, 借
                 助  LLM  的能力, 研究软件配置约束的提取方法.
                    软件系统中的自然语言信息主要有以下              3  种.
                    (1) 软件文档. 软件文档指描述软件系统、组件、功能以及使用方法的书面材料. 它为开发人员、测试人员、
                 用户以及维护团队提供关于软件系统的关键信息, 帮助他们理解、使用和维护软件. 其中软件配置文档是一种描
                 述软件系统如何进行配置的文档, 通常提供详细的配置说明、参数设置及调整指南. 它帮助开发人员、系统管理
                 员和用户正确配置软件, 以确保系统能够按预期运行. 如图                 1  所示, 软件配置文档一般以“配置名称: 配置描述和配
                 置提示”键值对的形式存在.












                                                   图 1 软件配置文档示例

                    (2) 软件日志. 软件日志是软件系统自动生成的记录文件, 用于记录系统在运行过程中的各种事件、行为和状
                 态. 软件日志是调试、监控、分析和维护软件系统的重要工具. 它能够帮助开发人员、系统管理员和运维团队了
                 解系统的健康状况、问题出现的原因以及系统的运行状态.
                    (3) 软件注释. 软件注释是开发人员在代码、配置文件等文件中添加的、供人阅读的说明性文字, 旨在解释代
                 码的功能、意图、逻辑或特殊处理. 注释不会被编译或执行, 它帮助开发者或其他维护人员更好地理解代码.
                    软件配置文档作为软件配置运维人员的一手资料, 包含的软件配置信息最多、最关键, 因此本文聚焦于软件
                 配置文档, 研究从中自动化提取配置约束的方法.
                    在阐述本文的研究动机之前, 我们对软件配置约束的概念做出定义.
                    ● 配置约束. 指为了保障软件系统功能模块的正常运行或者软件配置项的正常生效, 单个或多个软件配置项
                 所需要满足的特定约束条件, 这些特定的约束条件必须是明确的、可静态检查的. 配置约束可以分为两种, 单配置
                 约束和配置间约束.
                    1) 单配置约束. 单配置约束又可以分为配置合法性约束和单配置推荐性约束, 配置合法性约束指的是单个软
                 件配置生效所需要满足的类型、取值范围等必要条件, 单配置推荐性约束指软件文档明确建议将该配置设置为某
                 个范围的取值或者某个特定的取值. 例如在图               2  左侧  fsync 配置项的描述中, fsync 的类型是布尔值、取值范围为
                 on  和  off, 这属于  fsync 的单配置合法性约束; 而橙色语句说明       fsync 的默认值为   on, 设置为  off 可能会导致不可恢
                 复的数据损坏和系统崩溃, 说明         fsync 被建议设置为默认值      on, 这属于  fsync 的推荐性约束.









                                               图 2 openGauss 软件配置约束示例
   224   225   226   227   228   229   230   231   232   233   234