Кратность

Атрибуты класса

Имя класса

А б в

Линия Окно Счет

       
   


x1:Real показать() исключение:

y1:Real скрыть() неверная

x2:Real аутентификация

y2:Real клиента

Рис. 22. Примеры графического изображения конкретных классов:

а – для класса Линия указаны атрибуты;

б – для класса Окно указаны операции;

в – для класса Счет указано исключение

Имя класса (class name) – строка текста, предназначенная для идентификации класса на диаграмме классов.

Требование к имени класса:

1) имя класса должно быть уникальным в пределах пакета;

2) указывается в самой верхней секции прямоугольника

3) имя класса записывается в одну строчку по центру полужирным шрифтом

4) первая буква каждого слова должна быть прописная

5) в качестве имен классов, используются существительные, записанные без пробелов.

6) текстовый стереотип записывается над названием в угловых кавычках

7) помеченные значения записываются под названием

Принято все разрабатываемые модели разделять на два типа:

· модель без генерации программного кода (служит для анализа модели);

· модель с генерацией программного кода.

В первом случае можно использовать кириллицу, во втором нет.

Синтаксис написания имен классов должен быть согласован с используемой системой CASE (Computer-Aided Software Engineering) генерирующий программный код.

___________________________________________________________

Абстрактный класс (abstract class) – класс не имеющий объектов.

Для обозначения имени и любого текста связанного с абстрактным классом используется наклонный шрифт (курсив) (правило обязательное)

Квалифицированное имя (qualified name) имя класса, в которое входят названия всех пакетов, в которых находится данный класс

Символ, разделяющий имя класса и имя пакета – два знака двоеточия::

Пример квалифицированного имени класса:

Банк::СчетаФизическихЛиц::Счет


Атрибут (attribute) класса служит для представления отдельной структурной характеристики или свойства, которое является общим для всех объектов данного класса

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

Правила оформления записи атрибута:

1) Все записи (спецификации) выравниваются слева.

2) Каждому атрибуту класса соответствует отдельная строка текста.

Формат записи атрибута (в UML) выглядит следующим образом:

<атрибут>::=

[<видимость >]

[‘ / ‘]

<имя>

[‘: ’ <тип атрибута >]

[ ‘ [ ‘ <кратность > ’ ] ’ ]

[‘=’ <значение по умолчанию >]

[ ‘ { ‘ < модификатор атрибута> [ ‘, ’ < модификатор атрибута > ] * ‘ } ]

_________________________

Видимость может принимать следующие значения:

<видимость>::= ‘ + ‘ | ‘–‘ | ‘#’ |’~’.

_______________________________

Символ ‘ / ‘ означает, что атрибут является производным (derive)

Значение производного атрибута может быть вычислено на основе других атрибутов.

_______________________________

<имя> (name) – (обязательный элемент атрибута)

Требование к имени атрибута:

должно быть уникальным в рамках класса

должно начинаться со строчной буквы

не должно содержать пробелов (как правило)

_____________________________________

‘: ’ <тип атрибута > (attribute type) – есть имя классификатора, который является типом данного атрибута. (Иногда совпадает с типом данных атрибута)

Типу атрибута должен предшествовать знак двоеточия.

____________________________________________

‘ [ ‘ <кратность > ’ ] ’ (multiplicity) – определяет допустимый интервал мощности множества при инстанцировании (создание объекта) соответствующего элемента модели.

_____________________________________________

‘=’ <значение по умолчанию > (default) – выражение определяющее начальное значение атрибута.

_____________________________________________

< модификатор атрибута> (attribute modifier) – текстовое выражение, которое придает дополнительную семантику данному атрибуту.

Возможные значения модификатора атрибута:

<модификатор атрибута>::=

‘readOnly’ |

‘union’ |

‘subsets’ <имя атрибута> |

‘redefines’ <имя атрибута> |

‘ordered’ |

‘unique’ |

< ограничение атрибутов>

Назначение модификаторов атрибутов языка UML

Модификатор атрибута Назначение модификатора
  readOnly Атрибут только для чтения
  union Атрибут является производным объединением его подмножеств
  subsets’ <имя атрибута> Атрибут является собственным подмножеством атрибута с именем <имя атрибута>
  redefines’ <имя атрибута> Атрибут переопределяет некоторый атрибут с именем <имя атрибута>
  ordered Значение атрибута является упорядоченным
  unique Значения многозначного атрибута не могут иметь дубликатов
  < ограничение атрибутов> Выражение, которое определяет некоторое ограничение, применяемое к данному атрибуту

Подчеркивание строки атрибута означает, что значение этого атрибута является статическим, т. е. не меняется для всех экземпляров данного класса.

=======================================================================

Таблица № 14. Вид видимости

Символ Используемый тег Назначение
+ public (общедоступный) Видимый всеми элементами, которые имеют доступ к содержимому пространства имен
private (закрытый) Является видимым только внутри пространства имен, которое им владеет
# protected (защищенный) Являются видимыми для элементов, которые имеют отношение обобщения с пространством имен, которое им владеет
~ package (пакет) Видимый в ближайшем охватывающем пакете

Приоритет общедоступной видимости выше, чем у закрытой.


Кратность (multiplicity) – это интервал изменения количества элементов модели от минимума до максимума.

Кратность в UML может относиться к:

· атрибутам;

· классам;

· полюсам (концам) ассоциаций.

Синтаксис написания кратности:

Нижняя граница.. ВЕРХНЯЯ ГРАНИЦА

Пример приведен в таблице № 25

Таблица 25. Выражения кратности

Выражения кратности Множество может иметь
0.. * Произвольное количество элементов
* Произвольное количество элементов
1.. * Один или более элементов
0..1 Не более одного элемента
1.. 10 От одного до десяти элементов
1.. 3, 5, 7.. 10 Один, два, три, семь, восемь, девять или десять элементов
5.. 3 Некорректная запись. Нижняя граница больше верхней
-1.. 3 Некорректная запись. Отрицательные числа недопустимы

______________________________________________________

Примеры записи атрибутов для класса Сотрудник:

+ имяСотрудника: String {readOnly}

~ датаРождения: Data {readOnly}

# / возрастСотрудника: Integer

+ номерТелефона: Integer [*] {unique}

заработнаяПлата: Currency = $500



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



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