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

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

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

 

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

 

 

41

 

в международных стандартах. Сценарный подход.

 

 

 

Пример скрипта PlantUML для составления диаграммы прецедентов

 

@startuml

 

 

 

left to right direction

 

 

 

actor aUser as "

Пользователь\n

cервиса\n <U+003C><U+003C>Service Environment<U+003E><U+003E>"

 

actor aTel as "

Telegram-бот\n

<U+003C><U+003C>Application Server<U+003E><U+003E>"

 

actor aDevFront as " Разработчик\n сервиса (фронтенд)\n<U+003C><U+003C>Server Service<U+003E><U+003E>"

 

actor aDevBack as "

Разработчик\n

сервиса (бэкенд)\n<U+003C><U+003C>Server Service<U+003E><U+003E>"

 

rectangle "Программная система разработки приложений и сервисов"{

usecase uDevelop as "Разрабатывает программный \n интерфейс для работы \n с логикой сервиса\n--\n<<Server Service>>" usecase uStudyData as "Изучает инструкции \n по доступу к критически \n важным данным\n--\n<<Server Service>>" usecase uDevInter as "Cоздаёт интерфейс для \n работы пользователя \n с сервисом\n--\n<<Server Service>>"

usecase uGiveAccess as "Предоставляет доступ \n к своему интерфейсу\n--\n<<Application Server>>" usecase uGetAccess as "Получает доступ \n к пользовательским \n данным\n--\n<<Service Environment>>"

}

aDevBack -|> aDevFront

uDevInter ..> uGiveAccess: <U+003C><U+003C>extend<U+003E><U+003E> uStudyData ..> uDevelop : <U+003C><U+003C>include<U+003E><U+003E> uGiveAccess .down.> uGetAccess : <U+003C><U+003C>extend<U+003E><U+003E> uDevelop .up..> uDevInter: <U+003C><U+003C>extend<U+003E><U+003E> aDevBack --> uStudyData

aDevFront --> uDevInter aTel --> uGiveAccess aUser --> uGetAccess @enduml

Список литературы

42

1.UML Use Case Diagram Overview of Graphical Notation [Electronic Resource]. – URL: https://www.uml-diagrams.org/use- case-diagrams.html

2.UML Use Case Diagram Examples [Electronic Resource]. – URL: https://www.uml-diagrams.org/use-case-diagrams- examples.html

3.Use Case Diagrams Template [Electronic Resource]. – URL: https://creately.com/diagram-community/examples/t/use-case

4.Онлайн-редактор диаграмм PlantText [Электронный ресурс]. – URL: https://www.planttext.com/, https://www.plantuml.com/plantuml

5.Diagram.Net (draw.io) [Электронный ресурс]. – URL: https://app.diagrams.net/

6. Free Online Diagram Editor [Электронный ресурс]. – URL: https://www.diagrameditor.com/

7.Drawing UML with PlantUML. Language Reference Guide [Electronic Resource]. – 2021. 416 p. – URL: http://plantuml.com/guide

8.About the Unified Modeling Language Specification Version 2.5.1 [Electronic Resource]. – 2017. – 754 p. – URL: https://www.omg.org/spec/UML/2.5.1

9.Fowler, M. UML Distilled: A Brief Guide to the Standard Object Modeling Language [Text] / M. Fowler. – 3rd Ed. Boston: Addison-Wesley, 2003. – 178 p.

10.Параничев, А. В. Программирование критических сервисов: практикум [Текст] / А. В. Параничев ; СПбГУТ. – СанктПетербург, 2021. – 44 с. – URL:

11.Котлова, М. В. Методы и средства проектирования информационных систем и технологий : [Текст] : учебное пособие / М. В. Котлова, Е. В. Давыдова ; рец.: М. П. Белов, Т. В. Матюхина. – СПб. : СПбГУТ, 2015. – 62 с.

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

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

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

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

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

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

3.Критические объекты и процессы программных средств в международных стандартах. Часть 3: UML-диаграммы последовательности, деятельности, состояний, профилей, пакетов данных.

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

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

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

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

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

Введение в UML

 

44

Универсальный язык проектирования UML (Unified Modeling Language) используется:

-для объяснения применения шаблонов проектирования (аналитиками, программистами);

-для составления документации на приложение (программистами, тестировщиками,

техническими писателями);

-для понимания разработки приложения как разработчиками, так и пользователями

(клиентами, заказчиками, менеджерами). Существует 3 поколения стандарта UML:

-UML 0 (устарелые версии, включающие 3 вида диаграмм: представлены в основе шаблонов

проектирования (Design Patterns));

-UML 1 (условно устарелые версии, включающие 8 видов диаграмм: представлены во многих средах разработки (IDE, Integrated Development Environment) и средствах проектирования);

-UML 2 (актуальная версия 2.5.1 от декабря 2017; включает 14 видов диаграмм: представлены в некоторых современных средствах проектирования и разработки).

