- •Алгоритмизация и программирование Проектирование программного обеспечения
- •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)
3.4. Квалификатор
Квалификатор (qualifier) – это атрибут полюса ассоциации, значение которого позволяет ограничить (выделить) один или несколько объектов класса, присоединенного к другому полюсу.
Квалификатор изображается в виде небольшого прямоугольника на полюсе ассоциации, примыкающего к прямоугольнику класса.
Внутри этого прямоугольника (или рядом с ним) указываются имена и, возможно, типы атрибутов квалификатора.
Описание квалифицирующего атрибута ассоциации имеет такой же синтаксис, что и описание обычного атрибута класса, (только оно не может содержать начального значения)
Банк Шахматная доска
номерСчета горизонталь: Горизонталь
вертикаль: Вертикаль
*1
0 .. 1 1
Человек Квадрат
а б
Рис 32. Графическое изображение квалификатора:
а – для ассоциации;
б – для композиции
Основное назначение квалификатора– снизить кратность противоположного полюса ассоциации.
Шахматная доска
горизонталь: Горизонталь
вертикаль: Вертикаль
Квалификатор 1
1
Квадрат
Рис 33. Вариант графического изображения квалификатора:
3.5. Обобщение
Обобщение ( generalization) – это отношение между двумя сущностями, одна из которых является частным (специализированным) случаем другой.
Работает механизм наследования (характеристики и ограничения общего класса передаются подклассу).
Класс-потомок обладает всеми свойствами и поведением класса-предка, а также может иметь дополнительные свойства и поведение, которые отсутствуют у класса-предка.
Отношения обобщения являются направленными (стрелка указывает на общий класс или класс-предок.
Прямоугольник
Класс-предок +имя: Sting
+цвет Заливки : Color
+высота : Interger = 5
+ширина : Interger
/площадь : Interger {readOnly}
Класс-потомок
Квадрат
+id{redefines имя}
+высота = 7
/ширина
а б
Рис. … Графическое изображение отношения в UML
а – свернутое представления класса;
б– развернутое представление класса
Атрибут id класса «Квадрат» переопределяет атрибут имя класса «Прямоугольник».
Атрибут «высота» класса «Квадрат» имеет по умолчанию значение 7 (вместо значения 5 в родительском классе)
Атрибут «ширина» в классе «Квадрат» является производным (т. к. равен атрибуту «высота»)
Атрибут «цветЗаливки» и «площадь» передается из родительского класса в дочерний класс за счет наследования.
Доп. определение: Отношение обобщения называют также отношением классификации или наследования
Отношение обобщения допускает, чтобы от одного класса-предка одновременно наследовали несколько классов-потомков.
Геометрическая фигура
Прямоугольник Окружность Треугольник
Геометрическая фигура
Прямоугольник Окружность Треугольник
Рис. 36. Варианты нотации отношений обобщения в UML для нескольких классов-потомков
В UML допускается, чтобы класс-потомок наследовал от нескольких классов предков (множественное наследование)
Растения Продукты питания
Яблоки
Рис. 37 . Пример множественного наследования классов
Иерархия отношения обобщения всегда должна быть ациклической.
Транзитивно
Таксономический