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










