【发布时间】:2017-02-11 10:31:41
【问题描述】:
我有一个系统,其中有一个控制器和一个机器人相互作用以做某事。该系统是自给自足的,从某种意义上说,一旦上线并运行,我们称为控制器的实体会自行决定机器人应该做什么,因此图中的每个“用例”都是由控制器“制作”的。由于根据定义,用例图中的参与者是与系统交互的外部实体,那么用该图对我的系统建模的正确方法是什么?控制器不能成为参与者,因为它是系统的一部分,但是我如何对功能进行建模?
【问题讨论】:
我有一个系统,其中有一个控制器和一个机器人相互作用以做某事。该系统是自给自足的,从某种意义上说,一旦上线并运行,我们称为控制器的实体会自行决定机器人应该做什么,因此图中的每个“用例”都是由控制器“制作”的。由于根据定义,用例图中的参与者是与系统交互的外部实体,那么用该图对我的系统建模的正确方法是什么?控制器不能成为参与者,因为它是系统的一部分,但是我如何对功能进行建模?
【问题讨论】:
如果系统真的是自主的,您可以问它:您获得的附加值是什么?我敢打赌它不能回答。所以它本身并不是自主的(就像你希望的那样)。它代表其建造者或购买者行事。它们将具有附加值。所以这是一种观点。
现在您实现了一个系统。这是为了实现附加值。这是否是自主完成的并不重要。
您可以做的是详细说明系统并构建技术用例。因此,要控制视觉感知,您需要使用具有自己用例的子系统。或者感觉到什么。但这是一个不同的层次,不能与背后的业务逻辑混为一谈。
【讨论】:
根据 UML 规范,传感器可以被视为参与者。
【讨论】:
您的系统可能不是一个完整的黑匣子。它对由某些来源触发的某些外部事件(通常首先是计时器)做出反应。直接的方法是将这些事件的来源(计时器、加速度计、阀门等)作为触发场景的参与者。
在您的情况下,此类参与者的唯一参与可能被表示为仅触发场景。如果是这样走捷径,不介绍演员,只需在用例触发器中写:“压力下降到以下......”
您可能希望也可能不希望将系统参与者与机器人和控制器参与者分开(即在讨论下建立系统低一级)。谁将成为您文档的读者?客户对黑匣子里面的东西不感兴趣,但是编写每个部分的两个开发团队会推动您分离和定义精确的接口。
【讨论】: