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

ПКС / ПКС. Материалы лекций

.pdf
Скачиваний:
6
Добавлен:
19.09.2023
Размер:
3.23 Mб
Скачать

Пример UML диаграммы классов (Class) средствами PlantUML 91

@startuml

skinparam classAttributeIconSize 0

abstract class AbstractLogger{

_level :int

# nextLogger : AbstractLogger

+setNext(:AbstractLogger) :void

+{abstract}write(:string) :void

}

class InfoLogger{

+ {abstract}write(:string) :void

}

note bottom of InfoLogger _level = 1

end note

Пример UML диаграммы классов (Class) средствами PlantUML 92

class DebugLogger{

 

+ {abstract}write(:string) :void

ChainPattern down > AbstractLogger :

}

<U+003C><use>>

note bottom of DebugLogger

InfoLogger .up.> AbstractLogger :

_level = 2

<U+003C><implement>>

end note

DebugLogger .up.> AbstractLogger :

class ErrorLogger{

<U+003C><implement>>

+ {abstract}write(:string) :void

ErrorLogger .up.> AbstractLogger :

}

<U+003C><implement>>

note bottom of ErrorLogger

AbstractLogger * > AbstractLogger :

_level = 3

<U+003C><derive>>

end note

@enduml

class ChainPattern{

 

_getChain() :AbstractLogger

 

+ {static}main(args: string[])

 

:void

 

}

 

UML-диаграмма классов (Class)

 

93

UML-диаграмма коммуникаций (Communication)

 

94

Диаграмма коммуникаций (Communication) устанавливает взаимодействие между «линиями жизни» объектов, при этом последовательность сообщений (между объектами) иерархически нумеруется на схеме.

Основные элементы:

-frame (фрейм) – конструкция, объединяющая объекты, обменивающиеся сообщениями в контексте одной из двух диаграмм:

-- диаграмма последовательности (sd: Sequence diagram) – для одной группы элементов; -- общая диаграмма взаимодействия (ref: Reference diagram) – для нескольких групп элементов (обычно – для всех рассматриваемых групп элементов);

-message (сообщение) показывает взаимосвязь двух объектов, при этом последовательность выполнения действий определяется благодаря многоуровневой нумерации таких взаимосвязей.

Диаграмма коммуникаций появилась в UML 2 в результате переработки диаграммы коллабораций (Collaboration: совместного взаимодействия) из UML 1: объединение групп элементов выполняется с помощью указания «sd» или «ref» (на диаграмме коммуникаций).

UML-диаграмма коммуникаций (Communication)

95

UML-диаграмма коммуникаций (Communication)

96

UML-диаграмма коммуникаций (Communication): пример

 

97

@startuml

frame

'left to right direction

 

 

 

 

 

 

 

 

 

partition "sd \nLog Interactions"{

 

 

 

 

 

 

 

 

 

"ChainPattern" --> [ 1: _getChain() ] "InfoLogger"

 

 

 

 

 

 

 

 

 

"InfoLogger" --> [ 1.1: write() ] "InfoLogger"

 

 

 

 

 

 

 

 

 

"InfoLogger" --> [ 1.2: setNext() ] "DebugLogger"

 

 

 

 

 

 

 

 

 

"DebugLogger" --> [ 1.2.1: write() ] "DebugLogger"

message

 

 

 

"DebugLogger" --> [ 1.2.2: setNext() ] "ErrorLogger"

 

 

 

"ErrorLogger" --> [ 1.2.2.1: write() ] "ErrorLogger"

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

"ErrorLogger" --> [ 1.2.3: reply ] "DebugLogger"

 

 

 

 

 

 

 

 

 

"DebugLogger" --> [ 1.3: reply ] "InfoLogger"

 

 

 

 

 

 

 

 

 

"InfoLogger" --> [ 2: reply ] "ChainPattern"

 

 

 

 

 

 

}

 

 

sd

 

 

 

 

 

 

0.

 

 

 

 

 

 

 

 

 

 

ChainPattern InfoLogger

DebugLogger ErrorLogger

 

 

 

(*) -right-> [ 0: main() ] "ChainPattern"

 

 

 

1.

 

1.1.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

