【问题标题】:include or extend in UML?在 UML 中包含或扩展?
【发布时间】:2017-04-18 00:04:18
【问题描述】:

据我所知,扩展关系是用例是可选的,但包含是用例的操作需要它时(但不是所有时候)。我想为注册系统建模一个用例,并怀疑使用哪种关系,我有两个可能的选择:

我更热衷于 (b) 表示此操作的方式,因为修改数据和删除数据的部分不应该是可选的,它们用于维护学生的记录(抱歉我的图表中的错字) .尽管一位同事表示 (a) 选项更准确地处理这种情况。两者都可以吗?如果是这种情况,可能会发生这种情况? 谢谢

【问题讨论】:

    标签: uml


    【解决方案1】:

    当您设计用例时,一个容易掉入的陷阱是“功能分解”,您将用例分解为太多子用例。这里的经典是 CRUD 操作。虽然“维护记录”是一个明智的用例,但您很少希望将其分解为创建记录、删除记录等。因此,在某种程度上,您关于“包含...”与“扩展...”的问题的答案会“两者都不是”。

    有时,假设一个参与者可以搜索而只有特定参与者可以创建记录,或者如果在删除记录时存在特别复杂的身份验证步骤,您可能希望创建这些单独的用例。在这种情况下,您可能不需要“维护记录”用例,但需要分别描述这两种情况。

    如果您必须两者都有,那么我建议“修改数据”扩展“维护记录”,因为您有时可能会执行它,但并非总是如此。

    查看此答案:CRUD in a use-case diagram?

    您可能会觉得有用的讨论在这里http://www.se.cs.put.poznan.pl/knowledge-base/software-engineering-blog/crud-pattern-in-use-cases

    【讨论】:

      【解决方案2】:

      我想说,最好从图表中删除“记录维护”用例。这听起来像是一组用例。修改数据和删除数据是该组的两个唯一用例。

      【讨论】:

        猜你喜欢
        • 2023-04-05
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-09-21
        相关资源
        最近更新 更多