UML关联多样性

And*_*dna 16 uml associations

我有一个关于关联的问题,确切地说我想知道多重性,我理解这些,但是例如,如果我有:

 ---------            ---------
|         |1      *  |         |
|CLASS    |----------| STUDENT |
|         |          |         |
 ---------            ---------
Run Code Online (Sandbox Code Playgroud)

剂量意味着在系统存在期间的任何一点,必须至少有一名学生被分配到该班级,或者如果系统正常运行,那么这些多项应该是真的.

我在问这个问题,因为我想知道创造一个物体的那一刻.首先,我们创建一个空类,然后与学生一起填充.有一段时间这个课程是空的,但只有在创作和填充期间,它至少有一个学生.因为如果我将1更改为0..1它会建议可以有空类,它不是假的(这个填充的时刻)但后来我不想允许没有学生的课程.

编辑:改变0 ..*到0..1,它应该像现在一样,抱歉混淆.

sfi*_*nie 11

剂量意味着在系统存在期间的任何一点,必须至少有一名学生被分配到该班级,或者如果系统正常运行,那么这些多项应该是真的.

这是个好问题.这意味着,当系统处于稳定状态时,每个学生必须只与一个班级相关联.这又引发了另一个问题:什么构成了"稳定的国家"?UML一般不会将此形式化.直观地说,这意味着当没有正在进行的活动正在积极地改变状态时.UML的一些配置文件更加严格.例如,Executable UML表示系统可以在执行状态操作时违反基数约束.但是,当状态操作完成时,它必须使系统处于有效状态,即满足所有基数约束的情况.

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

所以对于你的例子如图所示:

  • 系统稳定时,如果没有学生,则该课程有效(*说0或更多 - 所以课程不需要任何学生)
  • 当系统稳定时,学生在没有被分配到班级的情况下存在是无效的('1'恰好是一个).因此无论"交易"创建什么,学生还必须将学生与班级相关联.

心连心.