我对UML和用例图非常陌生。我尝试为我的应用程序绘制一个用例图,其中包括租户、卖家和普通用户。我的租户和卖家扩展了普通用户。我在包含和扩展方面遇到了麻烦。例如,当您查看办公空间时,您还可以在页面底部查看其评论。当租户想要撰写评论时,他/她必须在查看办公空间页面上执行此操作。我不确定这是扩展还是包含。如果我的箭头方向有误,请纠正我。另外,说租户和卖家包括登录是否可以?请参考下图:
通常不应该对登录用例进行建模,因为它们不能直接帮助用户完成任何他或她关心的事情。包含和扩展是用例之间的关系,而不是演员之间的关系。UML 2.5规范如下所述:- 扩展是: 一个从扩展UseCase到扩展UseCase的关系,指定了在扩展UseCase中定义的行为可以如何和何时插入到扩展UseCase中定义的行为中。- 包含是: 一个包含关系指定了一个UseCase包含了另一个UseCase中定义的行为。演员之间的一般化/特化关系是完全可以的。那只是一个一般化箭头(例如,一个实线与一个空心箭头头部)。
Jim说:I/E是用于UC而不是用于Actors。我猜你在这里想要一个概括性的表述,因此两者都继承自General User。 进一步观察: UC的标题使用动词和名词组合 考虑到“使用”的含义,也就是增加了哪些价值。如果您发现没有增加任何价值,则它不是用例。 一般情况下避免使用I/E。它们通常表示您尝试使用功能分解,而这不是UC综合的目的。 无论如何,您绘制的UC之间的关系都是错误的。不存在具有填充的三角形并带有虚线的关系。您可能想使用一些<>依赖项(带有开放箭头)。但正如上面所述:避免使用它。只需创建与演员之间的关联即可。仅在Reviews和General User之间绘制一个关联即可,租户将继承该关系。 Login/out不是用例(没有增加任何价值)。它们是其他UC的约束条件(写 {must be logged in} 并附加到连接器上)