Page 219 - 《软件学报》2026年第4期
P. 219
1660 软件学报 2026 年第 37 卷第 4 期
活动发起者是发起业务活动的主体, 必然具备名词属性. 因此, 本文通过算法 3 提取主谓关系中的名词或名词
短语作为活动发起者. 以图 6 中需求文本 1 第 3 句的第 2 个短语“系统管理员就可以成功登入系统首页”为例, 算
法 3 先运用 NLP 技术对该短语进行分词、词性标注和依存句法分析以获取需求文本的语法特征, 然后在动词或
介词前找到一个与之相邻的名词性主语“管理员”, 随后对该活动发起者描述进行补全, 最终得到完整的活动发起
者描述“系统管理员”. 此外, 算法 3 以短语中的谓语动词或介词作为起始点, 将其与其后的短语成分均加入动作描
述集合中, 作为活动图节点四元组动作描述属性的内容. 例如, 以图 6 中需求文本 1 第 3 句的第 2 个短语中动词
“登入”为起始点, 其对应的活动图节点动作描述为“登入系统首页”.
鉴于部分需求文本描述中存在主谓关系缺失或主语为代词的现象, 算法 4 将按照算法 2 获取的活动图节点连
接次序, 对算法 3 获取的活动图活动发起者序列进行遍历. 若当前活动图节点缺少活动发起者信息, 算法 4 将根据
上下文之间的语义相关性, 推断并指定前一个节点的活动发起者为当前节点的活动发起者. 若当前节点的前一个
节点也缺少活动发起者信息, 算法 4 将以其后一个节点的活动发起者作为当前节点的活动发起者. 若对齐所有节
点的活动发起者与动作描述后, 活动发起者中仍存在人称代词, 则依据表达习惯, 使用“用户”替换第一人称代词.
算法 4. UML 活动图活动发起者对齐.
输入: 通过算法 3 获取的活动图活动发起者序列 AS [as 1 ,as 2 ,...,as n ];
输出: 对齐后的活动图活动发起者序列 AS.
1. for i ← 2 to n
2. if as i == “” then
3. as i ← as i−1
4. end if
5. end for
6. for i ← (n−1) to 1
7. if as i == “” then
8. as i ← as i+1
9. end if
10. end for
11. for i ← 1 to n
12. if as i 是人称代词 then
13. as i ← “用户”
14. end if
15. end for
16. return AS
在从需求文本获得绘制 UML 活动图节点和边所需的全部文本向量后, AutoADGC 方法采用名为 PlantUML
的开源工具将文本向量转换为可视化图形. PlantUML 将通过上述算法 4 提供的文本信息确定 UML 活动图的结
构和内容, 在秒级时间内生成图形化的 UML 活动图结果.
3 实验验证
本节利用实际软件开发项目中的软件需求对本文设计的 UML 活动图自动生成方法进行实证研究, 以检验本
文方法的有效性与实用性. 下面将详细介绍本文所使用的实验数据, 说明实验评价指标和对比方法, 阐述实验方法
及模型参数设置, 并给出实验结果及其分析.

