这是一个不错的开端。然而,这里存在一个关键误解:
这是两个不同的概念。当然,它们之间有一些重叠:一些更高级别的功能可以用目标来描述。例如,ERP可预期具有会计、仓库管理和销售管理功能。
但特性更为通用:它还可以描述用户无法直接观察到的技术能力(例如备份)、与特定行为集不直接相关的能力(例如多语言用户界面),或者更详细的功能(例如日期选择功能)
如果您正在考虑特性,则可以考虑非UML技术,例如特性树或用户故事映射(这是一种用用户故事构建的特性树)。
在您的图表中,灯泡似乎显示了系统提供的内容,而不是用户想要做的事情。如果您想展示用例的全貌,则需要将气泡与用户目标相关联:
这可能看起来像一个无关紧要的哲学辩论。但不是这样的。因为用例的主要优势是面向目标的方法。正确地构思问题或期望可能使您能够更有创造力地考虑替代方案,而不是过早地将您锁定在预设解决方案中。
演员们提出了另一个问题:这些演员是否是自治且独立的系统,并且它们对用户是否重要?还是它们只是实现细节?
从形式上讲,演员是系统外部的,而且用例不应取决于系统的内部结构。因此,如果计算机视觉和虚拟现实系统实际上是您系统的库、组件和子系统,则不应出现在图表中。
其次,用例应该为参与者提供可观察到的价值结果。如果外部系统依赖于你的系统并且本身没有价值,那么用例结果对该系统就没有价值。例如,DBMS经常被视为候选参与者,但是未通过此测试:没有主系统的DBMS将是无用的。如果系统不是独立的自主的,则从图表中删除它以保持简单。您所描述的方式是常见的做法。所谓的主要参与者(即从考虑中的系统中获得增值的人)放置在左侧,而所谓的次要参与者(仅参与和/或支持用例)放置在右侧。根据UC图的读者是谁,它们的外观可能有意义,也可能没有。如果您向某些客户展示它们,他们可能对IT术语不感兴趣。但对于系统设计师来说,这将是一些重要信息。