Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Вопросы к экзамену 2012.docx
Скачиваний:
5
Добавлен:
20.09.2019
Размер:
583.63 Кб
Скачать
  1. Диаграмма классов uml.

Ответ: Диаграмма классов (Class diagram) описывает типы объектов системы (сущности, характеризирующиеся операциями (методами) и атрибутами) и различного рода статических отношений между ними.

Диаграмма классов занимает центральное место в объектно-ориентированном подходе. Условно диаграмму классов можно сравнить с ER-моделью, поскольку и та и другая отображают сущности и взаимосвязи между ними. Однако сами по себе структуры данных представляют меньший интерес, чем выявленные обязательства сущностей, описанные в виде операции (методов).

В диаграмме классов имеется два основных вида статических отношений:

–  ассоциации (например, сотрудник работает в компании, компания имеет несколько офисов);

–  подтипы, обобщения (треугольник является разновидностью фигуры).

С концептуальной точки зрения ассоциации представляют концептуальные отношения между классами. Каждая из ассоциаций имеет два конца ассоциации; при этом каждый из концов ассоциации присоединяется к одному из классов этой ассоциации. Конец ассоциации может быть явно помечен некоторой меткой. Такая метка называется именем роли. В примере на диаграмме классов отображены два класса и ассоциация между ними (атрибуты и операции классов не рассмотрены) (рис. 3.2).

Рис. 3.2. Пример ассоциации

Специальные отношения ассоциации отражаются при помощи агрегации и композиции. Агрегация обозначает отношения объектов в иерархии “целое/часть”. Агрегация обеспечивает возможность перемещения от целого (агрегата) к его частям (свойствам). Пример агрегации представлен на рис. 3.3, агрегация изображается белым ромбом на конце соединения со стороны “целого” (1). Ребенок – часть семьи, в каждой семье может быть несколько детей (*).

Рис. 3.3. Пример агрегации

Агрегирование является простой концепцией с достаточно глубокой семантикой. Простое агрегирование - чисто концептуальное отношение, оно лишь позволяет отличить “целое” от “части”, но не изменяет смысла навигации по ассоциации между целым и его частями и не накладывает никаких ограничений на соотношение времен жизни целого и частей. Однако существует вариация простого агрегирования – композиция, которая добавляет к семантике агрегирования новые важные особенности. Композицией называется форма агрегирования с четко выраженным отношением владения, причем время жизни частей и целого совпадают. Части могут быть созданы уже после композита, будучи созданы, живут и умирают вместе с ним [Error: Reference source not found].

Кроме того, в случае композитного агрегирования объект в любой момент времени может быть частью только одного композита. Например, в оконной системе класс Panel (Панель) принадлежит только одному классу Window (Окно), тогда как при простом агрегировании “часть” может принадлежать одновременно нескольким “целым” (рис. 3.4). Скажем, студент, являясь частью вуза, может учиться в другом, т. е. принадлежать нескольким вузам одновременно. Композиция изображается путем дополнения ассоциации закрашенным ромбом на конце со стороны “целого” (класс “Композит”).

Рис. 3.4. Пример композиции

Рис. 3.5. Пример наследования

Вторым типом основных статических отношений является отношение обобщения. Обобщение отражает наследование между классами и изображается незакрашенным треугольником на конце соединения. Атрибуты и операции старшего класса (класс “Предок”) передаются подчиненным классам (классам “Потомкам”). Пример приведен на рис. 3.5.