SlideShare a Scribd company logo
1 of 67
Учебный курс
Язык UML в анализе и проектировании
программных систем и бизнес-процессов
Лекция 9
Дополнительные диаграммы
языка UML 2
Автор:
Леоненков Александр Васильевич
кандидат технических наук,
старший научный сотрудник
Диаграмма пакетов
- предназначена для представления размещения элементов
модели в пакетах и спецификации зависимостей между
пакетами и их элементами
Пакет (package) – элемент модели, используемый для
группировки других элементов модели
Используется для представления моделей подсистем в виде
пакетов
Варианты изображения пакета
Простейшие Типы
Простейшие
Типы
Integer String
UnlimitedNatural
BooleanПростейшие
Типы
Простейшие
Типы
Integer
UnlimitedNatural
Boolean
String
Диаграмма пакетов с классом Автомобиль
package Автомобили
задняячасть:
Колесо[2]
e:
Двигатель
ось p
Автомобиль
Зависимость пакетов
Модель трех-уровневой архитектуры доступа к удаленной
базе данных
<<model>>
УровеньБизнес
Логики
<<model>>
Уровень
Данных
<<model>>
Уровень
Клиента
Импорт пакета (package import)
– направленное отношение между пакетами, при котором
члены одного пакета могут быть добавлены в пространство
имен другого пакета
Импорт пакета позволяет ссылаться только на
общедоступные члены импортируемого пакета в другом
пространстве имен, используя при этом
неквалифицированные имена
Концептуально импорт пакета эквивалентен импорту
элемента для каждого индивидуального элемента
импортируемого пространства имен, за исключением случая,
когда уже существует отдельно определенный импорт
элемента
Примеры импорта и доступа пакетов
Примеры импорта пакетов
Импорт элемента (element import)
– направленное отношение между импортирующим
пространством имен и отдельным элементом пакета, которое
позволяет ссылаться на этот элемент с использованием
неквалифицированного имени
Импорт элемента позволяет идентифицировать отдельный
элемент одного пакета в другом пакете посредством
добавления имени этого элемента или его псевдонима к
пространству имен импортирующего пакета
Импорт элемента можно представить в форме ссылки на
импортируемый элемент
Это значит, что в импортирующем пакете невозможно
изменить характеристики импортируемого элемента,
поскольку модифицировать импортируемый элемент можно
только в том пакете, которому он принадлежит или, другими
словами, членом которого он является
Примеры общедоступного и закрытого
импорта элементов
Импорт элемента изображается с использованием пунктирной
линии с открытой стрелкой, направленной из импортирующего
пространства имен к импортируемому элементу
Если видимость является общедоступной, то рядом с
пунктирной линией изображается стереотип «import»
Для указания закрытой видимости рядом с пунктирной
линией изображается стереотип «access»
Примеры общедоступного и закрытого
импорта пакетов и элементов
«access»
Вспомогательные
Элементы
Простейшие
Типы
Корзина
Интернет
Магазин«import»
«import»
Типы
«import»
Программа
Time
«datatype»
«datatype»
Integer
String
«datatype»
«access»
Пример импорта элемента с псевдонимом
Текстовый синтаксис имеет следующий вид:
‘{import’ <квалифицированное-имя> ‘}’ | ‘{access’
<квалифицированное-имя> ‘}’
Дополнительно может быть показано имя псевдоним:
‘{import’ <квалифицированное-имя> ‘ as ’ <псевдоним> ‘}’ |
‘{access’ <квалифицированное-имя> ‘as’ <псевдоним> ‘}’
ТипыФормы
«import»
«datatype»
Real
Double
Окружность
радиус:Double
Слияние пакетов (package merge)
– направленное отношение между двумя пакетами, один из
которых расширяет свое содержание посредством
добавления содержимого другого пакета
Цель Источник
«merge»
Концептуальное представление семантики
слияния пакетов
«merge»
A
B
A
Сливаемый
пакет
B
Принимаю-
щийпакет
B'
Результиру-
ющийпакет
Слияние
пакетов
«becomes»
Иллюстрация правил слияния пакетов
B
P
A
A
S
D
B
C
Q
A
R
A
«merge»
«merge»
«merge»
Результаты слияния пакетов
R
C
[Q::C]
A
[P::A@(Q::A@R::A)]
B
[P::B] A
[Q::A@S::A]
S
D
[S::D]
C
[Q::C]
B
[S::B]
Самостоятельное задание №10
Выполнить текущее тестирование: вопрос 20
Разработать диаграмму пакетов для ATM
Изобразить следующие пакеты: Банкомат, Банк.
Изобразить отношения между ними
Диаграмма объектов
(object diagram)
Диаграмма объектов (object diagram)
– диаграмма, которая служит для представления объектов и
отношений между ними в конкретный момент времени. Она
может рассматриваться как специальный случай диаграммы
классов или диаграммы коммуникации
Объект (object) является отдельным экземпляром класса,
который создается на этапе реализации модели или
выполнения программы
Имя объекта представляет собой строку текста, записанную в
следующем виде (БНФ):
<имя-объекта>::=[<собственное-имя-объекта>] | [:<имя-
класса> [‘,’<Имя-класса>]*].
Примеры графических изображений
объектов
о: C — для объекта
специфицировано
собственное имя объекта
и имя класса.
о — для объекта
специфицировано только
собственное имя объекта.
: C — для объекта
специфицировано только
имя класса.
к в а д р а т : П р я м о у г о л ь н и к
к в а д р а т
: П р я м о у г о л ь н и к
Примеры графических изображений
объектов
Примеры графических изображений
объектов
Связь (link)
- является экземпляром произвольной ассоциации, которая
обеспечивает канал для направленной передачи сообщений
между объектами
о т е ц
И в а н : Ч е л о в е к Е г о р : Ч е л о в е к
с ы н
Пример диаграммы объектов
Спецификация экземпляра (instance 
specification)
- является элементом модели, который представляет
описание произвольной сущности типа классификатора
Имя спецификации экземпляра представляет собой строку
текста, записанную в следующем виде (БНФ):
<имя-спецификации-экземпляра>::=[<собственное-имя-
спецификации-экземпляра>]  | [:<имя-класса> [‘,’<Имя-
класса>]*]
Вся запись имени спецификации экземпляра подчеркивается
Если указано <собственное-имя-спецификации-экземпляра>,
то оно должно начинаться со строчной буквы
При указании нескольких имен классификаторов их имена
отделяются запятыми
В записи имени спецификации экземпляра <собственное-имя-
спецификации-экземпляра> и <имя-класса> могут
отсутствовать одновременно – но эту возможность лучше не
использовать на практике
Слот (slot)
предназначен для представления того, что сущность,
моделируемая посредством спецификации экземпляра, имеет
конкретное значение или значения для некоторой своей
структурной характеристики
Представляется текстом в следующем формате (БНФ):
<слот>::=<имя-характеристики> [: <тип-характеристики>] 
‘=’ <спецификация-значения>
Отсутствие слота для некоторой характеристики в
спецификации экземпляра не означает, что представляемая
сущность не имеет этой характеристики, но означает только
лишь то, что эта характеристика не представляет интереса в
модели.
Примеры cлотов со значениями
м о й А д р е с : А д р е с
и м я У л и ц ы : S t r in g = " С а д о в а я "
н о м е р Д о м а : I n te g e r = 2 5
н о м е р К в а р т и р ы : In te g e r = 1 5
: К в а д р а т
в е р ш и н а = ( 1 , 1 0 )
с т о р о н ы = ( 2 5 , 1 0 )
ц в е т Г р а н и ц ы = ч е р н ы й
ц в е т З а л и в к и = б е л ы й
Значение экземпляра (instance value)
- является спецификацией значения, которое идентифицирует
некоторый экземпляр
и м я У л и ц ы : S tr in g
" С а д о в а я "
Самостоятельное задание №11
Выполнить текущее тестирование: вопросы
Разработать диаграмму объектов для ATM
Изобразить объекты, соответствующие ранее
разработанным классам
Изобразить отношения между ними
Диаграмма обзора
взаимодействия
(interaction overview
diagram)
Диаграмма обзора взаимодействия
–диаграмма, которая предназначена для представления
взаимодействия только в контексте потока управления в
некоторой агрегированной форме
Диаграммы обзора взаимодействия, вместо узлов действий и
объектов диаграмм деятельности, имеют фреймы, каждый из
которых может соответствовать взаимодействию или
использованию взаимодействия.
Альтернативные комбинированные фрагменты представляются
узлом решения и соответствующим узлом слияния.
Параллельные комбинированные фрагменты представляются
узлом разделения и соответствующим узлом соединения.
Комбинированные фрагменты типа Цикл представляются
простыми циклами.
Ветвление и слияния ветвлений на диаграммах обзора
взаимодействия должны быть должным образом вложенными.
Диаграммы обзора взаимодействия заключаются во фрейм,
аналогично другим видам диаграмм взаимодействия с тегом sd.
Пример
диаграммы
обзора
взаимодействия
банкомата
sd Диаграммаобзоравзаимодействиябанкомата
lifelines :Клиент,:Банкомат
ПредоставитьДоступ
("Карточкадействительная")
ref
ПолучитьНаличные
("Сумманепревышает
кредит")
ref
sd
:Банкомат:Клиент
вводПИН-кода()
sd
:Банкомат:Клиент
[ПИН-кодверный]
ПредоставитьМеню
("Опциибанкомата")
ref
ПолучитьСправкуref
[ПИН-кодневерный]
вводСуммы()
[выборснятияналичных]
[выборсправки]
Самостоятельное задание №12
Выполнить текущее тестирование: вопросы
Разработать диаграмму обзора взаимодействия для ATM
Изобразить необходимые фреймы:
Изобразить отношения между ними
Временная диаграмма
(timing diagram)
Временная диаграмма
– диаграмма взаимодействия, которая служит для представления
изменения состояния отдельных линий жизни или особенностей
синхронизации сообщений во времени
Линейная ось времени обычно изображается таким образом, что
текущее время увеличивается в направлении слева направо.
Линии жизни изображаются в отдельных секциях, которые
упорядочены по вертикали.
Линия жизни может перемещаться по диаграмме вверх и вниз, что
отражает изменение ее состояния
Линия жизни может быть изображена горизонтально с целью
изображения на ней отдельных состоя­ний или значений.
Метрическая ось времени может быть показана с засечками,
обозначающими интервалы времени, а в некоторых случаях —
дискретные моменты изменений
Время для всех линий жизни синхронизовано и течет одинаково.
На диаграмме могут быть показаны значения атрибутов и других
свойств линий жизни.
Линии жизни и значения на временной
диаграмме
Линии жизни на временной диаграмме изображаются в
отдельных секциях, слева от которых указываются их имена
На диаграмме также могут быть показаны значения
некоторого атрибута отдельной линии жизни как некоторая
функция времени
Значение представляется в форме специального символа и
указывается явно в форме текста
имялинии
жизни1
имялинии
жизни2
значение1 значение2
Сообщения, метки и состояния
Сообщения изображаются между линиями жизни, которые
располагаются вертикально
Метки являются графическим сокращением и используются в
том случае, когда соединяемые сообщением линии жизни
располагаются далеко друг от друга
Состояния классификатора или изменяемые значения
атрибута в форме вертикального списка
Имясостояния1
Имясостояния2
Имясостояния3
Имясостояния4
имя
метки
имя
метки
Первая форма временной диаграммы
Первая форма используется для представления изменения
состояний во времени для отдельной линии жизни
При этом изображаются события, которые являются причиной
изменения состояний
sd Доступсотрудника
ОжиданиеДоступа
ВозвратКарты
ОжиданиеКарты
Ожидание
:Сотрудник
ВводКода
OK{t..t+3}
{d..3*d}
0 1 2 t
d
Проход
Вторая форма временной диаграммы
Вторая форма временной диаграммы также используется для
представления изменения состояний для отдельной линии жизни
горизонтально во времени
При этом события, которые являются причиной изменения
состояний, не изображаются
Это наиболее компактная форма временной диаграммы, которая
часто используется для иллюстрации процесса функционирования
электронных устройств
sd Доступсотрудника
Ожидание
Доступа
Ожидание
Карты
Ожидание:Сотрудник
{d..3*d}
Проход
Третья форма временной диаграммы
Третья форма
временных диаграмм
используется для
изображения более
чем одной линии
жизни и сообщений
между ними
Эта форма
временной
диаграммы по своим
возможностям в
большой степени
соответствует
диаграмме
последовательности,
чем первые две
формы
sd Доступсотрудника
ОжиданиеДоступа
ОжиданиеКарты
Ожидание
:Сотрудник
ввестиКод предоставитьДоступ
{d..3*d}Проход
вернутьКарту
:Система
Контроля
НетКарты
ЕстьКарта
t=now
{t..t+3}
0 1 2 t
d
отперетьДверь
вставитьКарту
Самостоятельное задание №13
Выполнить текущее тестирование: вопросы
Разработать временную диаграмму для ATM
Изобразить линии жизни
Изобразить отношения между ними
Выполнить итоговое тестирование
Диаграмма композитной
структуры (composite
structure diagram)
Диаграмма композитной структуры
– диаграмма, которая изображает внутреннюю структуру
классификаторов таких, как класс, компонент или кооперация,
включая точки взаимодействия классификатора с другими
частями системы.
Внутренняя структура (internal structure) – структура
взаимодействующих элементов модели, которые создаются в
экземпляре содержащего их классификатора
Свойство (property) – множество экземпляров, которые
являются собственностью содержащего их экземпляра
классификатора
Часть (part)
свойство, которое является элементом внутренней структуры
композитного классификатора, в частном случае – класса
Синтаксис части в БНФ:
<имя-части>::= [<собственное-имя-части>] [: <имя-класса>]
[[<кратность>]] | [<имя-класса>],
где <собственное-имя-части> является именем экземпляра
класса и обычно записывается со строчной буквы,
<имя-класса> является именем соответствующего класса, от
которого инстанцируется данная часть или свойство
Кратность части может быть также показана в правом
верхнем углу прямоугольника части
Примеры изображения композитного класса
з а д н я я Ч а с т ь А в т о м о б и л ь
з а д н я я Ч а с т ь :
К о л е с о [2 ]
e : Д в и г а т е л ь
а : О с ь
К о л е с о Д в и г а т е л ь
О с ь
* *
12
е
А в т о м о б и л ь
2 1
А в т о м о б и л ь
k : К у з о в
1
А в т о м о б и л ь
e : Д в и г а т е л ь [ 1 ..2 ]
Соединитель (connector)
– отношение, которое обеспечивает взаимосвязь или
коммуникацию между двумя или более экземплярами
классификаторов, в частном случае – экземплярами классов
Соединитель изображается с использованием нотации для
ассоциации. Необязательная строка имени соединителя
должна удовлетворять следующему синтаксису:
<имя-соединителя>::= ( [ имя ] ‘:’ <имя-класса> ) | <имя>
где <имя> является собственным именем соединителя, а
<имя-ассоциации> является именем ассоциации или ее типом
Дополнительно выше или перед именем соединителя может
быть помещен стереотип в виде ключевого слова в угловых
кавычках
После или ниже имени соединителя может быть помещено
строка­свойство
Фрагменты композитной структуры для
класса Автомобиль
А в т о м о б и л ь
п е р е д н я я О с ь
п р а в о е П е р е д н е е : К о л е с о
з а д н я я О с ь
п р а в о е З а д н е е : К о л е с о
л е в о е П е р е д н е е : К о л е с о
л е в о е З а д н е е : К о л е с о
А в т о м о б и л ь
л е в а я С т о р о н а : К о л е с о [2 ]
о с ь
п р а в а я С т о р о н а : К о л е с о [2 ]
1 1
Порт (port)
– свойство классификатора, которое специфицирует
отдельную точку взаимодействия между этим
классификатором и его окружением или между
классификатором и его внутренними частями
p 1 [1 ]
Д в и г а т е л ь Д в и г а т е л ь
p 2 [4 ]
p 3 [1 ]
Д в и г а т е л ь
S 1
Нотация предоставляемого и требуемого
интерфейсов для порта класса
Предоставляемый интерфейс (provided interface) порта
характеризует запросы, которые могут быть переданы через
этот порт классу от его окружения
Требуемый интерфейс (required interface) порта
характеризует запросы, которые могут быть переданы от
класса к его окружению через этот порт
IТ р а н с м и с с и я IТ о п л и в о
p 1 [1 ]
Д в и г а т е л ь Д в и г а т е л ь
p 2 [1 ]
Пример композитной структуры класса
Автомобиль
А в т о м о б и л ь
з а д н я я С т о р о н а : К о л е с о [2 ] e : Д в и г а т е л ь
о с ь
k
а : А к к у м у л я т о р
n
m
g : Г е н е р а т о р
IТ о п л и в о
r
IЭ л П и т а н и е
p q t
s
fc
п р и в о д
Кооперация (collaboration)
– классификатор, предназначенный для описания некоторой
структуры элементов или ролей, которые выполняют
специализированные функции и совместно производят
желаемую функциональность
Роль кооперации (collaboration role) специфицирует требуемое
множество характеристик, которые должен иметь
соответствующий участник кооперации
Внутренняя структура кооперации
Наблюдатель
Н а б л ю д а т е л ь
н а б л ю д а т е л ь :
И н д и к а т о р З а г р у з к и
с у б ъ е к т :
О ч е р е д ь В ы з о в о в
О ч е р е д ь В ы з о в о в И н д и к а т о р З а г р у з к и
Н а б л ю д а т е л ь
с у б ъ е к т н а б л ю д а т е л ь
Применение кооперации (collaboration use)
- представляет собой описание реализации кооперации в
форме множества взаимодействующих элементов
посредством связывания этих элементов с ролями данной
кооперации.
О к н о
« r e p r e s e n ts »
о т о б р а з и т ь ( )
:Р е а л и з а ц и я П о в е д е н и я
Н а Э к р а н е М о н и т о р а
П р о д а ж а
п р о д а в е ц :
У ч а с т н и к С д е л к и
п о к у п а т е л ь :
У ч а с т н и к С д е л к и
К о м п а н и я
У ч а с т н и к С д е л к и
Ф и з и ч е с к о е
Л и ц о
Два применения кооперации Продажа
п р о и з в о д и т е л ь :
К о м п а н и я
о п т о в а я п р о д а ж а :
П р о д а ж а
д и с т р и б ь ю т о р :
К о м п а н и я
п о к у п а т е л ьп р о д а в е ц
д и с т р и б ь ю т о р :
К о м п а н и я
р о з н и ч н а я п р о д а ж а :
П р о д а ж а
п о т р е б и т е л ь :
Ф и з и ч е с к о е Л и ц о
п о к у п а т е л ьп р о д а в е ц
П р о д а ж а Ч е р е з П о с р е д н и к о в
п о к у п а т е л ь
д и с т р и б ь ю т о р :
К о м п а н и я
п о т р е б и т е л ь :
Ф и з и ч е с к о е Л и ц о
о п т о в а я п р о д а ж а :
П р о д а ж а
р о з н и ч н а я п р о д а ж а :
П р о д а ж а
п р о и з в о д и т е л ь :
К о м п а н и я
п о к у п а т е л ь
п р о д а в е ц
п р о д а в е ц
Шаблон кооперации
Шаблон кооперации является параметризованной
кооперацией, которой соответствует целое семейство
коопераций
Параметрами шаблона кооперации являются типы ее частей
или ролей
Отдельная кооперация этого семейства может быть получена
связыванием параметров шаблона кооперации с конкретными
классами
Шаблоны коопераций находят практическое применение при
рассмотрении стандартных паттернов проектирования.
Шаблон кооперации паттерна Наблюдатель
и его связывание
П а т т е р н Н а б л ю д а т е л ь
с у б ъ е к т : Т и п С у б ъ е к т а н а б л ю д а т е л ь : Т и п Н а б л ю д а т е л я
Т и п С у б ъ е к т а , Т и п Н а б л ю д а т е л я
П а т т е р н Н а б л ю д а т е л ь < Т и п С у б ъ е к т а - > О ч е р е д ь З в о н к о в , Т и п Н а б л ю д а т е л я
- > И н д и к а т о р З а г р у з к и >
Н а б л ю д а т е л ь
Альтернативное связывание кооперации
Наблюдатель с шаблоном кооперации
П а т т е р н Н а б л ю д а т е л ь
с у б ъ е к т : Т и п С у б ъ е к т а н а б л ю д а т е л ь : Т и п Н а б л ю д а т е л я
Т и п С у б ъ е к т а , Т и п Н а б л ю д а т е л я
< < b in d > >
< Т и п С у б ъ е к т а - > О ч е р е д ь З в о н к о в ,
Т и п Н а б л ю д а т е л я - > И н д и к а т о р З а г р у з к и >
Н а б л ю д а т е л ь
Самостоятельное задание №3
Выполнить текущее тестирование: вопросы
Разработать диаграмму композитной структуры для ATM
Изобразить следующий композитный класс: Клиент
банкомата, Банк.
Изобразить следующие варианты использования:
Изобразить отношения между ними
Диаграмма
коммуникации
(communication diagram)
Диаграмма коммуникации
– диаграмма, которая предназначена для представления
взаимодействия в контексте внутренней архитектуры
системы и передаваемых сообщений
Диаграмма коммуникации имеет вид графа, вершинами
которого являются части композитного класса или роли
взаимодействия, изображенные в виде прямоугольников
Эти вершины соответствуют линиям жизни и изображаются
в своем структурном контексте
Ребрами графа являются связи, по которым проходят
маршруты коммуникации
Линии жизни могут обмениваться сообщениями, которые
изображаются в виде небольших стрелок с некоторым
именем, расположенных возле линий связей
Изображение линий жизни на диаграмме
коммуникации
Информация, идентифицирующая линию жизни на диаграмме
коммуникации, изображается внутри прямоугольника в
следующем формате (БНФ):
<идентификатор-линии-жизни>::= ([<имя-
роли> [‘[‘<селектор>‘]’] ] [:<имя-класса>]
имяроли:Имя
класса
:Заказ
счетКлиента[no]:
Счет
Связь (link) и Сообщение (message)
- является экземпляром произвольной ассоциации, которая
обеспечивает канал для направленной передачи сообщений
между линиями жизни
Сообщение изображается в форме символа стрелки рядом с
линией связи, которое передается в указанном стрелкой
направлении по данной связи
Говорят, что стрелка сообщения специфицирует направление
коммуникации
Рядом со стрелкой указывается идентификатор сообщения,
записанный в специальном формате
:Заказ
счетКлиента[no]:
Счет
1:оплатить()
Формат записи сообщений
Каждое сообщение может быть помечено строкой текста,
которая имеет следующий синтаксис (БНФ):
<идентификатор-сообщения>::= [<предшествующие-
сообщения>’/’] <выражение-последовательности> ‘:’
[<атрибут>‘=’] <имя-операции-или-сигнала> [‘(‘[<аргумент>
[‘,’<аргумент>]* ‘)’] [‘:’ <возвращаемое-значение>],
где <аргумент> ::= ([<имя-параметра>‘=’] <значение-
аргумента>) | (<атрибут> ‘=’ <имя-out-параметра> [‘:’
<значение-аргумента>]|‘ -’
<предшествующие-сообщения> — разделенные запятыми
номера сообщений, после которых следует наклонная черта
(“слеш”), например, 3, 4/
Формат записи сообщений
<выражение-последовательности> — разделенный точками
список отдельных термов последовательностей, после
которого следует двоеточие. Каждый из термов
последовательности имеет следующий синтаксис: [<целое-
число>|<имя>] [<рекуррентность>].
<целое-число> указывает на порядковый номер сообщения в
процедурной последовательности верхнего уровня
<имя> в форме буквы некоторого алфавита используется для
спецификации параллельных потоков или нитей управления
<рекуррентность>::=‘*’‘[‘<предложение-итерация>‘]’ для
записи итеративного выполнения соответствующего
выражения
<рекуррентность>::=‘[‘<предложение-условие>‘]’ для записи
ветвления
Примеры записи сообщений на
диаграмме коммуникации
Самостоятельное задание №4
Выполнить текущее тестирование: вопрос 19
Разработать диаграмму коммуникации для варианта
использования ATM «Снятие наличных по кредитной
карточке»
Изобразить линии жизни ранее определенных классов.
Изобразить связи между ними.
Изобразить последовательность сообщений между
линиями жизни.

More Related Content

What's hot

Collaboration diagram
Collaboration diagramCollaboration diagram
Collaboration diagramaepetelin
 
Activity diagram
Activity diagramActivity diagram
Activity diagramaepetelin
 
Component diagram
Component diagramComponent diagram
Component diagramaepetelin
 
Создание графического интерфейса пользователя мобильных Android приложений (ч...
Создание графического интерфейса пользователя мобильных Android приложений (ч...Создание графического интерфейса пользователя мобильных Android приложений (ч...
Создание графического интерфейса пользователя мобильных Android приложений (ч...metaform
 
Class diagram
Class diagramClass diagram
Class diagramaepetelin
 
Sequence diagram
Sequence diagramSequence diagram
Sequence diagramaepetelin
 
Работа с БД в Java
Работа с БД в JavaРабота с БД в Java
Работа с БД в Javametaform
 
Классы и объекты в Java
Классы и объекты в JavaКлассы и объекты в Java
Классы и объекты в Javametaform
 
Классы и объекты в Java
Классы и объекты в JavaКлассы и объекты в Java
Классы и объекты в Javametaform
 
Глава 2: Среда разработки NetBeans
Глава 2: Среда разработки NetBeansГлава 2: Среда разработки NetBeans
Глава 2: Среда разработки NetBeansmetaform
 
Диаграмма вариантов использования
Диаграмма вариантов использованияДиаграмма вариантов использования
Диаграмма вариантов использованияDEVTYPE
 
Модифицируемость программных систем
Модифицируемость программных системМодифицируемость программных систем
Модифицируемость программных системDima Dzuba
 
работа с потоками ввода вывода
работа с потоками ввода выводаработа с потоками ввода вывода
работа с потоками ввода выводаmetaform
 
Statechart diagram
Statechart diagramStatechart diagram
Statechart diagramaepetelin
 
язык Uml. диаграмма использования. (19)
язык Uml. диаграмма использования. (19)язык Uml. диаграмма использования. (19)
язык Uml. диаграмма использования. (19)romachka_pole
 
МАПО Лекция 14 UML Use Case
МАПО Лекция 14 UML Use CaseМАПО Лекция 14 UML Use Case
МАПО Лекция 14 UML Use CaseОлег Гудаев
 
C++ осень 2013 лекция 8
C++ осень 2013 лекция 8C++ осень 2013 лекция 8
C++ осень 2013 лекция 8Technopark
 
Лекция 6_принципы ООП : инкапсуляция, наследование
Лекция 6_принципы ООП : инкапсуляция, наследованиеЛекция 6_принципы ООП : инкапсуляция, наследование
Лекция 6_принципы ООП : инкапсуляция, наследованиеmetaform
 
создание живых сайтов
создание живых сайтовсоздание живых сайтов
создание живых сайтовmetaform
 
Проверка для DMN: проектирование мультиагентной интеллектуальной системы
Проверка для DMN: проектирование мультиагентной интеллектуальной системыПроверка для DMN: проектирование мультиагентной интеллектуальной системы
Проверка для DMN: проектирование мультиагентной интеллектуальной системыCEE-SEC(R)
 

What's hot (20)

Collaboration diagram
Collaboration diagramCollaboration diagram
Collaboration diagram
 
Activity diagram
Activity diagramActivity diagram
Activity diagram
 
Component diagram
Component diagramComponent diagram
Component diagram
 
Создание графического интерфейса пользователя мобильных Android приложений (ч...
Создание графического интерфейса пользователя мобильных Android приложений (ч...Создание графического интерфейса пользователя мобильных Android приложений (ч...
Создание графического интерфейса пользователя мобильных Android приложений (ч...
 
Class diagram
Class diagramClass diagram
Class diagram
 
Sequence diagram
Sequence diagramSequence diagram
Sequence diagram
 
Работа с БД в Java
Работа с БД в JavaРабота с БД в Java
Работа с БД в Java
 
Классы и объекты в Java
Классы и объекты в JavaКлассы и объекты в Java
Классы и объекты в Java
 
Классы и объекты в Java
Классы и объекты в JavaКлассы и объекты в Java
Классы и объекты в Java
 
Глава 2: Среда разработки NetBeans
Глава 2: Среда разработки NetBeansГлава 2: Среда разработки NetBeans
Глава 2: Среда разработки NetBeans
 
Диаграмма вариантов использования
Диаграмма вариантов использованияДиаграмма вариантов использования
Диаграмма вариантов использования
 
Модифицируемость программных систем
Модифицируемость программных системМодифицируемость программных систем
Модифицируемость программных систем
 
работа с потоками ввода вывода
работа с потоками ввода выводаработа с потоками ввода вывода
работа с потоками ввода вывода
 
Statechart diagram
Statechart diagramStatechart diagram
Statechart diagram
 
язык Uml. диаграмма использования. (19)
язык Uml. диаграмма использования. (19)язык Uml. диаграмма использования. (19)
язык Uml. диаграмма использования. (19)
 
МАПО Лекция 14 UML Use Case
МАПО Лекция 14 UML Use CaseМАПО Лекция 14 UML Use Case
МАПО Лекция 14 UML Use Case
 
C++ осень 2013 лекция 8
C++ осень 2013 лекция 8C++ осень 2013 лекция 8
C++ осень 2013 лекция 8
 
Лекция 6_принципы ООП : инкапсуляция, наследование
Лекция 6_принципы ООП : инкапсуляция, наследованиеЛекция 6_принципы ООП : инкапсуляция, наследование
Лекция 6_принципы ООП : инкапсуляция, наследование
 
создание живых сайтов
создание живых сайтовсоздание живых сайтов
создание живых сайтов
 
Проверка для DMN: проектирование мультиагентной интеллектуальной системы
Проверка для DMN: проектирование мультиагентной интеллектуальной системыПроверка для DMN: проектирование мультиагентной интеллектуальной системы
Проверка для DMN: проектирование мультиагентной интеллектуальной системы
 

Similar to Диаграммы композитной структуры, коммуникации и пакетов

C++ осень 2012 лекция 6
C++ осень 2012 лекция 6C++ осень 2012 лекция 6
C++ осень 2012 лекция 6Technopark
 
Мировые информационные ресурсы. Лекция 4
Мировые информационные ресурсы. Лекция 4Мировые информационные ресурсы. Лекция 4
Мировые информационные ресурсы. Лекция 4Dmitriy Krukov
 
C++ осень 2013 лекция 7
C++ осень 2013 лекция 7C++ осень 2013 лекция 7
C++ осень 2013 лекция 7Technopark
 
LMS Moodle с точки зрения программиста
LMS Moodle с точки зрения программистаLMS Moodle с точки зрения программиста
LMS Moodle с точки зрения программистаCEE-SEC(R)
 
паттерны программирования
паттерны программированияпаттерны программирования
паттерны программированияguestfc8ae0
 
C# Web. Занятие 06.
C# Web. Занятие 06.C# Web. Занятие 06.
C# Web. Занятие 06.Igor Shkulipa
 
Cradle. Знакомство с Demo проектом
Cradle. Знакомство с Demo проектомCradle. Знакомство с Demo проектом
Cradle. Знакомство с Demo проектомYulia Madorskaya
 

Similar to Диаграммы композитной структуры, коммуникации и пакетов (20)

С учебы
С учебыС учебы
С учебы
 
Лекция 2. UML (static logical model)
Лекция 2. UML (static logical model)Лекция 2. UML (static logical model)
Лекция 2. UML (static logical model)
 
C++ осень 2012 лекция 6
C++ осень 2012 лекция 6C++ осень 2012 лекция 6
C++ осень 2012 лекция 6
 
Расширение библиотеки Slick
Расширение библиотеки SlickРасширение библиотеки Slick
Расширение библиотеки Slick
 
Мировые информационные ресурсы. Лекция 4
Мировые информационные ресурсы. Лекция 4Мировые информационные ресурсы. Лекция 4
Мировые информационные ресурсы. Лекция 4
 
Лекция #7. Django ORM
Лекция #7. Django ORMЛекция #7. Django ORM
Лекция #7. Django ORM
 
Uml
UmlUml
Uml
 
C++ осень 2013 лекция 7
C++ осень 2013 лекция 7C++ осень 2013 лекция 7
C++ осень 2013 лекция 7
 
Нотация UML / UML Notation
Нотация UML / UML NotationНотация UML / UML Notation
Нотация UML / UML Notation
 
лек5 6
лек5 6лек5 6
лек5 6
 
LMS Moodle с точки зрения программиста
LMS Moodle с точки зрения программистаLMS Moodle с точки зрения программиста
LMS Moodle с точки зрения программиста
 
UML Glossary
UML GlossaryUML Glossary
UML Glossary
 
Uml Glossary
Uml GlossaryUml Glossary
Uml Glossary
 
лек13 3
лек13 3лек13 3
лек13 3
 
Grails & Groovy
Grails & GroovyGrails & Groovy
Grails & Groovy
 
паттерны программирования
паттерны программированияпаттерны программирования
паттерны программирования
 
C# Web. Занятие 06.
C# Web. Занятие 06.C# Web. Занятие 06.
C# Web. Занятие 06.
 
Cradle. Знакомство с Demo проектом
Cradle. Знакомство с Demo проектомCradle. Знакомство с Demo проектом
Cradle. Знакомство с Demo проектом
 
Babich Presentation
Babich PresentationBabich Presentation
Babich Presentation
 
Articulate Studio 09
Articulate Studio 09Articulate Studio 09
Articulate Studio 09
 

More from DEVTYPE

Рукописные лекции по линейной алгебре
Рукописные лекции по линейной алгебреРукописные лекции по линейной алгебре
Рукописные лекции по линейной алгебреDEVTYPE
 
1.4 Точечные оценки и их свойства
1.4 Точечные оценки и их свойства1.4 Точечные оценки и их свойства
1.4 Точечные оценки и их свойстваDEVTYPE
 
1.3 Описательная статистика
1.3 Описательная статистика1.3 Описательная статистика
1.3 Описательная статистикаDEVTYPE
 
1.2 Выборка. Выборочное пространство
1.2 Выборка. Выборочное пространство1.2 Выборка. Выборочное пространство
1.2 Выборка. Выборочное пространствоDEVTYPE
 
Continuity and Uniform Continuity
Continuity and Uniform ContinuityContinuity and Uniform Continuity
Continuity and Uniform ContinuityDEVTYPE
 
Coin Change Problem
Coin Change ProblemCoin Change Problem
Coin Change ProblemDEVTYPE
 
Recurrences
RecurrencesRecurrences
RecurrencesDEVTYPE
 
D-кучи и их применение
D-кучи и их применениеD-кучи и их применение
D-кучи и их применениеDEVTYPE
 
Диаграммы Юнга, плоские разбиения и знакочередующиеся матрицы
Диаграммы Юнга, плоские разбиения и знакочередующиеся матрицыДиаграммы Юнга, плоские разбиения и знакочередующиеся матрицы
Диаграммы Юнга, плоские разбиения и знакочередующиеся матрицыDEVTYPE
 
ЖАДНЫЕ АЛГОРИТМЫ
ЖАДНЫЕ АЛГОРИТМЫ ЖАДНЫЕ АЛГОРИТМЫ
ЖАДНЫЕ АЛГОРИТМЫ DEVTYPE
 
Скорость роста функций
Скорость роста функцийСкорость роста функций
Скорость роста функцийDEVTYPE
 
Asymptotic Growth of Functions
Asymptotic Growth of FunctionsAsymptotic Growth of Functions
Asymptotic Growth of FunctionsDEVTYPE
 
Кучи
КучиКучи
КучиDEVTYPE
 
Кодирование Хаффмана
Кодирование ХаффманаКодирование Хаффмана
Кодирование ХаффманаDEVTYPE
 
Жадные алгоритмы: введение
Жадные алгоритмы: введениеЖадные алгоритмы: введение
Жадные алгоритмы: введениеDEVTYPE
 
Разбор задач по дискретной вероятности
Разбор задач по дискретной вероятностиРазбор задач по дискретной вероятности
Разбор задач по дискретной вероятностиDEVTYPE
 
Разбор задач модуля "Теория графов ll"
Разбор задач модуля "Теория графов ll"Разбор задач модуля "Теория графов ll"
Разбор задач модуля "Теория графов ll"DEVTYPE
 
Наибольший общий делитель
Наибольший общий делительНаибольший общий делитель
Наибольший общий делительDEVTYPE
 
Числа Фибоначчи
Числа ФибоначчиЧисла Фибоначчи
Числа ФибоначчиDEVTYPE
 
О-символика
О-символикаО-символика
О-символикаDEVTYPE
 

More from DEVTYPE (20)

Рукописные лекции по линейной алгебре
Рукописные лекции по линейной алгебреРукописные лекции по линейной алгебре
Рукописные лекции по линейной алгебре
 
1.4 Точечные оценки и их свойства
1.4 Точечные оценки и их свойства1.4 Точечные оценки и их свойства
1.4 Точечные оценки и их свойства
 
1.3 Описательная статистика
1.3 Описательная статистика1.3 Описательная статистика
1.3 Описательная статистика
 
1.2 Выборка. Выборочное пространство
1.2 Выборка. Выборочное пространство1.2 Выборка. Выборочное пространство
1.2 Выборка. Выборочное пространство
 
Continuity and Uniform Continuity
Continuity and Uniform ContinuityContinuity and Uniform Continuity
Continuity and Uniform Continuity
 
Coin Change Problem
Coin Change ProblemCoin Change Problem
Coin Change Problem
 
Recurrences
RecurrencesRecurrences
Recurrences
 
D-кучи и их применение
D-кучи и их применениеD-кучи и их применение
D-кучи и их применение
 
Диаграммы Юнга, плоские разбиения и знакочередующиеся матрицы
Диаграммы Юнга, плоские разбиения и знакочередующиеся матрицыДиаграммы Юнга, плоские разбиения и знакочередующиеся матрицы
Диаграммы Юнга, плоские разбиения и знакочередующиеся матрицы
 
ЖАДНЫЕ АЛГОРИТМЫ
ЖАДНЫЕ АЛГОРИТМЫ ЖАДНЫЕ АЛГОРИТМЫ
ЖАДНЫЕ АЛГОРИТМЫ
 
Скорость роста функций
Скорость роста функцийСкорость роста функций
Скорость роста функций
 
Asymptotic Growth of Functions
Asymptotic Growth of FunctionsAsymptotic Growth of Functions
Asymptotic Growth of Functions
 
Кучи
КучиКучи
Кучи
 
Кодирование Хаффмана
Кодирование ХаффманаКодирование Хаффмана
Кодирование Хаффмана
 
Жадные алгоритмы: введение
Жадные алгоритмы: введениеЖадные алгоритмы: введение
Жадные алгоритмы: введение
 
Разбор задач по дискретной вероятности
Разбор задач по дискретной вероятностиРазбор задач по дискретной вероятности
Разбор задач по дискретной вероятности
 
Разбор задач модуля "Теория графов ll"
Разбор задач модуля "Теория графов ll"Разбор задач модуля "Теория графов ll"
Разбор задач модуля "Теория графов ll"
 
Наибольший общий делитель
Наибольший общий делительНаибольший общий делитель
Наибольший общий делитель
 
Числа Фибоначчи
Числа ФибоначчиЧисла Фибоначчи
Числа Фибоначчи
 
О-символика
О-символикаО-символика
О-символика
 

Диаграммы композитной структуры, коммуникации и пакетов

  • 1. Учебный курс Язык UML в анализе и проектировании программных систем и бизнес-процессов Лекция 9 Дополнительные диаграммы языка UML 2 Автор: Леоненков Александр Васильевич кандидат технических наук, старший научный сотрудник
  • 2. Диаграмма пакетов - предназначена для представления размещения элементов модели в пакетах и спецификации зависимостей между пакетами и их элементами Пакет (package) – элемент модели, используемый для группировки других элементов модели Используется для представления моделей подсистем в виде пакетов
  • 3. Варианты изображения пакета Простейшие Типы Простейшие Типы Integer String UnlimitedNatural BooleanПростейшие Типы Простейшие Типы Integer UnlimitedNatural Boolean String
  • 4. Диаграмма пакетов с классом Автомобиль package Автомобили задняячасть: Колесо[2] e: Двигатель ось p Автомобиль
  • 5. Зависимость пакетов Модель трех-уровневой архитектуры доступа к удаленной базе данных <<model>> УровеньБизнес Логики <<model>> Уровень Данных <<model>> Уровень Клиента
  • 6. Импорт пакета (package import) – направленное отношение между пакетами, при котором члены одного пакета могут быть добавлены в пространство имен другого пакета Импорт пакета позволяет ссылаться только на общедоступные члены импортируемого пакета в другом пространстве имен, используя при этом неквалифицированные имена Концептуально импорт пакета эквивалентен импорту элемента для каждого индивидуального элемента импортируемого пространства имен, за исключением случая, когда уже существует отдельно определенный импорт элемента
  • 7. Примеры импорта и доступа пакетов
  • 8.
  • 10. Импорт элемента (element import) – направленное отношение между импортирующим пространством имен и отдельным элементом пакета, которое позволяет ссылаться на этот элемент с использованием неквалифицированного имени Импорт элемента позволяет идентифицировать отдельный элемент одного пакета в другом пакете посредством добавления имени этого элемента или его псевдонима к пространству имен импортирующего пакета Импорт элемента можно представить в форме ссылки на импортируемый элемент Это значит, что в импортирующем пакете невозможно изменить характеристики импортируемого элемента, поскольку модифицировать импортируемый элемент можно только в том пакете, которому он принадлежит или, другими словами, членом которого он является
  • 11. Примеры общедоступного и закрытого импорта элементов Импорт элемента изображается с использованием пунктирной линии с открытой стрелкой, направленной из импортирующего пространства имен к импортируемому элементу Если видимость является общедоступной, то рядом с пунктирной линией изображается стереотип «import» Для указания закрытой видимости рядом с пунктирной линией изображается стереотип «access»
  • 12. Примеры общедоступного и закрытого импорта пакетов и элементов «access» Вспомогательные Элементы Простейшие Типы Корзина Интернет Магазин«import» «import» Типы «import» Программа Time «datatype» «datatype» Integer String «datatype» «access»
  • 13. Пример импорта элемента с псевдонимом Текстовый синтаксис имеет следующий вид: ‘{import’ <квалифицированное-имя> ‘}’ | ‘{access’ <квалифицированное-имя> ‘}’ Дополнительно может быть показано имя псевдоним: ‘{import’ <квалифицированное-имя> ‘ as ’ <псевдоним> ‘}’ | ‘{access’ <квалифицированное-имя> ‘as’ <псевдоним> ‘}’ ТипыФормы «import» «datatype» Real Double Окружность радиус:Double
  • 14. Слияние пакетов (package merge) – направленное отношение между двумя пакетами, один из которых расширяет свое содержание посредством добавления содержимого другого пакета Цель Источник «merge»
  • 15. Концептуальное представление семантики слияния пакетов «merge» A B A Сливаемый пакет B Принимаю- щийпакет B' Результиру- ющийпакет Слияние пакетов «becomes»
  • 16. Иллюстрация правил слияния пакетов B P A A S D B C Q A R A «merge» «merge» «merge»
  • 18. Самостоятельное задание №10 Выполнить текущее тестирование: вопрос 20 Разработать диаграмму пакетов для ATM Изобразить следующие пакеты: Банкомат, Банк. Изобразить отношения между ними
  • 20. Диаграмма объектов (object diagram) – диаграмма, которая служит для представления объектов и отношений между ними в конкретный момент времени. Она может рассматриваться как специальный случай диаграммы классов или диаграммы коммуникации Объект (object) является отдельным экземпляром класса, который создается на этапе реализации модели или выполнения программы Имя объекта представляет собой строку текста, записанную в следующем виде (БНФ): <имя-объекта>::=[<собственное-имя-объекта>] | [:<имя- класса> [‘,’<Имя-класса>]*].
  • 21. Примеры графических изображений объектов о: C — для объекта специфицировано собственное имя объекта и имя класса. о — для объекта специфицировано только собственное имя объекта. : C — для объекта специфицировано только имя класса. к в а д р а т : П р я м о у г о л ь н и к к в а д р а т : П р я м о у г о л ь н и к
  • 24. Связь (link) - является экземпляром произвольной ассоциации, которая обеспечивает канал для направленной передачи сообщений между объектами о т е ц И в а н : Ч е л о в е к Е г о р : Ч е л о в е к с ы н
  • 26. Спецификация экземпляра (instance  specification) - является элементом модели, который представляет описание произвольной сущности типа классификатора Имя спецификации экземпляра представляет собой строку текста, записанную в следующем виде (БНФ): <имя-спецификации-экземпляра>::=[<собственное-имя- спецификации-экземпляра>]  | [:<имя-класса> [‘,’<Имя- класса>]*] Вся запись имени спецификации экземпляра подчеркивается Если указано <собственное-имя-спецификации-экземпляра>, то оно должно начинаться со строчной буквы При указании нескольких имен классификаторов их имена отделяются запятыми В записи имени спецификации экземпляра <собственное-имя- спецификации-экземпляра> и <имя-класса> могут отсутствовать одновременно – но эту возможность лучше не использовать на практике
  • 27. Слот (slot) предназначен для представления того, что сущность, моделируемая посредством спецификации экземпляра, имеет конкретное значение или значения для некоторой своей структурной характеристики Представляется текстом в следующем формате (БНФ): <слот>::=<имя-характеристики> [: <тип-характеристики>]  ‘=’ <спецификация-значения> Отсутствие слота для некоторой характеристики в спецификации экземпляра не означает, что представляемая сущность не имеет этой характеристики, но означает только лишь то, что эта характеристика не представляет интереса в модели.
  • 28. Примеры cлотов со значениями м о й А д р е с : А д р е с и м я У л и ц ы : S t r in g = " С а д о в а я " н о м е р Д о м а : I n te g e r = 2 5 н о м е р К в а р т и р ы : In te g e r = 1 5 : К в а д р а т в е р ш и н а = ( 1 , 1 0 ) с т о р о н ы = ( 2 5 , 1 0 ) ц в е т Г р а н и ц ы = ч е р н ы й ц в е т З а л и в к и = б е л ы й
  • 29. Значение экземпляра (instance value) - является спецификацией значения, которое идентифицирует некоторый экземпляр и м я У л и ц ы : S tr in g " С а д о в а я "
  • 30. Самостоятельное задание №11 Выполнить текущее тестирование: вопросы Разработать диаграмму объектов для ATM Изобразить объекты, соответствующие ранее разработанным классам Изобразить отношения между ними
  • 32. Диаграмма обзора взаимодействия –диаграмма, которая предназначена для представления взаимодействия только в контексте потока управления в некоторой агрегированной форме Диаграммы обзора взаимодействия, вместо узлов действий и объектов диаграмм деятельности, имеют фреймы, каждый из которых может соответствовать взаимодействию или использованию взаимодействия. Альтернативные комбинированные фрагменты представляются узлом решения и соответствующим узлом слияния. Параллельные комбинированные фрагменты представляются узлом разделения и соответствующим узлом соединения. Комбинированные фрагменты типа Цикл представляются простыми циклами. Ветвление и слияния ветвлений на диаграммах обзора взаимодействия должны быть должным образом вложенными. Диаграммы обзора взаимодействия заключаются во фрейм, аналогично другим видам диаграмм взаимодействия с тегом sd.
  • 34. Самостоятельное задание №12 Выполнить текущее тестирование: вопросы Разработать диаграмму обзора взаимодействия для ATM Изобразить необходимые фреймы: Изобразить отношения между ними
  • 36. Временная диаграмма – диаграмма взаимодействия, которая служит для представления изменения состояния отдельных линий жизни или особенностей синхронизации сообщений во времени Линейная ось времени обычно изображается таким образом, что текущее время увеличивается в направлении слева направо. Линии жизни изображаются в отдельных секциях, которые упорядочены по вертикали. Линия жизни может перемещаться по диаграмме вверх и вниз, что отражает изменение ее состояния Линия жизни может быть изображена горизонтально с целью изображения на ней отдельных состоя­ний или значений. Метрическая ось времени может быть показана с засечками, обозначающими интервалы времени, а в некоторых случаях — дискретные моменты изменений Время для всех линий жизни синхронизовано и течет одинаково. На диаграмме могут быть показаны значения атрибутов и других свойств линий жизни.
  • 37. Линии жизни и значения на временной диаграмме Линии жизни на временной диаграмме изображаются в отдельных секциях, слева от которых указываются их имена На диаграмме также могут быть показаны значения некоторого атрибута отдельной линии жизни как некоторая функция времени Значение представляется в форме специального символа и указывается явно в форме текста имялинии жизни1 имялинии жизни2 значение1 значение2
  • 38. Сообщения, метки и состояния Сообщения изображаются между линиями жизни, которые располагаются вертикально Метки являются графическим сокращением и используются в том случае, когда соединяемые сообщением линии жизни располагаются далеко друг от друга Состояния классификатора или изменяемые значения атрибута в форме вертикального списка Имясостояния1 Имясостояния2 Имясостояния3 Имясостояния4 имя метки имя метки
  • 39. Первая форма временной диаграммы Первая форма используется для представления изменения состояний во времени для отдельной линии жизни При этом изображаются события, которые являются причиной изменения состояний sd Доступсотрудника ОжиданиеДоступа ВозвратКарты ОжиданиеКарты Ожидание :Сотрудник ВводКода OK{t..t+3} {d..3*d} 0 1 2 t d Проход
  • 40. Вторая форма временной диаграммы Вторая форма временной диаграммы также используется для представления изменения состояний для отдельной линии жизни горизонтально во времени При этом события, которые являются причиной изменения состояний, не изображаются Это наиболее компактная форма временной диаграммы, которая часто используется для иллюстрации процесса функционирования электронных устройств sd Доступсотрудника Ожидание Доступа Ожидание Карты Ожидание:Сотрудник {d..3*d} Проход
  • 41. Третья форма временной диаграммы Третья форма временных диаграмм используется для изображения более чем одной линии жизни и сообщений между ними Эта форма временной диаграммы по своим возможностям в большой степени соответствует диаграмме последовательности, чем первые две формы sd Доступсотрудника ОжиданиеДоступа ОжиданиеКарты Ожидание :Сотрудник ввестиКод предоставитьДоступ {d..3*d}Проход вернутьКарту :Система Контроля НетКарты ЕстьКарта t=now {t..t+3} 0 1 2 t d отперетьДверь вставитьКарту
  • 42. Самостоятельное задание №13 Выполнить текущее тестирование: вопросы Разработать временную диаграмму для ATM Изобразить линии жизни Изобразить отношения между ними Выполнить итоговое тестирование
  • 44. Диаграмма композитной структуры – диаграмма, которая изображает внутреннюю структуру классификаторов таких, как класс, компонент или кооперация, включая точки взаимодействия классификатора с другими частями системы. Внутренняя структура (internal structure) – структура взаимодействующих элементов модели, которые создаются в экземпляре содержащего их классификатора Свойство (property) – множество экземпляров, которые являются собственностью содержащего их экземпляра классификатора
  • 45. Часть (part) свойство, которое является элементом внутренней структуры композитного классификатора, в частном случае – класса Синтаксис части в БНФ: <имя-части>::= [<собственное-имя-части>] [: <имя-класса>] [[<кратность>]] | [<имя-класса>], где <собственное-имя-части> является именем экземпляра класса и обычно записывается со строчной буквы, <имя-класса> является именем соответствующего класса, от которого инстанцируется данная часть или свойство Кратность части может быть также показана в правом верхнем углу прямоугольника части
  • 46. Примеры изображения композитного класса з а д н я я Ч а с т ь А в т о м о б и л ь з а д н я я Ч а с т ь : К о л е с о [2 ] e : Д в и г а т е л ь а : О с ь К о л е с о Д в и г а т е л ь О с ь * * 12 е А в т о м о б и л ь 2 1 А в т о м о б и л ь k : К у з о в 1 А в т о м о б и л ь e : Д в и г а т е л ь [ 1 ..2 ]
  • 47. Соединитель (connector) – отношение, которое обеспечивает взаимосвязь или коммуникацию между двумя или более экземплярами классификаторов, в частном случае – экземплярами классов Соединитель изображается с использованием нотации для ассоциации. Необязательная строка имени соединителя должна удовлетворять следующему синтаксису: <имя-соединителя>::= ( [ имя ] ‘:’ <имя-класса> ) | <имя> где <имя> является собственным именем соединителя, а <имя-ассоциации> является именем ассоциации или ее типом Дополнительно выше или перед именем соединителя может быть помещен стереотип в виде ключевого слова в угловых кавычках После или ниже имени соединителя может быть помещено строка­свойство
  • 48. Фрагменты композитной структуры для класса Автомобиль А в т о м о б и л ь п е р е д н я я О с ь п р а в о е П е р е д н е е : К о л е с о з а д н я я О с ь п р а в о е З а д н е е : К о л е с о л е в о е П е р е д н е е : К о л е с о л е в о е З а д н е е : К о л е с о А в т о м о б и л ь л е в а я С т о р о н а : К о л е с о [2 ] о с ь п р а в а я С т о р о н а : К о л е с о [2 ] 1 1
  • 49. Порт (port) – свойство классификатора, которое специфицирует отдельную точку взаимодействия между этим классификатором и его окружением или между классификатором и его внутренними частями p 1 [1 ] Д в и г а т е л ь Д в и г а т е л ь p 2 [4 ] p 3 [1 ] Д в и г а т е л ь S 1
  • 50. Нотация предоставляемого и требуемого интерфейсов для порта класса Предоставляемый интерфейс (provided interface) порта характеризует запросы, которые могут быть переданы через этот порт классу от его окружения Требуемый интерфейс (required interface) порта характеризует запросы, которые могут быть переданы от класса к его окружению через этот порт IТ р а н с м и с с и я IТ о п л и в о p 1 [1 ] Д в и г а т е л ь Д в и г а т е л ь p 2 [1 ]
  • 51. Пример композитной структуры класса Автомобиль А в т о м о б и л ь з а д н я я С т о р о н а : К о л е с о [2 ] e : Д в и г а т е л ь о с ь k а : А к к у м у л я т о р n m g : Г е н е р а т о р IТ о п л и в о r IЭ л П и т а н и е p q t s fc п р и в о д
  • 52. Кооперация (collaboration) – классификатор, предназначенный для описания некоторой структуры элементов или ролей, которые выполняют специализированные функции и совместно производят желаемую функциональность Роль кооперации (collaboration role) специфицирует требуемое множество характеристик, которые должен иметь соответствующий участник кооперации
  • 53. Внутренняя структура кооперации Наблюдатель Н а б л ю д а т е л ь н а б л ю д а т е л ь : И н д и к а т о р З а г р у з к и с у б ъ е к т : О ч е р е д ь В ы з о в о в О ч е р е д ь В ы з о в о в И н д и к а т о р З а г р у з к и Н а б л ю д а т е л ь с у б ъ е к т н а б л ю д а т е л ь
  • 54. Применение кооперации (collaboration use) - представляет собой описание реализации кооперации в форме множества взаимодействующих элементов посредством связывания этих элементов с ролями данной кооперации. О к н о « r e p r e s e n ts » о т о б р а з и т ь ( ) :Р е а л и з а ц и я П о в е д е н и я Н а Э к р а н е М о н и т о р а П р о д а ж а п р о д а в е ц : У ч а с т н и к С д е л к и п о к у п а т е л ь : У ч а с т н и к С д е л к и К о м п а н и я У ч а с т н и к С д е л к и Ф и з и ч е с к о е Л и ц о
  • 55. Два применения кооперации Продажа п р о и з в о д и т е л ь : К о м п а н и я о п т о в а я п р о д а ж а : П р о д а ж а д и с т р и б ь ю т о р : К о м п а н и я п о к у п а т е л ьп р о д а в е ц д и с т р и б ь ю т о р : К о м п а н и я р о з н и ч н а я п р о д а ж а : П р о д а ж а п о т р е б и т е л ь : Ф и з и ч е с к о е Л и ц о п о к у п а т е л ьп р о д а в е ц П р о д а ж а Ч е р е з П о с р е д н и к о в п о к у п а т е л ь д и с т р и б ь ю т о р : К о м п а н и я п о т р е б и т е л ь : Ф и з и ч е с к о е Л и ц о о п т о в а я п р о д а ж а : П р о д а ж а р о з н и ч н а я п р о д а ж а : П р о д а ж а п р о и з в о д и т е л ь : К о м п а н и я п о к у п а т е л ь п р о д а в е ц п р о д а в е ц
  • 56. Шаблон кооперации Шаблон кооперации является параметризованной кооперацией, которой соответствует целое семейство коопераций Параметрами шаблона кооперации являются типы ее частей или ролей Отдельная кооперация этого семейства может быть получена связыванием параметров шаблона кооперации с конкретными классами Шаблоны коопераций находят практическое применение при рассмотрении стандартных паттернов проектирования.
  • 57. Шаблон кооперации паттерна Наблюдатель и его связывание П а т т е р н Н а б л ю д а т е л ь с у б ъ е к т : Т и п С у б ъ е к т а н а б л ю д а т е л ь : Т и п Н а б л ю д а т е л я Т и п С у б ъ е к т а , Т и п Н а б л ю д а т е л я П а т т е р н Н а б л ю д а т е л ь < Т и п С у б ъ е к т а - > О ч е р е д ь З в о н к о в , Т и п Н а б л ю д а т е л я - > И н д и к а т о р З а г р у з к и > Н а б л ю д а т е л ь
  • 58. Альтернативное связывание кооперации Наблюдатель с шаблоном кооперации П а т т е р н Н а б л ю д а т е л ь с у б ъ е к т : Т и п С у б ъ е к т а н а б л ю д а т е л ь : Т и п Н а б л ю д а т е л я Т и п С у б ъ е к т а , Т и п Н а б л ю д а т е л я < < b in d > > < Т и п С у б ъ е к т а - > О ч е р е д ь З в о н к о в , Т и п Н а б л ю д а т е л я - > И н д и к а т о р З а г р у з к и > Н а б л ю д а т е л ь
  • 59. Самостоятельное задание №3 Выполнить текущее тестирование: вопросы Разработать диаграмму композитной структуры для ATM Изобразить следующий композитный класс: Клиент банкомата, Банк. Изобразить следующие варианты использования: Изобразить отношения между ними
  • 61. Диаграмма коммуникации – диаграмма, которая предназначена для представления взаимодействия в контексте внутренней архитектуры системы и передаваемых сообщений Диаграмма коммуникации имеет вид графа, вершинами которого являются части композитного класса или роли взаимодействия, изображенные в виде прямоугольников Эти вершины соответствуют линиям жизни и изображаются в своем структурном контексте Ребрами графа являются связи, по которым проходят маршруты коммуникации Линии жизни могут обмениваться сообщениями, которые изображаются в виде небольших стрелок с некоторым именем, расположенных возле линий связей
  • 62. Изображение линий жизни на диаграмме коммуникации Информация, идентифицирующая линию жизни на диаграмме коммуникации, изображается внутри прямоугольника в следующем формате (БНФ): <идентификатор-линии-жизни>::= ([<имя- роли> [‘[‘<селектор>‘]’] ] [:<имя-класса>] имяроли:Имя класса :Заказ счетКлиента[no]: Счет
  • 63. Связь (link) и Сообщение (message) - является экземпляром произвольной ассоциации, которая обеспечивает канал для направленной передачи сообщений между линиями жизни Сообщение изображается в форме символа стрелки рядом с линией связи, которое передается в указанном стрелкой направлении по данной связи Говорят, что стрелка сообщения специфицирует направление коммуникации Рядом со стрелкой указывается идентификатор сообщения, записанный в специальном формате :Заказ счетКлиента[no]: Счет 1:оплатить()
  • 64. Формат записи сообщений Каждое сообщение может быть помечено строкой текста, которая имеет следующий синтаксис (БНФ): <идентификатор-сообщения>::= [<предшествующие- сообщения>’/’] <выражение-последовательности> ‘:’ [<атрибут>‘=’] <имя-операции-или-сигнала> [‘(‘[<аргумент> [‘,’<аргумент>]* ‘)’] [‘:’ <возвращаемое-значение>], где <аргумент> ::= ([<имя-параметра>‘=’] <значение- аргумента>) | (<атрибут> ‘=’ <имя-out-параметра> [‘:’ <значение-аргумента>]|‘ -’ <предшествующие-сообщения> — разделенные запятыми номера сообщений, после которых следует наклонная черта (“слеш”), например, 3, 4/
  • 65. Формат записи сообщений <выражение-последовательности> — разделенный точками список отдельных термов последовательностей, после которого следует двоеточие. Каждый из термов последовательности имеет следующий синтаксис: [<целое- число>|<имя>] [<рекуррентность>]. <целое-число> указывает на порядковый номер сообщения в процедурной последовательности верхнего уровня <имя> в форме буквы некоторого алфавита используется для спецификации параллельных потоков или нитей управления <рекуррентность>::=‘*’‘[‘<предложение-итерация>‘]’ для записи итеративного выполнения соответствующего выражения <рекуррентность>::=‘[‘<предложение-условие>‘]’ для записи ветвления
  • 66. Примеры записи сообщений на диаграмме коммуникации
  • 67. Самостоятельное задание №4 Выполнить текущее тестирование: вопрос 19 Разработать диаграмму коммуникации для варианта использования ATM «Снятие наличных по кредитной карточке» Изобразить линии жизни ранее определенных классов. Изобразить связи между ними. Изобразить последовательность сообщений между линиями жизни.