Uml 在业务用例的备用流中包含语句

Uml 在业务用例的备用流中包含语句,uml,use-case,requirements,Uml,Use Case,Requirements,我正在对一个系统进行需求分析,目前我试图编写业务用例(BUC)并绘制业务用例图。我目前使用以下准则: 当我有BUC的可选额外步骤时,我使用EXTEND语句指向可以找到这些可选步骤的BUC。扩展的BUC和被扩展的BUC都可以独立存在 当我在多个BUC中有重复的功能时,我尝试提取该功能并将其放在单独的BUC中。然后在提取功能的BUC中使用INCLUDE语句,指向可以找到该功能的BUC。使用INCLUDE语句指向外部BUC的BUC本身无法工作 这一切都很好,直到我出现以下情况: 在一个BUC的备

我正在对一个系统进行需求分析,目前我试图编写业务用例(BUC)并绘制业务用例图。我目前使用以下准则:

  • 当我有BUC的可选额外步骤时,我使用EXTEND语句指向可以找到这些可选步骤的BUC。扩展的BUC和被扩展的BUC都可以独立存在

  • 当我在多个BUC中有重复的功能时,我尝试提取该功能并将其放在单独的BUC中。然后在提取功能的BUC中使用INCLUDE语句,指向可以找到该功能的BUC。使用INCLUDE语句指向外部BUC的BUC本身无法工作

这一切都很好,直到我出现以下情况:

  • 在一个BUC的备用流程中(我们称之为a),有我已经在另一个BUC中指定的重复功能(我们称之为B)
  • 所以我自然想用INCLUDE语句指向B
  • 如果我这样做,我还必须在我的业务用例图中显示这一点
  • 如果我在图中画一个包含箭头(从A到B),它看起来像没有B A就不可能存在
  • 但是情况并非如此,因为A只有在交替流中才需要B
我考虑了以下选择:

  • 我将所有功能保留在备用流中,但这会使备用流过长,并创建重复的功能
  • 我改用extend,但这强制要求B是可选的,而如果你在A的交替流中,你必须通过B

  • 有什么想法吗?

    当(且仅当)运行包含的UC时使用include
    始终在运行主UC时使用

    extend
    可以在不运行扩展UC的情况下完成主UC,但在某些备用流中也运行扩展UC时使用

    因此,您应该使用
    extend

    可以显示扩展点。您可以用它来解释逻辑(说明在进入备用流时始终运行扩展UC)。如果逻辑更复杂,也可以将其放在注释中


    我在这里不讨论您的分解是否是一种正确的方法(但请期待其他人的讨论)。

    根据您的描述,您不是在进行用例合成,而是在进行功能分解。这显然是错误的。用例合成的重点是关注用例给参与者带来的附加值,而不是分解任何功能


    我强烈建议您在继续前进之前阅读Bittner/Spence,并了解基本知识-分别返回并瞄准正确的目标。

    “但请期待其他人的讨论”:-D:-D