Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
вопр.и отв.к гос по ООАП для БИ.docx
Скачиваний:
4
Добавлен:
01.04.2025
Размер:
452 Кб
Скачать
☆
  1. Диаграмма классов. Разновидности классов. Атрибут класса. Операции класса. Отношения на диаграмме классов

Диаграмма классов (class diagram) — диаграмма, предназначенная для представления модели статической структуры программной системы в терминологии классов объектно-ориентированного программирования.

Диаграмма классов представляет собой граф, вершинами или узлами которого являются элементы типа “классификатор”, которые связаны различными типами структурных отношений.

Классификатор (classifier) – специальное понятие, предназначенное для классификации экземпляров, которые имеют общие характеристики.

Характеристика (feature) – понятие, предназначенное для спецификации особенностей структуры и поведения экземпляров классификаторов:

  1. структурная характеристика (structural feature) является типизированной характеристикой классификатора, которая специфицирует структуру его экземпляров;

  2. характеристика поведения (behavioral feature) является характеристикой классификатора, которая специфицирует некоторый аспект поведения его экземпляров.

Класс (class) – элемент модели, который описывает множество объектов, имеющих одинаковые спецификации характеристик, ограничений и семантики.

Основные обозначения на диаграмме

Варианты графического изображения класса на диаграмме классов

Разновидности классов:

  1. абстрактный (abstract) класс не имеет экземпляров или объектов, для обозначения его имени используется наклонный шрифт (курсив);

  2. активный класс (active class) – класс, каждый экземпляр которого имеет свою собственную нить управления;

  3. пассивный класс (passive class) – класс, каждый экземпляр которого выполняется в контексте некоторого другого объекта.

Квалифицированное имя (qualified name) используется для того, чтобы явно указать, к какому пакету относится тот или иной класс. Для этого применяется специальный символ в качестве разделителя имени – двойное двоеточие “::”.

Имя класса без символа разделителя называется простым именем класса.

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

<атрибут>::= [<видимость>] [‘/’] <имя> [‘:’ <тип атрибута>] [‘[‘<кратность>‘]’] [‘=’ <значение по умолчанию>] [‘{‘<модификатор атрибута> [‘,’ <модификатор атрибута>]* ’}’]

Примеры записи атрибутов:

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

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

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

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

– заработнаяПлата : Currency = 500.00

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

Общий формат записи отдельной операции класса следующий:

<операция>::=[<видимость>] <имя операции> ‘(‘ [<список параметров>] ‘)’ [‘:’ [<тип возвращаемого результата>] ‘{‘ <свойство операции> [‘,’ <свойство операции>]* ‘}’]

Примеры записи операций

добавить(in номерТелефона : Integer [*] {unique})

–изменить(in заработнаяПлата : Currency)

+создать() : Boolean

toString(return : String)

toString() : String

Отношения на диаграмме классов

Ассоциация (association) – произвольное отношение или взаимосвязь между классами

Имя конца ассоциации специфицирует роль (role), которую играет класс, расположенный на соответствующем конце рассматриваемой ассоциации

Видимость конца ассоциации специфицирует возможность доступа к соответствующему концу ассоциации с других ее концов.

Кратность конца ассоциации специфицирует возможное количество экземпляров соответствующего класса, которое может соотноситься с одним экземпляром класса на другом конце этой ассоциации.

Символ наличия навигации (navigable) изображается с помощью простой стрелки в форме буквы «V» на конце ассоциации.

Символ отсутствия навигации (non navigable) изображается с помощью буквы «X» на линии у конца ассоциации.

Ассоциация с навигацией и эквивалентное ему представление класса с атрибутом

Варианты изображения навигации и кратности у концов ассоциации

Исключающая ассоциация между тремя классами

Пример тернарной ассоциации

Пример 4-арной ассоциации

Ассоциация класс (association class) – элемент модели, который имеет свойства, как ассоциации, так и класса, и предназначенный для спецификации дополнительных свойств ассоциации в форме атрибутов и, возможно, операций класса.

Обобщение (generalization) – таксономическое отношение между более общим классификатором (родителем или предком) и более специальным классификатором (дочерним или потомком)

Примеры отношения обобщения

Множественное наследование – в языке UML разрешено

Агрегация (aggregation) – направленное отношение между двумя классами, предназначенное для представления ситуации, когда один из классов представляет собой некоторую сущность, которая включает в себя в качестве составных частей другие сущности

Пример отношения агрегации

Композиция (composition) или композитная агрегация предназначена для спецификации более сильной формы отношения "часть-целое", при которой с уничтожением объекта класса-контейнера уничтожаются и все объекты, являющимися его составными частями.

Пример отношения композиции