Атрибуты. На самом высоком уровне абстракции, моделируя структурные свойства класса (то есть атрибуты), вы просто записываете их имена

На самом высоком уровне абстракции, моделируя структурные свойства класса (то есть атрибуты), вы просто записываете их имена. Обычно этого вполне достаточно, чтобы читатель мог понять общее назначение модели. В дополнение к этому, как было описано выше, можно определить видимость, область действия и кратность каждого атрибута. Кроме того, можно задать тип, начальное значение и изменяемость атрибутов. А для обозначения множества логически связанных атрибутов допустимо использовать стереотипы (см. главу 6).

Полная форма синтаксиса атрибута в языке UML следующая:

[visibility] name [multiplicity] [: type] [= initial-value] [{property-string}]

Ниже приводятся примеры допустимых объявлений атрибутов:

  • origin - только имя;
  • + origin - видимость и имя;
  • origin: Point - имя и тип;
  • head: *Item - имя и сложный тип;
  • name [ 0.. 1 ]: String - имя, кратность и тип;
  • origin: Point = (0, 0) - имя, тип и начальное значение;
  • id: Integer {frozen} - имя и свойство.

Наряду с атрибутами можно использовать три свойства:

  • changeable (изменяемый) - ограничений на изменение значений атрибута не установлено;
  • addOnly (только добавляемый) - разрешается добавлять новые значения для атрибутов с кратностью больше единицы, но созданное значение не может быть изменено или удалено;
  • frozen (замороженный) - после инициализации объекта нельзя изменять значения его атрибутов.

Если явно не оговорено противное, то все атрибуты изменяемы (changeable). При моделировании постоянных или однократно задаваемых атрибутов можно использовать свойство frozen.

Примечание: Свойство frozen соответствует ключевому слову const вязыке C++.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: