Uml 多重登录选项的用例

Uml 多重登录选项的用例,uml,use-case,Uml,Use Case,我有一个使用案例,用户可以通过普通登录以及社交登录(如Twitter、Google、Facebook)登录。我将用例绘制如下,但不确定它是否正确 登录帐户--扩展-->正常登录 --扩展-->Twitter登录 --扩展-->谷歌登录 --扩展-->Facebook登录,反之亦然 我已经厌倦了一直讲这个,但是登录帐户不是一个用例。它不会给参与者带来任何价值。这是一个适用于其他实际用例的简单约束 进一步:避免使用/。它们是您试图对用例进行功能分析的标志。相反,用例是合成的,这会产生很大的不同。如果

我有一个使用案例,用户可以通过普通登录以及社交登录(如Twitter、Google、Facebook)登录。我将用例绘制如下,但不确定它是否正确

登录帐户--扩展-->正常登录 --扩展-->Twitter登录 --扩展-->谷歌登录 --扩展-->Facebook登录,反之亦然

我已经厌倦了一直讲这个,但是登录帐户不是一个用例。它不会给参与者带来任何价值。这是一个适用于其他实际用例的简单约束

进一步:避免使用/。它们是您试图对用例进行功能分析的标志。相反,用例是合成的,这会产生很大的不同。如果您的用例图开始像蜘蛛网一样,那么您的设计就被破坏了

推荐阅读:Bittner/Spence。

作品反之亦然

我已经厌倦了一直讲这个,但是登录帐户不是一个用例。它不会给参与者带来任何价值。这是一个适用于其他实际用例的简单约束

进一步:避免使用/。它们是您试图对用例进行功能分析的标志。相反,用例是合成的,这会产生很大的不同。如果您的用例图开始像蜘蛛网一样,那么您的设计就被破坏了


推荐阅读:Bittner/Spence。

一般来说,我倾向于同意Thomas Kilian的观点,即在登录用例时要小心,因为它们通常不会通过boss测试

如果我做[-插入用例-]100次,我的老板会高兴吗

但是用例以许多不同的方式使用,并且用于许多不同的系统。如果您的系统是身份验证服务,那么我想登录可能是一个重要的用例

无论如何,扩展关系是非常错误的。 社会上也有一场激烈的辩论,讨论扩展的真正含义是什么,以及如何使用它。我通常建议不要使用extend。 但是如果你想保留它们,那么你可能需要用另一种方式

扩展用例在扩展用例执行的特定点(扩展点)向扩展用例插入一些特定功能。扩展用例不知道扩展用例

这里可能不需要扩展

我可能不会深入到那么多细节,如果有的话,我会坚持使用单日志用例。你可以为facebook、twitter、谷歌等做另一个场景

但是如果您真的需要用例模型中的这么多细节,那么我将使用泛化

如您所见,有一个抽象用例登录。其他三个具体用例继承自该用例


在分析中,没有正确或错误的答案。只有更好或更差的答案,这在很大程度上取决于您模型的目的。

一般来说,我倾向于同意Thomas Kilian的观点,即在登录用例时要小心,因为它们通常不会通过boss测试

如果我做[-插入用例-]100次,我的老板会高兴吗

但是用例以许多不同的方式使用,并且用于许多不同的系统。如果您的系统是身份验证服务,那么我想登录可能是一个重要的用例

无论如何,扩展关系是非常错误的。 社会上也有一场激烈的辩论,讨论扩展的真正含义是什么,以及如何使用它。我通常建议不要使用extend。 但是如果你想保留它们,那么你可能需要用另一种方式

扩展用例在扩展用例执行的特定点(扩展点)向扩展用例插入一些特定功能。扩展用例不知道扩展用例

这里可能不需要扩展

我可能不会深入到那么多细节,如果有的话,我会坚持使用单日志用例。你可以为facebook、twitter、谷歌等做另一个场景

但是如果您真的需要用例模型中的这么多细节,那么我将使用泛化

如您所见,有一个抽象用例登录。其他三个具体用例继承自该用例


在分析中,没有正确或错误的答案。只有更好或更差的答案,这在很大程度上取决于您模型的用途。

我认为您的用例有点过于技术化。当您确定用例时,您需要回顾它们几次,以确保完整的用例集是有意义的。这通常意味着一些用例被合并成单个用例,其他用例被拆分,等等

区分用例时要问的关键问题是,这两个用例之间的差异对参与者有意义吗?你不应该问有没有不同的方法来实现这个功能?还是会被执行 entation需要支持几种不同的协议吗?这些是设计问题,不应该记录在用例中,而应该记录在实现它们的协作中。用几个不同的备选协作实现一个用例是UML的完全有效和正常使用


在这种情况下,用户的登录方式是否重要,或者他们登录是否重要?我怀疑是后者,在这种情况下,应该只有一个用例。

我认为您的用例有点太技术化了。当您确定用例时,您需要回顾它们几次,以确保完整的用例集是有意义的。这通常意味着一些用例被合并成单个用例,其他用例被拆分,等等

区分用例时要问的关键问题是,这两个用例之间的差异对参与者有意义吗?你不应该问有没有不同的方法来实现这个功能?或者实现是否需要支持几种不同的协议?这些是设计问题,不应该记录在用例中,而应该记录在实现它们的协作中。用几个不同的备选协作实现一个用例是UML的完全有效和正常使用


在这种情况下,用户的登录方式是否重要,或者他们登录是否重要?我怀疑是后者,在这种情况下,应该只有一个用例。

如果登录帐户不是用例,那么创建帐户、忘记密码功能和登录过程也是这样吗?创建帐户是一个用例,因为最终您创建了一些新的东西。找回丢失的密码也是一个用例。流程登录是在对系统内部进行建模时发现的一个技术用例。但从外部登录到帐户不是一个用例,而是一个约束。建模用例不是一项简单的任务,我发现错误的用例模型比正确的用例模型多。如果登录帐户不是用例,那么创建帐户、忘记密码功能和登录过程也是如此?创建帐户是一个用例,因为最终您创建了一些新的东西。找回丢失的密码也是一个用例。流程登录是在对系统内部进行建模时发现的一个技术用例。但从外部登录到帐户不是一个用例,而是一个约束。对用例建模不是一项简单的任务,我发现错误的用例模型比正确的用例模型多。对用例进行泛化是非常敏感的。在活动中,关于如何描述在何处重写继承,没有好的方法。这最终将使动作流几乎不可读,因为在一般用例中必须有占位符,而在一般用例中需要替换占位符。最后:登录根本不是一个用例:每当我在用例中使用继承时,我通常不会在抽象用例中描述场景,而是将其留给具体的子用例。只有那些对所有子用例都适用的抽象事物才能在抽象用例中得到描述,对用例进行泛化是非常敏感的。在活动中,关于如何描述在何处重写继承,没有好的方法。这最终将使动作流几乎不可读,因为在一般用例中必须有占位符,而在一般用例中需要替换占位符。最后:登录根本不是一个用例:每当我在用例中使用继承时,我通常不会在抽象用例中描述场景,而是将其留给具体的子用例。只有那些对所有子用例都适用的抽象事物才能在抽象用例中得到描述