
- •Алгоритмизация и программирование Проектирование программного обеспечения
- •1. Базовые принципы и понятия технологии разработки сложного по
- •Разработка модели
- •1.2. Методология объектно-ориентированного анализа и проектирования
- •1.3. Концепция разработки архитектур, управляемых моделями
- •2. Основы языка uml
- •Uml модель и ее элементы
- •Отношения
- •Диаграммы
- •1.5. Общие диаграммы
- •1. Диаграммы использования
- •Invoice
- •2. Диаграмма классов
- •4. Диаграмма деятельности
- •Сущность – Вариант использования (use case)
- •Варианты отношения зависимости: расширение и включение Отношение расширения
- •Диаграмма классов
- •1. Диаграмма классов – основная логическая модель проектируемой системы
- •Диаграмма классов
- •2. Класс
- •2.1. Имя класса
- •2.2. Атрибуты класса
- •Кратность
- •2.3.Операции класса
- •1.. * 1
- •I j
- •3.2. N-арная ассоциация
- •3.3. Ассоциация-класс
- •3.4. Квалификатор
- •3.5. Обобщение
- •3.6. Множество обобщений
- •3.7. Агрегация
- •3.8. Композиция
- •1 1 1 1
- •1 2 1 1
- •3.9. Зависимость
- •3.10. Реализация
- •4. Интерфейс
- •IДатчик
- •5. Шаблон
- •5. Диаграмма композитной структуры (composite structure diagram)
- •6. Дополнительные диаграммы структуры
- •7. Диаграмма последовательности (sequence diagram)
I j
1..5 2..3
Рис. 28. Различные варианты изображения навигации и кратности у полюсов ассоциации
На рис. 28 все классы связаны бинарными ассоциациями.
Полюса ассоциаций для классов A, B, H, J имеют навигацию.
Полюса ассоциаций для классов C, D, G не имеют навигации.
Для полюсов ассоциаций классов E, F, I навигация не определена.
Исключающая ассоциация (Xor-association) Случай, когда из нескольких входящих ассоциаций в класс одновременно может быть реализована только одна.
Пример:
1 Физическое
Имеет
лицо
{order}
1 .. *
Счет в банке {XOR}
1 .. *
{order}
Имеет
1 Юридическое
лицо
Рис. 29. Графическое изображение исключающей ассоциации между тремя классами
На диаграмме классов исключающая навигация обозначается пунктирной линией.
3.2. N-арная ассоциация
N-арная ассоциация (n-ary association) – ассоциация, связывающая более двух классов.
Бинарная ассоциация есть частный случай N-арной ассоциации.
N-арная ассоциация (для N >= 3) обозначается ромбом.
Имя ассоциации записывается рядом с ромбом.
Пример 4-арной ассоциации (отношение «Игра») между классами «Футбольная команда», «Год», «День»
Футбольная
команда
+соперник 1
Игра
Год +сезон +встреча Дата
*
*
{ordered}
{ordered}
+соперник 1
Футбольная
команда
Рис. 30. Графическое изображение 4-арной ассоциации
Экземпляром ассоциации «Игра» может служить кортеж – <Зенит, Спартак, 17 июня, 2010 >
Все состоявшиеся игры упорядочены с помощью свойства {ordered}
3.3. Ассоциация-класс
Ассоциация-класс (association class) – элемент модели, который имеет свойства, как ассоциации, так и класса, и предназначенный для определения дополнительных свойств ассоциации в форме атрибутов и операций класса.
Ассоциация-класс имеет одно имя и характеристики, как класса, так и ассоциации.
Ассоциация-класс изображается в форме символа класса, присоединенного к пути ассоциации посредством пунктирной линии.
Футбольная +соперник-1 +соперник-2 Футбольная
команда1
1
команда
Игра
+встреча : Дата
+сезон : Год
+место : String
+результат : Integer[2]
{ordered}
Рис. 31. Графическое изображение ассоциации класса
Информация о конкретном экземпляре ассоциации класса «Игра» может быть записана в виде кортежа <Спартак, Зенит, игра : Игра>.
При этом для объектов игра : Игра задаются конкретные значения:
встреча = 17 июня;
сезон = 2011;
место = Москва
результат = <1, 2>