Диаграммы потоков данных используются на различных этапах разработки системы — от первоначального сбора требований до детального проектирования и даже в документации системы. Они помогают заинтересованным сторонам, включая разработчиков, аналитиков и конечных пользователей, получить четкое понимание того, как данные обрабатываются и преобразуются внутри системы. Визуализируя эти взаимодействия, диаграммы потоков данных способствуют улучшению коммуникации, выявлению потенциальных узких мест или неэффективностей и обеспечивают соответствие системы ее функциональным требованиям.
Этот учебник призван предоставить всестороннее руководство по пониманию и созданию диаграмм потоков данных. Мы подробно рассмотрим ключевые концепции, лежащие в основе DFD, исследуем взаимосвязи между их компонентами и предложим практические советы и руководства, чтобы помочь вам создавать эффективные и содержательные диаграммы. Независимо от того, являетесь ли вы новичком в DFD или стремитесь усовершенствовать свои навыки, этот учебник оснастит вас знаниями и методами, необходимыми для эффективного использования DFD в ваших проектах.
Обозначение элементов диаграммы потоков данных
Диаграммы потоков данных (DFD) используют различные обозначения для представления различных элементов в системе. Изображение, которое вы предоставили, иллюстрирует четыре различных обозначения элементов DFD: Yourdon DeMarco, Gane & Sarson, SSADM и Yourdon и Coad. Давайте рассмотрим каждое обозначение и его представление внешних сущностей, процессов, хранилищ данных и потоков данных:
1. Обозначение Yourdon DeMarco
- Внешняя сущность: Представляется прямоугольным ящиком с меткой «Сущность». Обозначает источники или пункты назначения данных вне контроля системы.
- Процесс: Изображается как круг с меткой «Процесс». Обозначает операции или преобразования, выполняемые с данными внутри системы.
- Хранилище данных: Показано как прямоугольник с открытым концом с меткой «Хранилище данных». Обозначает места, где хранятся данные и к которым могут обращаться процессы.
- Поток данных: Изображается стрелками, указывающими направление перемещения данных между сущностями, процессами и хранилищами данных.
2. Обозначение Gane & Sarson
- Внешняя сущность: Отображается как прямоугольный ящик с меткой «Сущность», аналогично обозначению Yourdon DeMarco.
- Процесс: Представляется как прямоугольник с закруглёнными углами с меткой «Процесс» и числом (например, 1.0), указывающим уровень или последовательность процесса.
- Хранилище данных: Показано как прямоугольник с открытым концом и вертикальной линией слева, с меткой «Хранилище данных». Вертикальная линия может содержать ссылочный номер (например, D1).
- Поток данных: Изображается стрелками, показывающими направление потока данных между элементами.
3. Обозначение SSADM (структурная методология анализа и проектирования систем)
- Внешняя сущность: Изображается как овал с меткой «Сущность», что отличает его от других обозначений.
- Процесс: Показано как прямоугольник с закруглёнными углами с меткой «Процесс», аналогично Gane & Sarson, но без дополнительной нумерации.
- Хранилище данных: Представлено как прямоугольник с меткой «Хранилище данных», без вертикальной линии, присутствующей в обозначении Gane & Sarson.
- Поток данных: Обозначается стрелками, показывающими направление перемещения данных.
4. Нотация Yourdon и Coad
- Внешняя сущность: Изображается в виде прямоугольной коробки с надписью «Сущность», аналогично нотации Yourdon DeMarco и Gane & Sarson.
- Процесс: Показан как круг с надписью «Процесс», аналогично нотации Yourdon DeMarco.
- Хранилище данных: Представлен как открытый прямоугольник с надписью «Хранилище данных», аналогично нотации Yourdon DeMarco.
- Поток данных: Иллюстрируется стрелками, указывающими направление потока данных между элементами.
Ключевые различия
- Форма и обозначение: Каждая нотация использует различные формы и правила обозначения для внешних сущностей, процессов и хранилищ данных.
- Представление процесса: Gane & Sarson и SSADM используют закруглённые прямоугольники для процессов, тогда как Yourdon DeMarco и Yourdon и Coad используют круги.
- Представление хранилища данных: Gane & Sarson включает вертикальную линию с номером ссылки, тогда как другие нотации используют простые прямоугольники.
Понимание этих нотаций позволяет аналитикам и проектировщикам выбирать ту, которая лучше всего соответствует потребностям и предпочтениям их проекта, обеспечивая ясную и эффективную коммуникацию при проектировании системы.

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

Декомпозиция сверху вниз
Этот диаграмма представляет более детализированную диаграмму потоков данных (DFD) для системы обработки заказов, с особым акцентом на взаимодействие между клиентом, брокером и процессом размещения заказов. Ниже приведено описание компонентов и их взаимодействий:

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