Uml 如何指定类的唯一标识符

Uml 如何指定类的唯一标识符,uml,class-diagram,ocl,Uml,Class Diagram,Ocl,我必须指出,对于Employee类,每个员工都可以通过其个人编号清楚地识别。我不知道我的想法是否太复杂,因为我没有真正的想法 属性: 最终内部人员编号 …您没有提供您的元模型,并且清楚地告诉每位员工,他们的人员编号是单值的,因此必然是唯一的。大概是在某个范围内,例如公司,人员编号应该是唯一的,所以答案通常是这样的 context Company inv UniquePersonelNumber: employees->isUnique(personelNumber) 在以下问题中可以找到

我必须指出,对于Employee类,每个员工都可以通过其个人编号清楚地识别。我不知道我的想法是否太复杂,因为我没有真正的想法

属性: 最终内部人员编号

您没有提供您的元模型,并且清楚地告诉每位员工,他们的人员编号是单值的,因此必然是唯一的。大概是在某个范围内,例如公司,人员编号应该是唯一的,所以答案通常是这样的

context Company
inv UniquePersonelNumber: employees->isUnique(personelNumber)

在以下问题中可以找到两种可选的OCL表达式:

在您的情况下,它将是:

context Employee
inv personalNumberUnique : Employee.allInstances() -> isUnique(personalNumber)

您甚至不需要OCL约束来用UML表达它。 属性元类上有一个属性
isID
,可确保:

来自UML 2.5规范§9.5.3(第111页)

可通过财产isID将财产标记为(部分) 作为其成员的分类器的标识符(如果有)。这个 对此的解释是开放的,但可以映射到 实现,例如关系数据库表的主键或 XML中的ID属性。如果多个属性标记为isID (可能是泛化量词)然后是 逻辑上提供 任何情况下的唯一性。因此,没有必要采取任何措施 对订单进行了说明,并可能对某些属性进行了说明 值必须为空。如果属性是多值的,则所有值都是 包括在内

此属性的符号与其他约束的符号类似 使用 属性名称和类型后的
{id}


谢谢,你说得对。我将删除我答案中的UML部分。正确,但UML没有为此属性指定符号,因此您如何在类图中可视化此属性的值?@www.admiralit.nl事实上,规范也指定了符号。我已经编辑了我的答案,将其包括在内。谢谢。UML规范的哪一节描述了这种符号?@www.admiralit.nl§9.5.4,在同一页上。参见
您好,施瓦兹先生,请将其中一个答案标记为已接受,或者解释您仍然不清楚的地方。