gpt4 book ai didi

UML关联多重性

转载 作者:行者123 更新时间:2023-12-02 07:56:40 26 4
gpt4 key购买 nike

我有一个关于关联多重性的问题。我理解它,但是例如如果我会:

 ---------            ---------
| |1 * | |
|CLASS |----------| STUDENT |
| | | |
--------- ---------

这是否意味着,在系统存在期间的任何时刻,如果系统正常运行,必须至少有 1 名学生被分配到类(class),或者这些多重性应该为真?

我问这个问题,是因为我想知道一个对象的创建时刻。首先我们创建一个空类,然后用学生填充它。在一段时间内,类(class)是空的,但只有在创建和填充类(class)期间才会有至少一名学生。如果我将 1 更改为 0..1,则表明可能存在空类。这不是假的(在填充时),但后来我不想允许没有学生的类(class)。

编辑:将 0..* 更改为 0..1,应该像现在一样,抱歉造成困惑。

最佳答案

dose that mean that at ANY point during system existence there must be at least 1 student assigned to the class, or those multiplicities should be true, if the system is operating normally.

这是个好问题。这意味着,当系统处于稳定状态时,每个学生必须与一个类(class)相关联。这又提出了另一个问题:什么构成“稳定状态”? UML 通常不会将其形式化。直观上,这意味着当没有正在进行的事件主动改变状态时。 UML 的一些配置文件对此更加严格。例如,可执行 UML 表示,当状态操作正在执行时,系统可能会违反基数约束。然而,当状态操作完成时,它必须使系统处于有效状态,即满足所有基数约束。

数据库在这里提供了一个很好的类比。当系统稳定时,数据库约束(例如非空和外键)必须成立。在交易执行期间,可能会暂时违反约束。但是,当事务完成时,它必须使数据库处于有效状态。

对于您的示例,如图所示:

  • 当系统稳定时,没有学生的类(class)存在是有效的(* 表示 0 或更多 - 因此类(class)不需要有任何学生)
  • 当系统稳定时,学生在未分配到类(class)的情况下存在是无效的(“1”表示正好是一)。因此,无论创建什么“交易”,学生也必须将学生与类(class)相关联。

第h。

关于UML关联多重性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9650657/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com