- •Учебный курс
- •Проблема: Как представить архитектуру программной системы?
- •Архитектура программной системы в нотации UML
- •Диаграмма классов — основная логическая модель проектируемой системы
- •Характеристики классификатора
- •Основные обозначения на диаграмме
- •Варианты графического изображения класса на диаграмме классов
- •Атрибут (attribute) класса
- •Вид видимости
- •Проблема интерпретации видимости в языка UML
- •Элементы записи атрибута
- •Элементы записи атрибута
- •Модификатор атрибута
- •Значения модификатора атрибута
- •Значения модификатора атрибута
- •Кратность
- •Примеры записи атрибутов
- •Операции класса
- •Формат записи операции класса
- •Параметры операции
- •Параметры операции
- •Параметры операции
- •Свойства операций
- •Предусловие (precondition) операции
- •Постусловие (postcondition) операции
- •Примеры записи операций:
- •Отношения на диаграмме классов
- •Ассоциация
- •Строка свойство (property string)
- •Строка свойство (property string)
- •Ассоциация с навигацией и эквивалентное ему представление класса с атрибутом
- •Варианты изображения навигации и кратности у концов ассоциации
- •Исключающая ассоциация между тремя классами
- •Пример тернарной ассоциации
- •Пример 4-арной ассоциации
- •Ассоциация класс (association class)
- •Примеры ассоциации класса и рефлексивной ассоциации
- •Обобщение (generalization)
- •Примеры отношения обобщения
- •Множественное наследование – в языке UML разрешено
- •Множество обобщения (generalization set)
- •Примеры ограничений на множество обобщения
- •Агрегация (aggregation)
- •Пример отношения агрегации
- •Композиция (composition)
- •Пример отношения композиции
- •Варианты обозначения композиции
- •Интерфейс (interface)
- •UML Profile for Software Development Processes
- •Квалификатор (qualifier)
- •Шаблон (template)
- •Самостоятельное задание №2
Множественное наследование – в языке UML разрешено
Множество обобщения (generalization set)
– элемент модели, экземпляры которого определяют коллекции подмножеств отношения обобщения
{complete, disjoint} — означает, что данное множество обобщения является покрывающим и его специальные классы не имеют общих экземпляров
{incomplete, disjoint} — означает, что данное множество обобщения не является покрывающим и его специальные классы не имеют общих экземпляров (предполагается по умолчанию)
{complete, overlapping} — означает, что данное множество обобщения является покрывающим и его специальные классы имеют общие экземпляры
{incomplete, overlapping} — означает, что данное множество обобщения не является покрывающим и его специальные классы имеют общие экземпляры
По умолчанию - {incomplete, disjoint}
Примеры ограничений на множество обобщения
Ч е л о в е к
{ c o m p le t e , d is jo in t } |
|
|
|
{ in c o m p le t e , o v e r la p p in g } |
||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
Ж е н щ и н а |
|
|
|
|
П р о г р а м м и с т |
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
М у ж ч и н а |
|
|
|
|
Р у к о в о д и т е л ь |
|
|
|
|
|
|
|
|
|
П р о е к т а |
|
|
||
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
Б и з н е с - а н а л и т и к |
|
||
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
|
|
Агрегация (aggregation)
– направленное отношение между двумя классами, предназначенное для представления ситуации, когда один из классов представляет собой некоторую сущность, которая включает в себя в качестве составных частей другие сущности
Класс-контейнер |
|
Класс-часть |
|
||
|
|
|
Пример отношения агрегации
Персональный
компьютер
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Системный |
|
Монитор |
|
|
Клавиатура |
|
Мышь |
||||||
блок |
|
|
|
|
|||||||||
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Композиция (composition)
или композитная агрегация предназначена для спецификации более сильной формы отношения "часть- целое", при которой с уничтожением объекта класса- контейнера уничтожаются и все объекты, являющимися его составными частями.
Класс-композит |
|
|
Класс-часть |
|
|
||
|
|
|
|
Пример отношения композиции
Окно программы
1 1 1 1
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
|
2 |
|
|
1 |
|
1 |
|
|||||
Заголовок |
|
Полоса |
|
|
Рабочая |
|
Главное |
||||||
|
прокрутки |
|
|
область |
|
меню |
|||||||
|
|
|
|
|
|
||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Варианты обозначения композиции
Интерфейс (interface)
– вид класса, который представляет собой объявление множества общедоступных характеристик и обязанностей.
т р е б у е м ы й |
п р е д о с т а в л я е м ы й |
и н т е р ф е й с |
и н т е р ф е й с |
С и г н а л Т р е в о г и |
|
|
|
Б е с к о н т а к т н ы й Д а т ч и к |
|
|
IД а т ч и к
|
|
|
|
|
|
|
|
< < in t e r f a c e > > |
|
|
|||||||
|
|
|
|
|
|
|
|
|
|||||||||
С и г н а л Т р е в о г и |
|
|
|
|
|
|
|
|
IД |
а т ч и к |
|
Б е с к о н т а к т н ы й Д а т ч и к |
|||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
в |
к л ю |
ч |
и т ь ( ) |
|
|
|||||
|
|
|
|
|
|
|
п |
р о ч |
и т а т ь ( ) |
|
|
||||||
|
|
UML Profile for Software Development Processes
Управляющий класс отвечает за координацию действий других классов. Этому классу посылают мало сообщений, а он рассылает много сообщений
Граничный класс располагается на границе системы с внешней средой.
Класс-сущность содержит информацию, которая хранится постоянно и не уничтожается с выключением системы