Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

УНИФИЦИРОВАННЫЙ ЯЗЫК МОДЕЛИРОВАНИЯ UML

.pdf
Скачиваний:
56
Добавлен:
10.03.2016
Размер:
2.22 Mб
Скачать

ДИАГРАММА ДЕЯТЕЛЬНОСТИ

 

 

Диаграмма деятельности используется для описания поведения

как последовательности действий.

 

 

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