Page 210 - 《软件学报》2026年第4期
P. 210

袁中锦 等: 融合中文需求文本语义特征的            UML  活动图自动生成方法                                  1651


                 requirements  statements  in  Chinese.  This  approach  integrates  the  relevance  between  software  requirements  statements  and  UML  activity
                 diagrams,  as  well  as  the  temporal  properties  of  the  software  requirements  statements,  to  extract  UML  activity  diagram  elements  and  their
                 relations.  It  compensates  for  the  shortcomings  of  existing  approaches,  which  are  easily  disrupted  by  irrelevant  information  in  the
                 requirements  and  struggle  to  correctly  represent  various  business  activities.  Experimental  results  on  100  industrial  cases  validate  the
                 superiority  of  the  proposed  approach  over  state-of-the-art  approaches  in  terms  of  the  completeness,  correctness,  and  redundancy  of
                 automatically generated UML activity diagrams.
                 Key words:  automated  UML  activity  diagram  generation;  requirements  analysis;  requirements  statement  in  Chinese;  semantic  feature;
                         intelligent software engineering
                    需求工程    (requirement engineering, RE) 是软件开发生命周期  (software development life cycle, SDLC) 的首要
                 阶段  [1] . 在需求分析  (requirements analysis) 阶段产生的误解可能会对后续的软件开发阶段造成不利影响, 导致软
                 件维护成本大幅增加       [2] . 对象管理组织  (object management group, OMG) 发布的统一建模语言    (unified modeling
                 language, UML) 可以缩短软件客户与需求分析人员之间对需求理解的差距                    [3] . 活动图  (activity diagram) 作为
                 UML  支持的图表之一, 能够实现软件开发过程中工作流和业务过程的可视化                       [4] , 促使需求分析人员和客户就待开
                 发软件的组织结构及动态特征达成一致意见, 对提升需求分析的效率起着重要作用.
                    然而, 即使   UML  活动图功效显著, 自然语言表述固有的模糊性和不确定性仍可能导致人工绘制活动图耗费
                 大量的时间和人力资源, 尤其是对于复杂的大型系统                 [5] . 对于开发人员而言, 为了正确理解客户需求而在学习领域
                 知识方面投入过多也是一个棘手的问题              [6] . 由此可见, 研发自动化或半自动化的       UML  活动图生成方法对于缩短软
                 件开发时间、提高软件开发效率至关重要.
                    从本质上讲, UML     活动图自动生成问题是一个从非结构化的需求文本数据中提取具有与活动图生成直接相
                 关文本向量的问题. 根据输入格式, 现有的            UML  活动图自动生成方法可以分为两类: 基于结构化输入的方法和基
                 于非结构化输入的方法. 基于结构化输入的方法要求软件客户严格按照特定的格式来描述需求                                [7−10] . 这类方法要
                 求客户掌握相应的表达技巧和表示方法, 以撰写出符合标准和规范的需求文本. 这在实际的软件开发过程中往往
                 难以实现   [11] . 自然语言处理  (natural language processing, NLP) 技术面世后, 计算机开始具备分析和处理自然语言
                 的能力, 基于非结构化输入的方法应运而生              [12−16] . 这些方法利用  NLP  技术分析非结构化的自然语言需求文本, 通
                 过结合分析结果设计的启发式规则从需求文本中提取用于构建                      UML  活动图的信息. 但这些方法在构建           UML  活
                 动图图元素及其关系的提取规则时, 通常只考虑到需求文本的语法特征, 对需求文本的语义特征探究较少. 这可能
                 会在自动生成     UML  活动图的过程中引发误差或产生遗漏. 例如, 图              1  中需求文本   1  的首句在语法上遵循“主-谓-
                 宾”结构. 根据文献     [15] 中的  UML  活动图自动生成方法, 该句的内容应该被视作活动图的一个节点. 然而从语义
                 的角度看, 该句并未描述具体的软件业务活动, 不应该出现在最终生成的活动图中. Maatuk 等人                       [15] 与  Kumar 等人  [16]
                 提出的   UML  活动图自动生成方法均认为分号后的语句仅用于为分号前的语句提供附加信息, 主张直接舍弃分号
                 后的语句. 但在需求文本       2  中, 分号后面的语句内容属于待开发软件的系统行为, 与业务活动直接相关, 应该出现
                 在最终生成的活动图中.

                       需求文本1: 登录模块是账号功能模块的基础。系统管理员点进登录界面, 输入账号和密码。如果系统校验成功, 那
                       么系统管理员就可以成功登入系统首页。如果系统校验失败, 那么系统会提示 “账号或密码错误”。
                       需求文本2:  用户进入APP首页,    如果各项有数据,  将在本期用能情况模块看到商户本期用电量、用水量、用电量
                       同比、用水量同比; 如果各项无数据, 将看到界面数据显示 “- -”。
                       需求文本3: 用户登录产品, 进入 “能效面板” 界面。系统根据用户信息查询出用户企业的实时负荷, 绘制当天的负荷
                       曲线, 同时绘制前一天的负荷曲线。
                                            图 1 一个软件开发项目中的部分需求描述

                    此外, 近年来以     ChatGPT  为代表的自然语言生成大模型         (以下简称大模型) 已经在软件工程的多项活动中为
                 软件开发人员提供了一定程度的帮助             [17] . 将图  1  中的需求文本  3  作为输入, 使用提示语句“根据以下软件需求文本
                 生成  UML  活动图, 用  PlantUML  表示: [需求文本   3]”, 要求  ChatGPT4  生成对应的  PlantUML  脚本, 由  PlantUML
                 工具绘制的    UML  活动图如图    2(a) 所示. 相较于图   2(b) 人工绘制的活动图, 这种半自动化的方法能较好地捕捉句
   205   206   207   208   209   210   211   212   213   214   215