UML: подробное объяснение диаграмм деятельности и использование расширенных символов.
UML: подробное объяснение диаграмм деятельности и использование расширенных символов.

1. Введение

В процессе разработки программного обеспечения диаграмма деятельности (Activity Diagram) является важным инструментом описания бизнес-процессов и рабочих процессов в системе. С помощью диаграмм деятельности мы можем интуитивно понять последовательность выполнения и условия каждого этапа операции. В этой статье будет использоваться конкретная диаграмма деятельности, чтобы подробно объяснить использование расширенных символов, чтобы помочь читателям лучше понять и применять диаграммы деятельности.

2. Обзор диаграммы действий

Диаграмма деятельности — это тип диаграммы поведения, используемый для отображения динамических процессов в системе. Он похож на блок-схему, но больше внимания уделяет динамическому поведению системы. Диаграммы действий состоят из ряда действий (Активность), узлов принятия решений (Узел принятия решений), параллельных узлов (Узел разветвления/соединения) и т. д. и могут четко представлять сложную логику, такую ​​как ветвление, параллелизм и условное суждение в бизнес-процессах. .

3. Анализ диаграммы активности дела

Разберем диаграмму деятельности на рисунке выше, где показан бизнес-процесс системы обработки заказов. Основные элементы и процессы на схеме следующие:

  1. Клиент отправляет заказ (Отправить заказ)
  2. Получить заказ
  3. Заказ принят
  4. Заполнить заказ
  5. Подготовить посылку
  6. Заказ доставки
  7. Закрыть заказ
  8. Запрос на отмену заказа
  9. Отменить заказ
  10. Отправить счет
  11. Принять оплату
  12. Отправить платеж

4. Использование расширенных символов

1. Ветвление и слияние (узлы разветвления/соединения)

На рисунке мы видим два параллельных узла (Fork и Join), которые используются для параллельных операций обработки заказов и финансовой обработки соответственно. Узел Fork используется для разделения потока действий на несколько параллельных потоков. На рисунке «подготовка отгрузки» и «отправка счета» выполняются параллельно. Узел объединения используется для объединения нескольких параллельных потоков в один, например «принятие оплаты» на рисунке, а затем объединения его в процесс закрытия заказа.

2. Узлы принятия решений

Узлы решений используются для представления условий ветвей процесса. На рисунке после получения заказа имеется узел принятия решения «[заказ принят]», который определяет, принят или отклонен заказ. Различные условия приведут к разным путям процесса.

3. Конечные узлы

Конечный узел представляет завершение процесса. На рисунке есть два конечных узла: один используется для обозначения окончания обычного процесса (закрытия ордера), а другой — для обозначения окончания процесса отмены ордера.

4. Объединить узлы

Узел слияния используется для объединения нескольких путей ветвления в один путь. На диаграмме несколько операций обработки заказов сходятся в узле слияния.

5. Дорожки для плавания

Дорожки для плавания используются для разграничения операций разных ролей или отделов. На снимке клиенты, отдел обработки заказов и финансовый отдел находятся в разных дорожках, четко показывая свои обязанности.

6. Символ молнии (прерывание потока)

На диаграмме активности символ молнии (поток прерываний) используется для обозначения активного процесса прерывания или исключения. На приведенном выше рисунке символ молнии между «Запросом на отмену заказа» и «Отменить заказ» указывает на то, что запрос на отмену заказа может быть инициирован в любой момент в процессе обработки заказа. Как только запрос будет инициирован, процесс обработки заказа будет прерван. и будет выполнена операция отмены заказа. Это обозначение полезно для представления необычных, но возможных необычных потоков в системе.

7. Отправить объект или сигнал

Символ объекта или сигнала отправки используется для обозначения того, что действие или состояние отправляет объект или сигнал во внешнюю систему или другое действие. Этот символ обычно обозначает начало какой-либо операции, похожей на вызов функции или отправку сообщения. Сценарии использования:

  1. Сообщения: передача информации между различными частями системы. Например,Когда пользователь входит в систему,Система отправляет запрос на проверку в службу проверки.
  2. Триггер события: уведомляет другие компоненты о возникновении определенного события. Например,Когда запасы низкие,Система отправляет сигнал о пополнении в модуль закупок.
  3. Назначение задачи: Назначайте задачи или работу другим подразделениям или системе. Например, управление проектами назначает задачи конкретным исполнителям.

