Uml 在用例图中何时应该将系统作为参与者包括进来?

Uml 在用例图中何时应该将系统作为参与者包括进来?,uml,use-case,Uml,Use Case,我正在为一个新系统制作一个用例图。我想知道什么时候一个系统应该作为参与者包含在用例图中 谢谢。对于如何正确地使用UML建模,不同的人有不同的理念(这并不奇怪,因为UML是由委员会标准化的) 我使用参与者捕捉每一个可以与我正在设计的系统交互的“事物”(人的类型、系统的类型),并发现它们有助于在所有利益相关者之间建立新系统交互方式的共识 我建议为您知道的将与系统交互的所有内容创建一个参与者,并将该参与者跟踪到参与者可以执行的每个用例。这样,您就可以充分了解谁可以做什么。正如另一个答案中所述,参与者是

我正在为一个新系统制作一个用例图。我想知道什么时候一个系统应该作为参与者包含在用例图中


谢谢。

对于如何正确地使用UML建模,不同的人有不同的理念(这并不奇怪,因为UML是由委员会标准化的)

我使用参与者捕捉每一个可以与我正在设计的系统交互的“事物”(人的类型、系统的类型),并发现它们有助于在所有利益相关者之间建立新系统交互方式的共识


我建议为您知道的将与系统交互的所有内容创建一个参与者,并将该参与者跟踪到参与者可以执行的每个用例。这样,您就可以充分了解谁可以做什么。

正如另一个答案中所述,参与者是与正在开发的系统交互的系统或角色。如果一个系统在您正在开发的系统之外,并且它直接与您正在开发的系统交互,那么您应该将它作为参与者包含在用例中


这很重要,因为您需要定义系统的边界,这意味着它的范围和接口。将系统包含为参与者将清楚地说明您正在开发的系统的需求,以便为该参与者系统提供合适的接口。

系统从来都不是用例模型中的参与者。您必须考虑触发被调查系统执行流程的因素。系统本身是哑的,无法触发自身动作。它只能由用户或时间触发。如果你认为系统正在触发动作,那么可能是时候扮演角色了。例如,当接收到电子消息时,会触发进程运行。该过程是完全自动化的,不会由用户告诉系统消息已经到达而触发,那么谁是参与者?这不是制度,而是时间。您必须想象的是,有一个查找电子消息到达的过程,这是在特定的时间间隔内进行的,例如每秒或每分钟或每月一次等。因此,是时间触发了在收到电子消息时运行的过程。

您重点关注的是触发和Gabriel什切尔巴克侧重于边界和范围。你们两个都有很好的向导,是的。规范明确指出,您可以从OMG下载并检查它。外部系统可以被描述为用例图的参与者。UML2.5正式定义了一个没有参与者的用例是由它所包含的主题触发的(例如一个计划的作业)。本主题还可能有助于澄清何时将系统表示为参与者:系统的数据库是一个像存储数据一样的用例还是一个外部参与者,因为它接收输入或向系统提供输出?通常,数据库被视为在系统边界内,即它是与参与者交互的黑盒的一部分而不是演员本身。但也有例外。假设您设计了一个新系统,它连接到一个现有数据库,它仍然是原来的数据库,那么您可能会认为DB是一个参与者。但是,只有当它与阅读您的用例的涉众相关时,才能这样做。