Диаграммы потоков данных (DFD) являются фундаментальными инструментами в анализе и проектировании систем. Они предоставляют визуальное представление о том, как информация перемещается через систему. Понимание глубины DFD критически важно для обеспечения точного сбора требований. В этом руководстве рассматривается процесс перехода от высокоуровневой диаграммы контекста к детализированной диаграмме уровня 1. Мы изучим принципы декомпозиции, сохранения данных и структурной целостности без использования конкретных программных инструментов.

DFD не являются плоскими документами; они существуют в иерархии. Эта структура позволяет аналитикам рассматривать систему с разных уровней детализации. Каждый уровень добавляет больше конкретики процессам и потокам данных.
Переход от контекста к уровню 1 часто является наиболее сложным этапом для новых аналитиков. Требуется балансировать между необходимостью ясности и необходимостью детализации. Если диаграмма слишком высока, она не содержит действенных сведений. Если она слишком низка, она становится перегруженной и теряется общая картина.
Диаграмма контекста служит опорой для всей серии DFD. Она определяет границу изучаемой системы. Все, что находится внутри круга, является частью системы; все, что находится снаружи, — внешнее.
Определение границ имеет решающее значение. Сущность считается внешней, если она находится за пределами текущего проекта. Например, в системе расчета зарплаты налоговая служба может быть внешней сущностью, а финансовый отдел — внутренним. Неправильное определение границ приводит к расширению масштаба проекта и путанице.
Декомпозиция — это процесс разбиения сложного процесса на более мелкие, управляемые подпроцессы. Это основной механизм создания диаграммы уровня 1. Речь идет не просто о разделении задач, а о раскрытии внутренней логики системы.
При переходе от уровня 0 к уровню 1 необходимо соблюдать несколько правил для поддержания логической согласованности.
Одним из наиболее важных технических требований является балансировка потоков данных. Данные, поступающие в процесс уровня 0, должны быть равны данным, поступающим в процессы уровня 1. Аналогично, данные, выходящие из процесса уровня 0, должны быть равны данным, выходящим из процессов уровня 1.
Если диаграмма контекста показывает входящую в систему «Форму заказа», диаграмма уровня 1 должна показать, что эта же «Форма заказа» поступает в один из подпроцессов. Если диаграмма уровня 1 показывает передачу «ID клиента» внутри системы, она не может быть внешним входом или выходом на диаграмме уровня 0, если она там не была изначально.
Как только план декомпозиции готов, начинается непосредственное построение. Это включает в себя определение основных функциональных областей системы.
Посмотрите на единственный процесс из диаграммы контекста. Задайте себе вопрос: какие основные действия необходимы для выполнения цели системы? Эти действия станут пузырями или кругами на диаграмме уровня 1.
Соедините процессы стрелками. Эти стрелки представляют движение данных между внутренними процессами. Также можно нарисовать стрелки, соединяющие внешние сущности с новыми подпроцессами.
Хотя диаграммы контекста их исключают, диаграммы уровня 1 часто включают хранилища данных. Хранилище данных — это место, где данные хранятся в неактивном состоянии. Это может быть база данных, файл или физический файловый шкаф.
При рисовании хранилищ данных:
Даже опытные аналитики сталкиваются с ошибками при создании диаграмм потоков данных. Своевременное распознавание этих паттернов экономит время на проверке.
Чёрная дыра — это процесс, имеющий входы, но не имеющий выходов. Это означает, что данные потребляются без получения результата. В функциональной системе каждый вход должен приводить к какому-либо выходу или хранению данных.
Чудо — это процесс, имеющий выходы, но не имеющий входов. Это означает, что данные создаются из ничего. Каждый выход должен быть получен из каких-либо входных данных.
Диаграммы потоков данных отслеживают потоки данных, а не потоки управления. Поток управления представляет собой сигнал для запуска или остановки процесса (например, «Кнопка запуска нажата»). Если вы видите поток, похожий на сигнал управления, он, скорее всего, на самом деле является данными (например, «Запрос на запуск»). Диаграммы потоков данных не обрабатывают явно временные или логические элементы управления.
Это происходит, когда входы диаграммы уровня 1 не совпадают с входами диаграммы контекста. Всегда проверяйте сохранение данных после построения диаграммы уровня 1.
В следующей таблице кратко описаны различия между уровнями, чтобы помочь понять, когда использовать каждый из них.
| Функция | Диаграмма контекста (уровень 0) | Диаграмма уровня 1 |
|---|---|---|
| Центральный процесс | Один единственный процесс | Несколько подпроцессов |
| Хранилища данных | Нет | Да, включены |
| Уровень детализации | Общее высокое резюме | Функциональный разбор |
| Внешние сущности | Все основные сущности | Подмножество или те же сущности |
| Основная цель | Определите границы системы | Определите внутреннюю логику |
После первого черновика диаграмма должна быть проверена. Это не одноразовая проверка, а цикл обзора и уточнения.
По мере углубления в структуру диаграммы потоков данных (DFD) вы столкнетесь с решениями относительно детализации. Насколько глубоко следует идти?
Нет универсального правила, но существуют общие рекомендации:
Хранилища данных могут усложнить визуальный поток. Убедитесь, что они размещены логично. Не рисуйте линию, пересекающую процесс. Если линия должна пересечь процесс, используйте точку соединения или символ соединения, чтобы показать, что она проходит мимо, а не взаимодействует.
Различайте участников внутри системы и тех, кто находится вне её. Если человек-оператор является частью рабочего процесса системы (например, кассир, вводящий данные), он может считаться внутренним участником, но зачастую он представляется как внешний объект, поскольку находится за пределами программных границ. Ключевым является последовательность в определении.
Схема — это лишь часть истории. Текстовые описания необходимы для объяснения логики.
Успешный переход от контекста к уровню 1 требует дисциплинированного подхода. Речь идет не о рисовании большего количества блоков, а о раскрытии сути системы.
Следуя этим структурированным шагам, вы создаете прочную основу для проектирования системы. Диаграмма уровня 1 становится чертежом для разработчиков и инструментом коммуникации для бизнес-заинтересованных сторон. Она устраняет разрыв между абстрактными требованиями и конкретной реализацией.