ПКС / ПКС. Материалы лекций
.pdf
|
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>> (объектовучастников)