Введение

Графическое представление "потока" данных через информационную систему.

Диаграмма потоков данных – это способ представления потока данных через процесс или систему (обычно информационную систему). Диаграмма потоков данных (DFD) также предоставляет информацию о входах и выходах каждой сущности и самого процесса. Диаграмма потоков данных не содержит элементов управления, правил принятия решений и циклов. Конкретные операции, основанные на данных, могут быть представлены блок-схемой. Существует несколько нотаций для отображения диаграмм потоков данных. Описанная выше нотация была представлена Томом ДеМарко в 1979 году в рамках структурированного анализа. Для каждого потока данных в процессе должна существовать как минимум одна конечная точка (источник и/или получатель). Более детальное представление процесса может быть выполнено на другой диаграмме потоков данных, которая разбивает этот процесс на подпроцессы. Диаграмма потоков данных является инструментом, входящим в состав структурированного анализа и моделирования данных. При использовании UML диаграмма деятельности обычно заменяет диаграмму потоков данных. Специальной формой схемы потоков данных является схема потоков данных, ориентированная на местоположение. Диаграммы потоков данных можно рассматривать как инвертированные сети Петри, поскольку места в таких сетях соответствуют семантике хранилищ данных. Аналогично, семантика переходов в сетях Петри и потоков данных и функций в диаграммах потоков данных следует считаться эквивалентной.

История

DFD-нотация опирается на теорию графов, изначально использовавшуюся в операционных исследованиях для моделирования рабочих процессов в организациях и в информатике для моделирования потока входных и выходных данных в вычислениях. Впервые она была предложена Ларри Константином и популяризирована Эдвардом Юрдоном, Томом ДеМарко, Крисом Гейном и Триш Сарсон, которые дополнили технику диаграммирования различными обозначениями и практиками ведения словаря данных. DFD были полезны для документирования основных потоков данных или для разработки высокоуровневого проекта с точки зрения потока данных.

Правила создания ДФО

Названия сущностей должны быть понятны без дополнительных комментариев. DFD – это система, созданная аналитиками на основе интервью с пользователями системы. Она предназначена для разработчиков системы, с одной стороны, и подрядчиков проекта, с другой, поэтому названия сущностей должны быть адаптированы для предметной области модели или пользователей – как любителей, так и профессионалов. Названия сущностей должны быть общими (не привязанными к конкретным лицам, выполняющим деятельность), но при этом четко идентифицировать сущность. Процессы следует нумеровать для упрощения сопоставления и ссылок на конкретные процессы. Нумерация может быть произвольной, однако необходимо сохранять единообразие на всех уровнях DFD (см. Иерархию DFD). DFD должен быть наглядным, поскольку рекомендуется, чтобы в одном DFD было от 6 до 9 процессов, но не менее 3. Исключением является так называемая контекстная диаграмма, где единственный процесс символизирует моделируемую систему и все внешние сущности, с которыми она взаимодействует.

Устойчивость DFD

DFD должен быть согласован с другими моделями системы — диаграммой «сущность-связь», диаграммой переходов состояний, словарем данных и моделями спецификации процессов. Каждый процесс должен иметь имя, входы и выходы. Каждый поток данных должен иметь имя (исключение – см. «Поток»). Каждое хранилище данных должно иметь входящий и исходящий потоки данных. Входящие и исходящие потоки данных не обязательно должны отображаться на одной DFD, но они должны присутствовать на другой DFD, описывающей ту же систему. Исключение составляют внешние хранилища данных (внешнее хранение), с которыми система взаимодействует.

Иерархия DFD

Для того, чтобы сделать DFD более наглядным (т.е. не содержащим слишком много процессов), можно создавать многоуровневые DFD. DFD более высокого уровня менее детализированы (агрегируют более детальные DFD на более низких уровнях). Контекстная DFD является высшим уровнем в иерархии (см. Правила создания DFD). За так называемым нулевым уровнем следует DFD 0, начиная с нумерации процессов (например, процесс 1, процесс 2). На следующем, так называемом первом уровне – DFD 1 – нумерация продолжается. Например, процесс 1 разбивается на первые три уровня DFD, которые нумеруются 1.1, 1.2 и 1.3. Аналогично, процессы второго уровня (DFD 2) нумеруются 2.1.1, 2.1.2, 2.1.3 и 2.1.4. Количество уровней зависит от размера моделируемой системы. Процессы DFD 0 могут иметь различное количество уровней детализации. DFD 0 содержит наиболее важные (обобщенные) функции системы. Самый нижний уровень должен включать процессы, для которых можно создать спецификацию объемом примерно в одну страницу формата А4. Если мини-спецификация получается длиннее, целесообразно создать дополнительный уровень для этого процесса, разбив его на несколько более мелких процессов. Для наглядного представления всей иерархии DFD можно создать вертикальную (обобщающую) диаграмму. Хранилище данных отображается на самом высоком уровне, где оно впервые используется, а также на каждом последующем уровне.