
УНИФИЦИРОВАННЫЙ ЯЗЫК МОДЕЛИРОВАНИЯ UML
.pdf
ДИАГРАММА ДЕЯТЕЛЬНОСТИ |
|
|
||
Диаграмма деятельности используется для описания поведения |
||||
как последовательности действий. |
|
|
||
activity Диаграмма деятельности |
|
|
||
|
|
ActionС |
|
|
|
|
|
|
14 |
|
|
ActionD |
|
|
|
|
|
ActionE1 |
ActionE2 |
|
|
|
|
|
37 |
ActionD1 |
ActionD2 |
5 |
|
|
|
|
|
|
|
|
|
signalA |
|
|
4 |
signalA |
|
|
|
|
20 |
15 |
21 |
|
|
|
251

activity Диаграмма деятельности |
|
|
|
|
|
24 |
|
|
13 |
|
|
|
|
|
|
|
|
A |
|
|
|
|
|
Partition |
18 |
|
|
N |
12 |
|
|
|
|
|
|
|
|
ActionA1 |
|
|
|
|
5 |
|
|
|
|
|
2 |
|
|
|
|
«datastore» |
|
7 |
|
|
|
DataStore:TypeA |
|
3 |
|
|
|
|
|
|
|
||
23 |
22 |
|
|
|
|
|
ActivityA |
|
|
||
|
|
|
|
||
B |
|
|
|
|
|
Partition |
|
ActionA2 |
1 |
|
|
|
|
|
|
|
|
|
|
|
[c1] |
|
|
|
17 |
|
|
N |
11 |
|
|
|
[else] |
|
|
Основная сущность, применяемая на диаграмме, — действие (1) |
и ее частный случай — деятельность (2), или если точнее — вызов деятельности (3). Особыми видами действий, имеющими собственную нотацию, являются действия по отправке (4) и
получению (5) сигнала, а также действие получения сигнала от таймера (6).
На диаграмме деятельности могут быть показаны потоки управления (7) и потоки данных (8).
Поток управления определяется узлами управления, к которым относятся: начальный узел (13), развилка управления (14),
252
слияние управления (15), комбинированное слияние и развилка (16), разветвление управления (17), соединение управления (18), комбинированное соединение и разветвление управления (19), завершение потока (20), заключительный узел (21).
Передаваемые по потокам данных элементы в основном являются объектами в состоянии (22), для хранения которых используются хранилища данных (23).
Особое место на диаграмме деятельности занимают элементы, объединяющие в себе несколько узлов. Наиболее часто используемый из них – разбиение (24).
253

|
|
|
Activity |
|
|
3 |
|
|
|
|
|
|
|
1 |
action |
|
|
|
|
|
|
|
2 |
actionA |
actionB |
Activity |
|
|
|
|
||||
действие (action) |
|
|
|
|
|
|
|
|
|
|
|
|
вызов деятельности |
|
|
|
|
|
|
(activity invocation) |
|
|
|
деятельность (activity) |
|
||
4 |
signal |
5 |
signal |
6 |
5 sec |
|
|
|
|
||||
|
|
|
|
получение сигнала |
|
|
получение сигнала |
отправка сигнала |
|
от таймера |
|
||
|
|
|
|
|||
(accept event action) |
(send signal action) |
(accept time event action) |
|
|||
|
|
|
||||
Action/Activity |
|
Action/Activity |
|
Action/Activity |
Action/Activity |
|
|
|
7 |
|
|
|
8 |
|
|
|
|
|
|
|
|
поток управления (control flow) |
|
поток данных (data flow) |
Action/Activity
13
начальный узел (initial node)
[c1]
17 |
[else] |
|
разветвление управления
(decision node)
Action/Activity
21
заключительный узел
(final node)
14 |
15 |
16 |
|
||
|
|
|
развилка управления |
|
слияние управления |
|
комбинированное слияние/ |
|
|
|
|
|||||||||||||||||
|
|
(fork node) |
|
|
|
(join node) |
|
развилка управления |
|
|
|
|
||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
(join & fork node) |
|
|
|
|
||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
[else] |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Action/Activity |
|
|
|
|
|
|
|||
|
|
8 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
[c1] |
|
|
|
|
|
|
|
|
|
|
20 |
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||
|
|
|
|
|
|
|
19 |
|
|
|
|
|
|
|
|
|
|
|
|
|||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
завершение потока |
|
||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||
объединение |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
(flow final node) |
|
|
|
|
|||||||
|
управления |
|
|
комбинированное соединение/ |
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||
|
(merge node) |
|
|
разветвление управления |
|
|
|
|
|
|
||||||||||||||||
|
|
|
|
|
|
|
(merge & decision node) |
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
A |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Partition |
|
|
|
||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
24 |
|
|
|
|
|
||||
|
22 |
|
Object:Type |
|
|
|
23 |
|
|
«datastore» |
|
|
|
|
|
|
||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||
|
|
[state] |
|
|
|
|
|
|
DataStore |
|
|
|
|
|
|
|
|
|
||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
B |
|
|
|
|||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Partition |
|
|
|
|
|
объект в состоянии |
|
|
|
|
|
хранилище данных |
|
|
|
|
|
|
||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||
|
|
|
(object in state) |
|
|
|
|
|
|
|
(datastore) |
|
|
|
|
|
|
|||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
разбиение (partition)
254

