Uml 如何确定用例的非人类参与者?

Uml 如何确定用例的非人类参与者?,uml,Uml,我只是在学习UML,并质疑如何正确定义参与者。我知道演员在系统中扮演角色,我在确定人类演员方面没有问题。我的问题是如何确定哪些非人类的外部组件是系统的参与者 例如,在家庭自动化系统中,屋主和系统安装人员是参与者。把一个门传感器或一个咖啡壶称为演员是正确的吗?这些组件接收来自主计算机模块的信号,可以编写对其采取的操作的用例(即打开/关闭咖啡机) 主计算机/服务器是“系统”还是由计算机/服务器和所有组件(照明模块、咖啡机、门传感器)组成的系统?我认为您必须首先定义系统的边界,这样就更容易理解外部参与

我只是在学习UML,并质疑如何正确定义参与者。我知道演员在系统中扮演角色,我在确定人类演员方面没有问题。我的问题是如何确定哪些非人类的外部组件是系统的参与者

例如,在家庭自动化系统中,屋主和系统安装人员是参与者。把一个门传感器或一个咖啡壶称为演员是正确的吗?这些组件接收来自主计算机模块的信号,可以编写对其采取的操作的用例(即打开/关闭咖啡机)


主计算机/服务器是“系统”还是由计算机/服务器和所有组件(照明模块、咖啡机、门传感器)组成的系统?

我认为您必须首先定义系统的边界,这样就更容易理解外部参与者,但请记住,参与者通常被视为黑匣子

例如,如果自动化系统发现食品供应不足,需要重新进货,它可能会通过在线服务发起订单;在这种情况下,接受此类订单的在线系统是一个参与者,您不需要知道它将如何处理订单,作为自动化系统的开发人员,您需要知道它的公共接口,以便与之交互


参与者是与您试图开发的系统交互的人或物(另一个系统)。更正式地说,参与者发起用例。

@Stef-参与者还可以帮助主要参与者实现用例的既定目标。您的示例中的在线服务就是这样。在线服务在这里不会启动任何用例,但在接收订单时,它成为订单食品供应用例的第二个参与者