8. Получить объект или сигнал

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

  1. Получено сообщение: Получение информации между разными частями системы. Например,Служба аутентификации получает запрос аутентификации пользователя.
  2. обработка событий: выполнение соответствующего действия при получении определенного события. Например, модуль закупок запускает процесс пополнения после получения сигнала о том, что запасы на исходе.
  3. Задача принята: Примите задачу или рабочее задание. Например, исполнитель получает задание, поставленное руководством проекта, и приступает к его обработке.
5. Резюме

Диаграммы действий — это мощные инструменты, наглядно демонстрирующие бизнес-процессы и рабочие процессы в системе. Используя расширенные символы, такие как узлы ветвления и слияния, узлы принятия решений, конечные узлы, узлы слияния, дорожки для плавания и символы молнии, мы можем более интуитивно и точно описывать сложную бизнес-логику. В практических приложениях разумное использование этих символов может улучшить возможности выражения диаграмм деятельности и помочь команде разработчиков лучше понять и реализовать функции системы.

boy illustration
Неразрушающее увеличение изображений одним щелчком мыши, чтобы сделать их более четкими артефактами искусственного интеллекта, включая руководства по установке и использованию.
boy illustration
Копикодер: этот инструмент отлично работает с Cursor, Bolt и V0! Предоставьте более качественные подсказки для разработки интерфейса (создание навигационного веб-сайта с использованием искусственного интеллекта).
boy illustration
Новый бесплатный RooCline превосходит Cline v3.1? ! Быстрее, умнее и лучше вилка Cline! (Независимое программирование AI, порог 0)
boy illustration
Разработав более 10 проектов с помощью Cursor, я собрал 10 примеров и 60 подсказок.
boy illustration
Я потратил 72 часа на изучение курсорных агентов, и вот неоспоримые факты, которыми я должен поделиться!
boy illustration
Идеальная интеграция Cursor и DeepSeek API
boy illustration
DeepSeek V3 снижает затраты на обучение больших моделей
boy illustration
Артефакт, увеличивающий количество очков: на основе улучшения характеристик препятствия малым целям Yolov8 (SEAM, MultiSEAM).
boy illustration
DeepSeek V3 раскручивался уже три дня. Сегодня я попробовал самопровозглашенную модель «ChatGPT».
boy illustration
Open Devin — инженер-программист искусственного интеллекта с открытым исходным кодом, который меньше программирует и больше создает.
boy illustration
Эксклюзивное оригинальное улучшение YOLOv8: собственная разработка SPPF | SPPF сочетается с воспринимаемой большой сверткой ядра UniRepLK, а свертка с большим ядром + без расширения улучшает восприимчивое поле
boy illustration
Популярное и подробное объяснение DeepSeek-V3: от его появления до преимуществ и сравнения с GPT-4o.
boy illustration
9 основных словесных инструкций по доработке академических работ с помощью ChatGPT, эффективных и практичных, которые стоит собрать
boy illustration
Вызовите deepseek в vscode для реализации программирования с помощью искусственного интеллекта.
boy illustration
Познакомьтесь с принципами сверточных нейронных сетей (CNN) в одной статье (суперподробно)
boy illustration
50,3 тыс. звезд! Immich: автономное решение для резервного копирования фотографий и видео, которое экономит деньги и избавляет от беспокойства.
boy illustration
Cloud Native|Практика: установка Dashbaord для K8s, графика неплохая
boy illustration
Краткий обзор статьи — использование синтетических данных при обучении больших моделей и оптимизации производительности
boy illustration
MiniPerplx: новая поисковая система искусственного интеллекта с открытым исходным кодом, спонсируемая xAI и Vercel.
boy illustration
Конструкция сервиса Synology Drive сочетает проникновение в интрасеть и синхронизацию папок заметок Obsidian в облаке.
boy illustration
Центр конфигурации————Накос
boy illustration
Начинаем с нуля при разработке в облаке Copilot: начать разработку с минимальным использованием кода стало проще
boy illustration
[Серия Docker] Docker создает мультиплатформенные образы: практика архитектуры Arm64
boy illustration
Обновление новых возможностей coze | Я использовал coze для создания апплета помощника по исправлению домашних заданий по математике
boy illustration
Советы по развертыванию Nginx: практическое создание статических веб-сайтов на облачных серверах
boy illustration
Feiniu fnos использует Docker для развертывания личного блокнота Notepad
boy illustration
Сверточная нейронная сеть VGG реализует классификацию изображений Cifar10 — практический опыт Pytorch
boy illustration
Начало работы с EdgeonePages — новым недорогим решением для хостинга веб-сайтов
boy illustration
[Зона легкого облачного игрового сервера] Управление игровыми архивами
boy illustration
Развертывание SpringCloud-проекта на базе Docker и Docker-Compose