Uml 活动图:使用不同继承类型的对象流作为输出重用活动/操作

Uml 活动图:使用不同继承类型的对象流作为输出重用活动/操作,uml,sysml,Uml,Sysml,我有一个关于在活动图上建模的问题,这个问题困扰了我一段时间,我在任何地方都找不到任何答案/约定 下面是一个更好地理解我的问题的示例: 假设我有两个班,分别是“公寓”和“房子”。两者都是“住房”一类的泛化。 住房包含居住在其中的人的属性“居民”。 平面包含一个属性“floor”,表示平面位于哪个楼层 下面是类图: 在活动图中,我想表示给人提供住房的行为。 此操作可以将house或flat作为输入(因此我认为输入引脚使用“house”类型是正确的),也可以将未定义的人数作为输入。 我希望此操作将更

我有一个关于在活动图上建模的问题,这个问题困扰了我一段时间,我在任何地方都找不到任何答案/约定

下面是一个更好地理解我的问题的示例:

假设我有两个班,分别是“公寓”和“房子”。两者都是“住房”一类的泛化。 住房包含居住在其中的人的属性“居民”。 平面包含一个属性“floor”,表示平面位于哪个楼层

下面是类图:

在活动图中,我想表示给人提供住房的行为。 此操作可以将house或flat作为输入(因此我认为输入引脚使用“house”类型是正确的),也可以将未定义的人数作为输入。 我希望此操作将更新的房屋或公寓作为输出(而不是更新的房屋,因为这将意味着房屋或公寓的特定信息将丢失)。 我真的不知道我是否必须创建两个动作(一个用于house,另一个用于flats),或者是否有一种方法可以对这两个类重用该动作并从中获得正确的输出

以下是活动图:

我的问题是:如何在活动图中表示对不同类型的对象流相同的操作作为输入,并将更新的对象流作为输出(因此可能是不同类型的)

nb:

  • 所有类型的对象流都是类,并从同一个其他类继承
  • 我在modelio中代表了这一点,但第一次是在客串中
  • 我正在尽可能地适应UML语言的规则
两个流(顶部对象和下部控制)蓝色框架中可以保持原样。
Give flat floor
只有在接收到
flat
对象并发送控制令牌时才会开始。为了使正确的操作排序成为可选,我只使用对象流,因此只有在传递
flat
对象时才会触发。这就足够了,没有问题需要额外的控制流


为了清楚起见,我还将从
Assign
操作向出口添加一个保护流,读取
[house was assigned]
或类似内容。

谢谢你的回答!Cameo仍然认为这种对对象流使用类型(从外壳到平面)是不正确的(这是一个错误)但是这个错误更多的是与工具相关的,对吗?这不是一个泛化,而是一个对象流。我不知道Cameo(只知道名称)。对象流与泛化无关。但我怀疑这是一个工具问题。