Инструменты проектирования на языке UML (в нотациях UML): -PlantUML (для UML 1 и 2, freeware);

-StarUML v1 5.0 (для UML 1, freeware); -Nclass (для UML 2, commercial); -ArgoUML (для UML 1, freeware);

-SimpleUML (для UML 1, freeware);

-Microsoft Visio (для UML 1 и 2, commercial).

UML-диаграмма последовательности (Sequence)

45

Выполняется описание действий, среди которых могут быть следующие:

распределение ролей по прецедентам;

определение порядка работы с модулями данных;

заполнение конкретными данными;

определение стереотипных блоков в программном проекте;

описание задачи с разбиением на подзадачи: указываются входные и выходные данные, управляющие воздействия, ресурсы (а также возможно вызовы функций);

определение структуры таблиц базы данных и их взаимосвязи;

описание конкретного примера извлечения данных по запросу при

определенных условиях;

описание взаимодействия процессов, данных и внешних сущностей между собой при функционировании будущего приложения.

UML-диаграмма последовательности (Sequence)

 

46

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

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

lifeline («линия жизни» объекта-участника) определяет временную последовательность действий объекта-участника, учитывая хронологию взаимодействий других объектовучастников, в контексте выполнения общего для них процесса (возрастание времени: сверху вниз); определяет время физического существования объекта-участника или выполнения части его функций;

occurrence specification (спецификация действий; область действий (region)) определяет типовые конструкции последовательного взаимодействия объектов-участников: по времени выполнения (critical, strict, seq, par) и по логике выполнения (opt, alt, loop, break).

--critical (блок критически важной последовательности действий объектов-участников);

--strict (блок строгой последовательности выполняемых действий);

--seq (блок приблизительной последовательности действий);

--par (блок параллельно выполняемых действий);

--opt (option: блок проверки и выполнения условия «если» по результатам предыдущего действия);

--alt (alternative: блок проверки и выполнения условия «если-иначе» по результату предыдущего действия: каждое условие «иначе» отделяется горизонтальной пунктирной линией; допускается 2 и более условия «иначе» как для switch-case: «если – иначе-еслииначе-если – … – иначе»);

--loop (блок выполнения цикла, начальные условия которого задаются в предшествующем

UML-диаграмма последовательности (Sequence): пример

 

47

message (сообщение) определяет передачу информации другому объекту-участнику, либо выполнение функции;

указывается сплошной линией.

reply (ответ на сообщение или вызов процедуры) определяет ответ на полученное сообщение или предоставляет возвращаемое значение функции;

указывается пунктирной линией.

message

lifeline

reply / general ordering

occurrence specification

UML-диаграмма последовательности: пример (окончание)

48

@startuml actor Admin box Service

queue Config as "Configurator" boundary Remote as "Remote\nTools" end box

actor User autonumber 1.1 hide footbox

==1. Initialization == activate Admin

Admin -> Config : bot_settings() activate Config

Config -> Remote : run_service() activate Remote

Remote -> Remote : initialize() activate Remote

deactivate Remote

Remote --> Admin : work_report() deactivate Admin

==2. Maintenance == autonumber inc A

User -> Remote : query() activate User

critical Secure web service (Защищенный веб-сервис) Remote -> Remote : __accept()__

activate Remote deactivate Remote

alt __0 (Нормальная работа сервиса)__

Remote -> User : anwser()

else __>0 (Предупреждение в работе сервиса)__

Remote --> Admin : warning_report() activate Admin

Remote -> Remote : stop() activate Remote deactivate Remote deactivate Remote

Admin -> Remote : repair()

opt 0 (Нормальная работа может быть восстановлена)

Admin -> Config : bot_activate() Config -> Remote : restore_service() activate Remote

Remote -> Remote : restore() activate Remote

deactivate Remote deactivate Remote end

else __<0 (Ошибка в работе сервиса)__ activate Remote

Config --> Admin : error_report() deactivate Admin

Config ->x Remote : stop_service() deactivate User

deactivate Config end

end

@enduml

UML-диаграмма последовательности (пример)

49

UML-диаграмма деятельности (Activity)

Диаграмма деятельности (Activity) определяет следование координируемых блоков (время выполнения: сверху вниз), используя модель передачи данных и управления этими данными.

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

action node (executable node, «исполняющий узел») реализует низкоуровневые шаги в рамках всего блока деятельности; object node объектный узел») хранит и передает данные, получаемые и передаваемые от «исполняющего узла»;

control node узел управления») определяет последовательность действий, которые производят «исполняющие узлы»;

control flow поток данных управления») представляет собой взаимосвязь между «узлами управления»;

object flow поток данных объекта») – определяет взаимосвязь между «объектными узлами».

50

блоки

<<activity>>

(выполняемых действий)

взаимосвязи

<<swimlane>> (объектовучастников)