ДИАГРАММА ПОСЛЕДОВАТЕЛЬНОСТИ |
|
||
sd Диаграмма последовательности |
|
|
|
roleA |
nameA:TypeA |
nameC:TypeC |
roleC |
2 |
|
|
|
|
|
6 |
|
|
|
1 |
|
messageA() |
ref |
|
messageC() |
|
Диаграмма последовательности A |
|
|
|
|
|
messageC1 () |
|
|
messageA1 () |
|
|
|
12 |
|
Основные сущности, используемые на диаграмме: роли (1, 2 и |
|||
3), которые играют взаимодействующие элементы и объекты — |
|||
экземпляры конкретных классификаторов (4, 5 и 6). |
|
||
Каждая сущность имеет свою линию жизни (7), на которой |
|||
может быть показан отрезок времени, в течение которого данная |
|||
сущность владеет потоком управления, т.е. имеет место активация |
|||
(8). С помощью вложенной активации (9) удобно показать вызовы |
|||
объектом своих собственных методов. |
|
||
Основная задача диаграммы — показать взаимодействия между |
|||
элементами. Взаимодействия бывают следующих типов: синхронный |
|||
вызов (10) и синхронный вызов с возвратом результата (11), а |
|||
также асинхронный вызов (12). Как частные случаи со своей |
|||
нотацией можно рассматривать: рефлексивный вызов (13), создание |
(14) и уничтожение объекта (15).
255

sd Диаграмма последовательности A |
|
|
|||
|
1 |
|
|
|
|
|
nameA:TypeA |
|
|
nameC:TypeC |
|
|
|
|
|
|
|
|
|
14 |
|
|
7 |
|
create() |
|
|
||
|
nameB:TypeB |
|
|||
|
|
|
|
||
|
operationB1() |
operationB2() |
|
||
|
|
|
|
|
|
|
|
|
|
13 |
|
|
|
|
|
9 |
|
|
|
11 |
|
|
|
|
|
|
|
ret code |
|
|
|
ret code |
|
|
|
|
|
destroy() |
|
|
|
|
|
|
|
5 |
|
|
|
|
|
1 |
|
|
|
|
|
|
7 |
|
|
|
[ret code = OK] |
1 |
|
|
opt |
|
|
||
|
|
|
operationС1() |
|
|
|
|
|
operationС2() |
|
|
|
|
|
10 |
|
|
Для |
декомпозиции |
сложных |
взаимодействий |
можно |
|
использовать ссылки на взаимодействия (16). |
|
Если во взаимодействии присутствует алгоритмическая составляющая, то ее удобно описывать через многочисленные
составные шаги взаимодействия (17).
256