"InfoLogger" -down-> [ 3: reply ] (*)

 

 

 

 

 

 

1.2.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

@enduml

 

 

 

 

 

 

 

 

 

МИНИСТЕРСТВО ЦИФРОВОГО РАЗВИТИЯ, СВЯЗИ И МАССОВЫХ КОММУНИКАЦИЙ РОССИЙСКОЙ ФЕДЕРАЦИИ

ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ БЮДЖЕТНОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ВЫСШЕГО ОБРАЗОВАНИЯ «САНКТ-ПЕТЕРБУРГСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ ТЕЛЕКОММУНИКАЦИЙ ИМ. ПРОФ. М.А. БОНЧ-БРУЕВИЧА» (СПбГУТ)

Кафедра информационных управляющих систем

Б1.В.24 «Программирование критических сервисов» для специальностей по направлению 09.03.02 «Информационные системы и технологии»

1.Cервисы программного обеспечения в международных стандартах.

2.Cервисы программного обеспечения в российских стандартах.

3.Критические объекты и процессы программных средств в международных стандартах.

4.Шаблоны проектирования критических сервисов. Часть 1: Шаблоны отображения

блоков и взаимосвязей на диаграмме в PlantUML. Стандарт UML и GoF-стандарт.

5.Программные компоненты для создания критического сервиса на языке Python.

6.Программные решения на основе критических сервисов в задаче развертывания микросервисной архитектуры.

Преподаватель: Параничев Андрей Викторович

Санкт-Петербург 2023

Шаблоны отображения блоков и взаимосвязей на диаграмме в PlantUML

 

99

 

При построении PlantUML-диаграммы различают блоки и элементы взаимодействия

 

для диаграммы последовательности (Sequence) и для остальных диаграмм.

 

-> выполнение действия на диаграмме последовательности (сплошная линия);

 

--> выполнение ответа на действие на диаграмме последовательности (пунктирная линия).

 

-> -left-> -right-> -top-> -down-> сокращенная взаимосвязь между 2 объектами для остальных диаграмм:

по умолчанию направление взаимосвязи вправо или вниз: -> интерпретируется как -right-> или -down->

--> -left--> -right--> -top--> -down--> стандартная взаимосвязь между 2 объектами для остальных диаграмм;

такие взаимосвязи (-->, ->) прорисовываются сплошной линией; для определения пунктирной линии используется символ «.» ( ..>, .> ).

Для всех диаграмм можно выполнять обозначение взаимосвязи после символа «:» object_a --> object_b : Вызов функции f(a, b)

Для диаграмм последовательности: object_a и object_b должны быть ролевыми объектами; обозначение взаимосвязи рекомендуется указывать в виде функции, например: f(a, b)

Рекомендуется использовать автонумерацию взаимосвязей одного, двух или трех уровней: autonumber 1.1.1 (означает, что 1е действие будет пронумеровано 1.1.1), далее 1.1.2), далее 1.1.3)… ) autonumber inc A (означает, что следующее действие будет 2.1.1), далее 2.1.2), далее 2.1.3)…) autonumber inc B (означает, что следующее действие будет 2.2.1), далее 2.2.2), далее 2.2.3)…)

Шаблоны отображения блоков и взаимосвязей на диаграмме в PlantUML

100

 

Для диаграмм последовательности: object_a и object_b должны быть ролевыми объектами; обозначение взаимосвязи рекомендуется указывать в виде функции, например: f(a, b)

Рекомендуется использовать автонумерацию взаимосвязей одного, двух или трех уровней:

autonumber 1.1.1 (означает, что 1е действие будет пронумеровано 1.1.1), далее 1.1.2), далее 1.1.3)… )

autonumber inc A (означает, что следующее действие будет 2.1.1), далее 2.1.2), далее 2.1.3)…)

autonumber inc B (означает, что следующее действие будет 2.2.1), далее 2.2.2), далее 2.2.3)…)

Для остальных диаграмм: object_a и object_b могут быть любыми объектами соответствующих диаграмм; взаимосвязь может быть удлиненной: тогда указывают ---> или …> (может также указываться направление left, right, top, down).

Для остальных диаграмм используются также следующие спецификации взаимосвязей: