Анализ данных   •  04 июля  2023  •  5 мин чтения

DFD: примеры и правила построения диаграмм потоков данных

Разбираем, как создать диаграмму потоков данных, на примере регистрации пассажира на рейс.

Что такое диаграмма потоков данных

DFD (от англ. data flow diagrams) — это графическое представление потока данных в информационной системе. С его помощью можно описывать входящие и выходящие потоки данных и хранилища этих данных. Например, чтобы подготовить эту статью, редактор сначала получила тему, метатеги и информацию от эксперта — это входные данные. Затем обработала эту информацию, и на выходе читатель получил готовую статью — выходные данные.

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

Символы и нотации DFD

Самые распространённые нотации для построения DFD названы в честь их создателей:

● нотация Йордона ― Де Марко;
● нотация Гейна ― Сарсона.

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

Подчиняясь правилам и инструкциям выбранной системы, символы отображают четыре компонента диаграммы DFD: внешнюю сущность, хранилище данных, процесс и поток данных

1. Процесс — активность, которая приводит к преобразованию данных. Например, в процессе оплаты заказа в интернет-магазине человек вводит данные банковской карты, а в ответ получает статус оплаты.
2. Внешние сущности — это участники процесса, которые взаимодействуют с данными. Например, оплата заказа в интернет-магазине связана с сущностями «пользователь» и «банк».
3. Хранилище данных — место, где хранится информация для последующего использования системой. Например, базы данных пользователей.
4. Потоки данных — маршруты, по которым информация перемещается между внешними сущностями, процессами и хранилищами данных.

На курсе «Системный аналитик» студенты на реальных проектах учатся моделировать данные, строить диаграммы потоков данных и составлять требования для разработки ПО. На всех этапах обучения их сопровождают опытные наставники и ревьюеры.

Уровни и слои DFD-схем

С помощью слоёв и уровней диаграмму DFD можно дополнять подробностями, фокусируя внимание на одном конкретном участке.
Материал по теме:
Сущности и связи: как и для чего системные аналитики создают ER‑диаграммы

Всего существует три общих уровня: контекстный, физический и логический.

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

Контекстная диаграмма DFD — лёгкий способ начать работать с диаграммами, если есть страх белого листа

2. Логический уровень. Более подробно описывает процессы, которые происходят в системе, какие входящие и выходящие данные нужны для каждого из процессов.

Если разбить обобщенный процесс контекстной диаграммы на подпроцессы, получится детализировать потоки данных

3. Физический уровень. Более детализированный логический уровень, где подробно раскрываются все входящие и выходящие данные, появляется подробное описание баз данных, которые используются в работе, и способ реализации всех элементов модели.

Если DFD-уровни становятся слишком сложными, вводятся слои. Они позволяют собрать выпадающие уровни и навести порядок в схеме. Аналитики работают со схемами на логическом уровне.

Как создать диаграмму потоков данных

Разберём, как составить диаграмму потоков данных, которые участвуют в работе системы регистрации пассажиров на поезд:

1. Выделить сущности.
Нужно определить все сущности, которые используют систему.

В этой предметной области есть две сущности, которые используют систему: пассажир и контролёр

2. Определить процессы.
Пассажиры используют систему, чтобы регистрироваться на рейс. А контролёры используют систему, чтобы проверить статус регистрации каждого пассажира.

Система выполняет две функции (два процесса): «Зарегистрировать пассажира на рейс» и «Проверить регистрацию пассажира»

3. Указать потоки данных между сущностями и процессами.
Для того чтобы зарегистрироваться на рейс, пассажир должен предоставить номер бронирования и свои данные. Например, ФИО, серию и номер паспорта. Стрелки с этими данными идут от сущности в процесс. После регистрации на рейс пассажир получает посадочный талон. Эти данные уже направляются от процесса к сущности.

Чтобы проверить регистрацию пассажира на рейс, контролёр должен внести его данные. А после проверки контролёр получит статус регистрации пассажира

4. Определить хранилища данных и потоки к ним.
Когда стало понятно, какие данные получает система на входе и какие данные она должна отдать на выходе, на диаграмму нужно добавить хранилища. В них будут направляться данные, там они будут храниться и извлекаться по требованию пользователя. Вся информация, которая нужна системе для выполнения двух процессов, сосредоточена в трёх хранилищах: «Бронирования», «Пассажиры» и «Рейсы».

Когда система регистрирует пассажира на рейс, она получает номер бронирования и проверяет его наличие в хранилище «Бронирование». Данные пассажира передаются в хранилище «Пассажиры». Для проверки регистрации контролёр задействует то же самое хранилище — «Пассажиры»

Правила построения DFD-диаграмм

Верно собрать требования на начальном этапе. Если задача — преобразовать данные пассажира в регистрацию на рейс, аналитик должен задать много вопросов разработчикам и фокус-группе. Например: «Что такое регистрация пассажира на рейс?», «Что нужно для того, чтобы эта регистрация была пройдена?», «Что будет результатом?». Нужно найти ответы — как от начала и до конца происходит процесс и что нужно, чтобы он был выполнен. От того, насколько точно заданы вопросы, зависит качество сбора требований, а значит, и диаграмма потока данных в системе. К тому же это сокращает вероятность ошибок.

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

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

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

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

Разработка баз данных. DFD используют в компаниях, где важна безопасность данных, например в медицинских организациях. Информация о пациентах ― врачебная тайна, поэтому предъявляются строгие требования в отношении того, как и где эти данные хранятся. Над разработкой таких баз данных работают аналитики.

Совет эксперта

Маргарита Нижельская
На курсе мы работаем с нотацией Гейна ― Сарсона. Она популярная, понятная, и её символы легко запомнить. Если достаточно тщательно собирать требования, не лениться моделировать процессы и соблюдать базовые правила работы с нотацией, то диаграммы будут получаться качественными и полезными.
Статью подготовили:
Маргарита Нижельская
Яндекс Практикум
Автор курса «Системный аналитик», специалист по системному и бизнес-анализу
Яндекс Практикум
Редактор
Полина Овчинникова
Яндекс Практикум
Иллюстратор

Дайджест блога: ежемесячная подборка лучших статей от редакции

Поделиться
НИКОГДА_НЕ_СДАВАЙСЯ_3948 — это код для секретного конкурса. Скопируй его, отправь нашему боту в Telegram и получи баллы, чтобы получить шанс выиграть приз!

Успейте начать учебу в Практикуме до конца ноября со скидкой 20%

Tue Jul 16 2024 18:46:51 GMT+0300 (Moscow Standard Time)