В разработке программного обеспечения тоже есть процессы, которые связывают его с данными. Если есть покупка в интернет-магазине, есть и создание заказа или его отмена. Диаграмма потоков данных позволяет графически изобразить данные, которые участвуют в этом процессе. Такая визуализация понятна не только программистам, но и заказчикам или сторонним пользователям.
Самые распространённые нотации для построения DFD названы в честь их создателей:
● нотация Йордона ― Де Марко;
● нотация Гейна ― Сарсона.
Основное различие между ними ― в символах, которые используются для обозначения процессов. Нельзя сказать, что одна нотация лучше другой, но нотация Гейна ― Сарсона более распространена.
1. Процесс — активность, которая приводит к преобразованию данных. Например, в процессе оплаты заказа в интернет-магазине человек вводит данные банковской карты, а в ответ получает статус оплаты.
2. Внешние сущности — это участники процесса, которые взаимодействуют с данными. Например, оплата заказа в интернет-магазине связана с сущностями «пользователь» и «банк».
3. Хранилище данных — место, где хранится информация для последующего использования системой. Например, базы данных пользователей.
4. Потоки данных — маршруты, по которым информация перемещается между внешними сущностями, процессами и хранилищами данных.
На курсе «Системный аналитик» студенты на реальных проектах учатся моделировать данные, строить диаграммы потоков данных и составлять требования для разработки ПО. На всех этапах обучения их сопровождают опытные наставники и ревьюеры.
Всего существует три общих уровня: контекстный, физический и логический.
1. Контекстный уровень. На этом уровне специалист в общих чертах описывает системы и процессы. Как правило, вся система представлена как один процесс. Диаграммы контекстного уровня используются редко, прежде всего они нужны, чтобы в понятном виде презентовать заказчику проект.
2. Логический уровень. Более подробно описывает процессы, которые происходят в системе, какие входящие и выходящие данные нужны для каждого из процессов.
3. Физический уровень. Более детализированный логический уровень, где подробно раскрываются все входящие и выходящие данные, появляется подробное описание баз данных, которые используются в работе, и способ реализации всех элементов модели.
Если DFD-уровни становятся слишком сложными, вводятся слои. Они позволяют собрать выпадающие уровни и навести порядок в схеме. Аналитики работают со схемами на логическом уровне.
Разберём, как составить диаграмму потоков данных, которые участвуют в работе системы регистрации пассажиров на поезд:
1. Выделить сущности.
Нужно определить все сущности, которые используют систему.
2. Определить процессы.
Пассажиры используют систему, чтобы регистрироваться на рейс. А контролёры используют систему, чтобы проверить статус регистрации каждого пассажира.
3. Указать потоки данных между сущностями и процессами.
Для того чтобы зарегистрироваться на рейс, пассажир должен предоставить номер бронирования и свои данные. Например, ФИО, серию и номер паспорта. Стрелки с этими данными идут от сущности в процесс. После регистрации на рейс пассажир получает посадочный талон. Эти данные уже направляются от процесса к сущности.
4. Определить хранилища данных и потоки к ним.
Когда стало понятно, какие данные получает система на входе и какие данные она должна отдать на выходе, на диаграмму нужно добавить хранилища. В них будут направляться данные, там они будут храниться и извлекаться по требованию пользователя. Вся информация, которая нужна системе для выполнения двух процессов, сосредоточена в трёх хранилищах: «Бронирования», «Пассажиры» и «Рейсы».
✅ Верно собрать требования на начальном этапе. Если задача — преобразовать данные пассажира в регистрацию на рейс, аналитик должен задать много вопросов разработчикам и фокус-группе. Например: «Что такое регистрация пассажира на рейс?», «Что нужно для того, чтобы эта регистрация была пройдена?», «Что будет результатом?». Нужно найти ответы — как от начала и до конца происходит процесс и что нужно, чтобы он был выполнен. От того, насколько точно заданы вопросы, зависит качество сбора требований, а значит, и диаграмма потока данных в системе. К тому же это сокращает вероятность ошибок.
✅ Диаграмма не должна разрастаться до безграничных размеров. Некоторые данные, например имя, номер паспорта и телефон, можно сгруппировать в персональные данные и дать пояснение уже в техническом задании. Это облегчит восприятие и сделает диаграмму более читаемой.
Разработка программного обеспечения. DFD логического уровня помогает разработчикам собрать и проанализировать информацию о функциях системы и данных, которые для этого нужны. DFD физического уровня даёт информацию о том, какие технологии нужно использовать для работы с данными.
Управление предприятием. Бизнес построен на системах и процессах — компания просто не может работать без них. Диаграммы потоков данных используют для планирования Agile-процессов и отстройки процессов внутри компании. Например, для улучшения логистики, перераспределения ресурсов и внедрения организационных изменений.
Разработка баз данных. DFD используют в компаниях, где важна безопасность данных, например в медицинских организациях. Информация о пациентах ― врачебная тайна, поэтому предъявляются строгие требования в отношении того, как и где эти данные хранятся. Над разработкой таких баз данных работают аналитики.
Читать также: