1 背景
UML活动图(Activity Diagram)用于描述系统、软件工作流程,能够表达并发、循环、分支等结构,是一种常见的设计输出。
相比基于自然语言的设计文档,活动图具有更好的结构化程度。这使得可以对活动图进行程序化分析,实现设计检查、场景分析、测试用例生成等功能。
本文通过一个活动图实例,给出OneLogic的部分分析结果。
2 分析目标
通过对活动图的分析,希望获得如下结果:
(1)检查活动图中的设计缺陷;
(2)分析活动图属性,包括调用关系、路径估计等;
(3)给出覆盖活动图分支的路径集;
(4)生成测试用例集,能够支持软件及系统测试;
3 实例

本文对上述UML活动图进行分析。
该活动图的基本流程为:
(1)接收指令消息;
(2)根据指令进入不同分支,执行处理过程;
(3)发送数据消息;
该活动图包含如下特征结构。
3.1 并发
活动图的一个关键特点是表达并发。本实例包含了两个并发结构。
第一个为常见的并发结构,两个活动流相互独立,起始于同一个Fork节点,结束于同一个Join节点。

第二个并发结构则更为复杂,并发的活动流之间存在耦合。在后续分析可见该并发结构还存在死锁。

3.2 循环结构
指令cmd == 1将进入如下的循环结构。对循环结构,在用例中也应构造激励条件,以实现对各个边的覆盖。