DFD-диаграмма (Data Flow Diagram) или «диаграмма потоков данных» — один из основных инструментов структурного анализа и проектирования информационных систем. DFD-диаграмма помогает понять, из чего состоит информационная система и как её нужно обработать.
В диаграмме можно выделить следующие структурные элементы:
– Функциональные блоки, которые описывают действие или их последовательность. Например, функции обработки физики игровых объектов.
– Внешние сущности. Это объекты, не входящие в систему, но являющиеся для нее источником или получателем информации. Например, человек.
– Хранилище данных. В нем могут находиться данные, которые нужно обработать, промежуточные результаты и конечные. Например, достижения пользователя за игровую сессию.
– Поток данных. На диаграмме изображается в виде стрелок, показывающих информацию, выходящую из одного блока и входящую в другой.
Такое разбиение на блоки позволяет описывать процессы любой сложности, в DFD-диаграммах каждый функциональный блок можно подразделять на сколь угодно много таких же блоков.
Ниже приведён пример DFD диаграмм, используемых при разработке компьютерной игры «Настольный теннис». Ниже (см. рис. 1) представлена контекстная диаграмма, на основе которой будет выполняться последующая декомпозиция. На ней изображены следующие элементы: внешняя сущность (игрок), хранилище данных (файл с рекордами), процесс (игра “настольный теннис”) и потоки данных (линии, оканчивающиеся стрелкой). Из контекстной диаграммы видно, что игрок обменивается информацией с функциональным блоком игровой логики, который в свою очередь сохраняет информацию о текущих рекордах в файл или загружает информацию об имеющихся из файла.
Рис. 1. Контекстная диаграмма
Далее следует диаграмма декомпозиции (см. рис. 2).
Рис. 2. Диаграмма декомпозиции
На ней отражена внутренняя структура процесса. То есть процесс (игра «настольный теннис»), представленный на контекстной диаграмме, был разбит на три более простых подпроцесса: обработка действия пользователя, обработка состояния игрового поля и отрисовка текущего состояния игры. Потоки данных, представленные на контекстной диаграмме, более детально отражены и раскрыты.
Далее каждый подпроцесс разбивается на более простые процессы. Например, процесс «Обработать состояние игрового поля» можно разбить еще на три подпроцесса (см. рис. 3).
Рис. 3. Обработка игрового поля
Таким образом, для игры настольный теннис были созданы DFD диаграммы, отражающие процессы, проходящие внутри программы.
На этапе проектирования Data Flow Diagrams играют ключевую роль. В первую очередь потому, что от четкости и правильности составления диаграммы зависит взаимопонимание в команде разработчиков, что минимизирует ошибки.
Каждый программист, увидев грамотно составленную диаграмму, поймет, как конкретный блок программы, за который он ответственен, «общается и взаимодействует» со связанными с ним блоками, какие потоки данных должны передаваться и обрабатываться, в каком виде они должны быть представлены и т. д.
Каждый элемент диаграммы, составленной на этапе проектирования, впоследствии станет обособленной частью программы. Например, такие элементы, как хранилища — это источник данных, обрабатываемой программой, зачастую — это файлы, а функциональные блоки — это будущие функции, которые призваны обрабатывать данные, содержащиеся в хранилищах.
От правильности построения DFD-диаграммы напрямую зависит успешность проекта, ведь чем меньше сил будет потрачено на сборку всей системы из множества различных блоков воедино, тем меньше расходуется такой важный ресурс, как время, а отсутствие временных задержек является фактором успешности проекта.
Также нельзя не отметить, что грамотно спроектированный проект приятно разрабатывать, а затем и поддерживать, ведь не придется думать о различных форс-мажорных ситуациях.
Они позволяют избегать многих проблем, связанных с недостаточной глубиной проработки на этапе проектирования, а вследствие этого экономить время и человеческие ресурсы
Поэтому DFD-диаграммы являются очень эффективным инструментом, способствующим разработке программных продуктов.
Литература:
- Абдикеев, Н. М. Информационный менеджмент [Текст] учеб. для вузов: [учеб. пособие для вузов]: / Н. М. Абдикеев, В. И. Бондаренко, А. Д. Киселев [и др.]: под науч. ред. Н. М. Абдикеева. — М.: ИНФРА-М, 2010. — 400 с.: ил. — (Высшее образование).
- Бирюков, А. Н. Лекции о процессах управления информационными технологиями [Текст] учеб. пособие: / А. Н. Бирюков. — М.: БИНОМ. Лаб. знанийИнтернет-Ун-т Информ. Технологий, 2010. — 215 с.: табл. — (Основы информационных технологий).
- Пинаев, Д. Н. Моделирование бизнес-процессов: доступно о сложном [Текст] / Д. Н. Пинаев, Д. С. Веретенников. — М., 2011. — 125 с.
- DFD -диаграммы потоков данных. [Электронный ресурс] — Режим доступа: http://www.proinfotech.ru/dmdlr2.htm.