
- •Введение
- •Управление моделью
- •Сноски (Note)
- •Общие механизмы расширения
- •Ограничение (constraint)
- •Комментарии (comment)
- •Свойства элементов
- •Стереотипы
- •Диаграммы статических структур
- •Диаграмма классов
- •Диаграмма объектов
- •Классификатор (Classifier)
- •Семантика
- •Нотация
- •Варианты представления
- •Рекомендации по оформлению
- •Секция названия Нотация
- •Секция список Нотация
- •Варианты представления
- •Атрибут
- •Семантика
- •Нотация
- •Варианты представления
- •Нотация
- •Интерфейсы Семантика
- •Нотация
- •Параметризованный класс (шаблон) Семантика
- •Нотация
- •Варианты представления
- •Связанный элемент Семантика
- •Нотация
- •Импортирование пакета Семантика
- •Нотация
- •Варианты представления
- •Варианты представления
- •Рекомендации по оформлению
- •Варианты
- •Варианты представления
- •Рекомендации по оформлению
- •Семантика
- •Нотация
- •Нотация
- •Рекомендации по проектированию
- •Варианты представления
- •Подробности
- •Нотация
- •Диаграммы последовательности Виды диаграмм взаимодействия
- •Диаграмма последовательности Семантика
- •Нотация
- •Варианты представления
- •Варианты представления
- •Время переходов Семантика
- •Нотация
- •Диаграммы сотрудничества
- •Сотрудничество Семантика
- •Нотация
- •Диаграмма сотрудничества Семантика
- •Нотация
- •Структура шаблона Семантика
- •Нотация
- •Взаимодействия
- •Семантика
- •Нотация
- •Активный объект
- •Варианты представления
- •Нотация
- •Составные состояния Семантика
- •Нотация
- •События Семантика
- •Нотация
- •Простые переходы Семантика
- •Нотация
- •Переходы во вложенные состояния Семантика
- •Нотация
- •Варианты представления
- •Внутренние переходы Семантика
- •Состояние действия Семантика
- •Нотация
- •Пиктограммы управления
- •Стереотипы
- •Диаграммы реализации
- •Компонентная диаграмма Семантика
- •Нотация
- •Диаграммы развертывания Семантика
- •Нотация
- •Узлы Семантика
- •Нотация
- •Компоненты Семантика
- •Нотация
Атрибут
Используется для показа атрибутов в классах. Подобный синтаксис используется для определения уточнителей, параметров шаблона, параметров операции и так далее (некоторые из них не включают определенные элементы).
Семантика
Заметим, что атрибут семантически эквивалентен построению ассоциаций. Однако цель и применение обычно отличаются.
Тип атрибута - определяется выражением типа. Он может быть именем класса или быть составным, как array[String] of Point. В любом случае детали выражений, описывающих тип атрибута, не определяются в UML; они зависят от синтаксиса выражений, поддерживаемых используемым языком подробной спецификации или программирования.
Нотация
Атрибут отображается как текстовая строка, которая может разбираться на различные свойства атрибута как элемента модели. Синтаксис по умолчанию:
visibility name : type-expression = initial-value {property-string} видимость имя : выражение-типа = начальное-значение {строка-свойств}
где видимость принимает одно из следующих значений:
+ общедоступный (public)
# защищенный (protected)
- частный (private)
Маркер видимости может быть опущен. Отсутствие маркера видимости показывает, что видимость не показывается (а не то, что она не определена или соответствует общедоступности). ПО должно назначать видимость новым атрибутам, даже если видимость не показывается. Маркер видимости является сокращением полной строки описывающей свойство видимости.
Видимость может быть также задана с помощью ключевых слов (public, protected, private). Наиболее часто эта форма используется как встроенный элемент списка, который применяется ко всему блоку атрибутов.
Для некоторых языков программирования могут потребоваться дополнительные виды видимости, как implementation видимость в C++ (фактически для всех форм не общей видимости, зависящей от языка). Такая видимость должна определяться строкой свойства или зависящим от ПО способом.
где имя - строка идентификатор, которая представляет название атрибута;
где выражение-типа - зависящее от языка описание, определяющее тип атрибута;
где начальное-значение - зависящее от языка выражение для начального значения вновь созданного объекта. Начальное значение является необязательным (знак равенства также не пишется). Явный конструктор может увеличивать или изменять заданное для нового объекта начальное значения по умолчанию;
где строка-свойств отображает относящиеся к элементу значения свойств. Строка свойств является необязательной (если свойства не определены, то скобки опускаются);
Глобальные для класса атрибуты (class-scope attribute) отображаются с помощью подчеркивания имени и выражения типа; иначе атрибут является локальным для экземпляра. Локальные для экземпляра атрибуты (instance-scope attribute) не подчеркиваются; по умолчанию атрибуты локальные.
class-scope-attribute
Никаких символов не используется для указания на то, что атрибут может изменять свое значение (по умолчанию изменяемый). Неизменяемые атрибуты описываются с помощью свойства {frozen} ({заморожен}).
В отсутствии указателя множественности атрибут принимает точно одно значение. Множественность может быть задана помещением указателя множественности в скобках после имени, например:
colors [3]: Color points [2..*]: Point
Заметим, что множественность 0..1 применяется для указания возможности пустых значений: отсутствия значения, как противопоставление точному значению из интервала. Например, следующее объявление допускает различие между пустым значением и пустой строкой:
name [0..1]: String
Ключевое слово стереотипа предшествует строке атрибута, включая индикаторы видимости. Список свойств в скобках следует за строкой атрибута.