为UML类的属性指定自定义类型

时间:2013-02-17 15:12:56

标签: attributes arguments uml class-diagram

我有一个名为interval的属性类,我喜欢给这个属性一个最小值和最大值来绑定这个区间,

怎么能代表这个?这可能吗?

3 个答案:

答案 0 :(得分:3)

创建一个值类型 - 一个带有«data type»构造型的分类器 - 对于复合类型,然后将其用作属性的类型。

例如,这表示 ClassA 具有 Interval 类型的名为 interval 的公共属性,而 Interval 是具有 min 的公共 min max 属性的值类型:

                                +----------------+
+-----------------------+       |   «data type»  |
|        ClassA         |       |    Interval    |
+-----------------------+       +----------------+
| + interval : Interval |       | + min : double |
+-----------------------+       | + max : double |
                                +----------------+

由于 Interval 是一个值类型,它的标识并不重要,因此它将被 ClassA 中的值保存,并且可能由结构实现(如果目标语言支持值和结构;例如,您不能在Java中使用值类型,因此构造型将按约定实现,因为它适用于Java中的String,因此您必须记住不要在字符串上使用==作为其标识无所谓)。

您可以将«使用»依赖关系从 ClassA 添加到 Interval ,但它是从属性的类型中隐含的,因此它是常见的省略它。

答案 1 :(得分:2)

我主要同意@Pete Kirkham我会使用数据类型而不是分类器与<>刻板印象,但如果我是对的,那就是部分回应。 @Pete Kirkham真正回应了具有最小和最大界限的模型属性,我猜@Chriss仍然想知道如何指定值。 为此你有几种方法(取决于你的意思),你可以:

  1. 指定属性的默认值。
  2. 制作一个对象图,实例化你的属性,然后指定值。
  3. 希望它有所帮助......

答案 2 :(得分:1)

如果您的意思是要对某个值设置限制,则另一个选项是为您的属性指定OCL约束,以限制其可能的值。

context ClassA inv: self.attributeA> = 1和self.attributeA< = 10