|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
role:Type |
|
|
role |
|
|
:Type |
|
|
|
name:Type |
|
|
name |
|
|
:Type |
|
|
||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
2 |
|
|
3 |
|
|
4 |
5 |
|
|
6 |
|
|
|||||||||||
|
|
|
|
|
роли (role) |
|
|
|
|
|
|
|
|
объект (object) |
|
|
|
|
||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||
|
|
name:type |
|
|
|
name:type |
|
|
name:type |
|
|
|
nameA:typeA |
|
nameB:typeB |
|||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
7 |
|
|
8 |
|
|
|
|
линия жизни |
|
|
|
активация |
|||
(lifeline) |
(execution |
specification)
|
operation () |
9 |
10 |
|
|
|
синхронный вызов (synchronous call) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
вложенная активация |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
(recurrent execution |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||
|
|
nameA:typeA |
|
|
nameB:typeB |
|
|
|
specification) |
|
|
|
|
|
|
|
|
|
name:type |
|
|
||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
operation () |
|
|
|
|
|
|
|
|
nameA:typeA |
|
nameB:typeB |
|
|
|
|
|
|
|
|
operation() |
|
|||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
13 |
|
|||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||
|
|
|
|
|
|
ret code |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||
|
|
11 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||
|
|
|
|
|
|
|
|
|
|
|
|
|
message () |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||
|
|
возврат результата(return) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
рефлексивный вызов |
|||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
(recurrent/reflective call) |
||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
12 |
|
|
|
|
|
|
|
|
|
|||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
aсинхронный вызов (аsynchronous call) |
|
|
|
|
|
|
|
|
|
|
|||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||
|
|
|
|
name:type |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||
|
14 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
name:type |
|
|
|
|
|
|
nameA:TypeA |
|
|
nameB:TypeB |
|
|
||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
6 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ref |
|
|
|
1 |
|
|
|
||||||
|
|
создание (creation) |
|
|
|
|
|
|
1 |
|
|
|
|
|
|
|
|
|
|
|
Interaction name |
|
|
|
|
|
|
|
|||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
5 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
уничтожение (destruction)
ссылка на взаимодействие (interaction use)
nameA:typeA nameB:typeB
alt
7 1
составной шаг взаимодействия
(combined fragment)
257

ДИАГРАММА КОММУНИКАЦИИ |
|
|
Диаграмма коммуникации используется для описания |
||
поведения системы как последовательности обмена сообщениями |
||
между элементами. |
|
|
sd Диаграмма коммуникации |
|
|
|
1.1: operationB2() |
|
|
9 |
|
|
1: operationB1() |
8 |
|
|
|
nameA:TypeA |
nameB:TypeB |
|
|
7 |
|
5 |
10 |
|
|
|
|
3: messageC() |
|
|
roleC |
1 |
|
Основные сущности, используемые на диаграмме: роли (1, 2 и 3), которые играют взаимодействующие элементы и объекты (4, 5 и 6) – экземпляры конкретных классов.
Отношения, соединяющие взаимодействующие элементы, называются связями (7). Если элемент связан сам с собой, то такая связь называется рефлексивной (8).
Сообщения, которыми обмениваются элементы, могут быть синхронными (9) или асинхронными (10), что отражается в нотации стрелочек.
258

roleA:TypeA :TypeB
2 |
3 |
roleC
nameA:TypeA |
:TypeB |
5 |
6 |
nameC |
|
1 |
|
|
|
|
|
|
|
|
4 |
|
|
|
|
|
|
|
|
|
|||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
объект (object) |
|
|
||||||||
|
|
роль (role) |
|
|
|
|
|
|
|
|
|
||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
8 |
|
|
|
|
|
|
||
|
name:TypeA |
|
|
|
|
|
:TypeB |
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||
|
7 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
name:Type |
|
|
|
|
|
|
|
|||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||
|
|
связь (link) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||
|
|
|
|
|
рефлексивная связь |
|
|
|
|
|
|
||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
(reflective link) |
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||
|
|
9 |
|
|
|
|
|
|
|
10 |
|
|
|
|
|||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||
|
|
|
1: operation() |
|
|
|
|
|
|
|
|
|
|
1: message() |
|
|
|
||||||||
|
name:TypeA |
|
|
|
|
|
|
:TypeB |
|
|
|
|
name:TypeA |
|
|
|
|
|
:TypeB |
|
|||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||
|
синхронный вызов (synchronous call) |
|
|
|
|
|
асинхронный вызов (asynchronous call) |
||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ДИАГРАММА КОМПОНЕНТОВ
Диаграмма компонентов используется для описания структуры моделируемой системы, но на более высоком уровне абстракции, чем диаграмма классов.
259

component Диаграмма компонентов |
|
|
|
5 |
|
«component» |
|
«component» |
ComponentA |
InterfaceA |
ComponentB |
|
|
|
1 |
|
InterfaceB |
|
|
|
|
|
7 |
|
|
«component» |
|
|
ComponentС |
Структурный аспект на диаграмме представлен сущностью |
||
компонент (1 и 2). Отношение между компонентом и классами, из |
которых он состоит, называется отношением реализации (3). Поведенческий аспект на диаграмме описывается множеством
обеспеченных (4 и 5) и требуемых (6 и 7) интерфейсов, которые относятся к компонентам.
260