Что такое DFD (диаграммы потоков данных)

Аннотация

Подробное описание DFD (диаграмм потоков данных). Определение и методы использования. Зачем нужны DFD-нотации, где они применяются на практике, и как их быстро создавать. Вопросы и ответы по DFD-нотациям. Простые методы работы с DFD.

Оглавление

  1. Зачем нужна нотация DFD?
  2. Как создавать нотации DFD
  3. Где используются DFD нотации
  4. DFD нотации – это просто!
  5. Вопросы и ответы

Содержание

В комментариях к одной из моих прошлых статей, посвященной IDEF0, один из пользователей высказал просьбу рассказать подробнее о том, что такое DFD. Понятие это несколько запутанное, многие мои клиенты также задают вопросы о потоках данных и стандартах построения диаграмм. А потому я решил эту статью посвятить DFD.

DFD — общепринятое сокращение от англ. data flow diagrams — диаграммы потоков данных. Так называется методология графического структурного анализа, описывающая внешние по отношению к системе источники и адресаты данных, логические функции, потоки данных и хранилища данных, к которым осуществляется доступ. Диаграмма потоков данных (data flow diagram, DFD) — один из основных инструментов структурного анализа и проектирования информационных систем, существовавших до широкого распространения UML. Википедия

По моему мнению, определение из русскоязычной Википедии, несколько перегружено информацией и, в результате, излишне сложно для понимания. Кроме того, лично я считаю, что DFD и UML - это разные инструменты, а потому некорректно утверждать, что DFD - это просто предшественник UML.

Для себя я вывел следующую формулировку:

DFD – это нотация, предназначенная для моделирования информационный систем с точки зрения хранения, обработки и передачи данных.

Есть задача по моделированию? Напишите мне или позвоните по телефону +7(495)320-50-40, я помогу Вам разобраться!

Написать

Зачем нужна нотация DFD?

Исторически синтаксис этой нотации применяется в двух вариантах - Йордана (Yourdon) и Гейна-Сарсона (Gane-Sarson). Различия между ними – в таблице ниже:

Варианты синтаксиса нотаций DFD

Сам я пользуюсь только одним из вариантов, по Гейну и Сарсону. Но когда я изучал материал перед написанием этой статьи, я увидел эту таблицу сравнения. Считаю, что она важна не столько для выбора варианта синтаксиса, он будет зависеть, скорее от выбора программного обеспечения для создания нотаций и ваших личных предпочтений, сколько как наглядная иллюстрация того факта, что в DFD нет жесткого синтаксиса, как, например, в BPMN. Здесь можно использовать разные варианты, главное, чтобы они были понятны вам и вашим клиентам. Нотации DFD - удобный инструмент для создания нерегламентированных диаграмм, которые можно сделать быстро и с максимумом свободы.

Применяется этот вид нотации в случае, когда требуется описание системы как хранилища данных. Т.е. нотация должна наглядно ответить на вопросы:

  • Из чего состоит информационная система?
  • Что нужно, чтобы обработать информацию?

Непосредственно DFD нотация состоит из следующих элементов:

  • Процесс (англ. Process), т.е. функция или последовательность действий, которые нужно предпринять, чтобы данные были обработаны. Это может быть создание заказа, регистрация клиента и т.д. В названиях процессов принято использовать глаголы, т.е. «Создать клиента» (а не «создание клиента») или «обработать заказ» (а не «проведение заказа»). Здесь нет строгой системы требований, как, например, в IDEF0 или BPMN, где нотации имеют жестко определенный синтаксис, так как они могут быть исполняемыми. Но все же определенных правил стоит придерживаться, чтобы не вносить путаницу при чтении DFD другими людьми.
  • Внешние сущности (англ. External Entity). Это любые объекты, которые не входят в саму систему, но являются для нее источником информации либо получателями какой-либо информации из системы после обработки данных. Это может быть человек, внешняя система, какие-либо носители информации и хранилища данных.
  • Хранилище данных (англ. Data store). Внутреннее хранилище данных для процессов в системе. Поступившие данные перед обработкой и результат после обработки, а также промежуточные значения должны где-то храниться. Это и есть базы данных, таблицы или любой другой вариант организации и хранения данных. Здесь будут храниться данные о клиентах, заявки клиентов, расходные накладные и любые другие данные, которые поступили в систему или являются результатом обработки процессов.
  • Поток данных (англ. Data flow). В нотации отображается в виде стрелок, которые показывают, какая информация входит, а какая исходит из того или иного блока на диаграмме.

Нотация DFD может описывать любые действия, в том числе, процесс продажи или отгрузки товара, работу с заявками от клиентов или закупки материалов, с точки зрения описания системы. Эта нотация помогает понять, из чего должна состоять система, что нужно для автоматизации бизнес-процесса. Но DFD не является описанием непосредственно бизнес-процесса. Здесь, например, нет такого важного параметра, как время. Также в этой нотации не предусмотрены условия и «развилки». В DFD мы рассматриваем откуда появляются данные, какие данные нужны, их обработку и куда результаты отправить. Т.е. в этой нотации описывается не столько непосредственно процесс, сколько движение потоков данных. Для работы с процессами я рекомендую использовать BPMN или IDEF3 (о ней я расскажу в другой раз).

Как создавать нотации DFD

Давайте для примера рассмотрим нотацию автоматизации продаж. Допустим, у нас есть клиент, который делает заявку через сайт или по телефону. Есть менеджер, который регистрирует эту заявку. Таким образом, в системе появляются данные – клиент и его заказ. Работник склада должен это увидеть и произвести отгрузку товара с оформлением всех необходимых документов и передать документы клиенту.

Последовательность получается такая:

  1. Клиент предоставляет свои данные и заявку.
  2. Менеджер проверяет и вносит полученные данные в систему.
  3. Работник склада формирует документы, например, расходную накладную, и отгружает товар.
  4. Клиент получает товар и пакет документов к нему.

Эту последовательность действий нам необходимо увидеть с точки зрения хранения данных и работы с ними в IT-системе.

С точки зрения DFD у нас имеются:

  • Покупатель – это внешняя сущность, которая является источником данных и получением результата.
  • Процесс обработки заказа (подтверждение и проводка данных в системе менеджером).
  • Сбор заказа на складе (после получения заявки).
  • Оформление отгрузки (создание необходимых документов).

Какие правила необходимо знать, чтобы создать DFD диаграмму:

  • Каждый процесс должен иметь один вход и один выход. Смысл процессов здесь заключается в обработке данных, а потому процесс должен получить данные (входящая стрелка) и отдать куда-то после обработки (исходящая стрелка);
  • Процесс обработки данных должен иметь внешнюю входящую стрелку (данные от внешней сущности). Для того, чтобы любой подобный процесс начал работать, мало использовать данные из хранилища, должна поступить новая информация для последующей обработки;
  • Стрелки не могут связывать напрямую хранилища данных, все связи идут через процессы. Нет смысла просто перемещать данные из одного места в другое, а именно так читается прямая связь двух хранилищ стрелкой. Данные поступают для того, чтобы производились какие-то действия, в нашем примере – осуществлялся процесс продажи. А это возможно только посредством обработки (процесса);
  • Все процессы должны быть связаны либо с другими процессами, либо с другими хранилищами данных. Процессы не существуют сами по себе, а потому результат должен куда-то передаваться;
  • Декомпозиция. В DFD-диаграммах предусмотрена возможность создавать крупные процессы и декомпозировать их на подпроцессы с подробным описанием действий. Например, мы можем создать процесс «создание заявки», который потом декомпозировать на последовательность действий, например, на получение заявки, отдельно – проверку и получение данных клиента, если товар в интернет-магазине продается под заказ, то также при формировании заявки потребуется получить данные от поставщика о наличии нужных наименований и т.д. И тогда на верхней диаграмме у нас будет блок «обработка заявки», а при декомпозировании мы получим диаграмму с подробной последовательностью действий на этом этапе. При этом ни на одном этапе у нас не будет условий и ветвления. Будет процесс и его декомпозиция глубиной до 3-4 уровней.

Как будет выглядеть диаграмма (без декомпозиции, верхний уровень):

Диаграмма процесса продаж

И декомпозиция основного элемента нашей диаграммы:

Детализация диаграммі

Где используются DFD нотации

DFD-диаграммы активно применяются при разработке программного обеспечения. При этом:

  • хранилища данных – это электронные таблицы и базы данных,
  • внешние сущности – клиенты или другие базы данных, в том числе, из других программ (интеграция и обмен данными),
  • процессы – это выполняемые функции и модули в системе.

Также DFD нотации удобны при анализе, когда система рассматривается с точки зрения документооборота. При этом можно наглядно увидеть, где хранятся данные, каким образом производится обмен документацией, где в этом процессе допущены ошибки организации бизнес-процессов и пр. Но здесь применение DFD диаграмм требует особой осторожности. Все же это не описание бизнес-процесса как такового, а, скорее, диаграмма перемещения данных при реализации бизнес-процессов. Но как вспомогательный вариант, в том числе, для наглядной демонстрации клиенту существующих проблем и методов оптимизации работы, этот вид нотаций вполне подойдет.

Например, для выявления проблем документооборота, дублирования документов или, наоборот, недостающей документации или электронных данных в системе, очень удобно создать отдельно – описание бизнес-процесса, а потом к нему – DFD-нотацию. Либо наоборот, предварительно для понимания основ работы бизнеса и особенностей реализации документооборота создается DFD-нотация. Она помогает выявить, например, отсутствие в системе автоматизации важных документов, которые на самом деле создаются (на бумаге), но в системе никак не отображаются. А потом уже строится оптимизированный бизнес-процесс с учетом выявленных нюансов документооборота.

DFD нотации – это просто!

Я считаю, что DFD нотации – это действительно много проще, чем это кажется на первый взгляд. Главное, четко понимать ограничения построения этого типа диаграмм (отсутствие условий, времени и т.д.) и применять их там, где именно такой подход окажется удобнее. Возможно, вы найдете собственные варианты применения DFD, которые я выше не описал. В моем перечне присутствуют только те варианты, которые я использую на практике.

Что в DFD-нотациях особенно удобно, здесь не обязательно придерживаться строгих правил и синтаксиса, как, например, в BPMN. Эти нотации не будут исполнимыми, они нужны для понимания особенностей документооборота, структуры и последующей работы с данными. А потому, если ваша диаграмма понятна и вам, и заказчику, какие-то отступления от стандартов DFD вполне допустимы.

Рисовать диаграммы DFD можно, в принципе, где и как вам удобнее. Но если вы хотите работать с декомпозицией, выстраивать систему на разных уровнях детализации, то «рисовалки» (Visio, Paint и тому подобные) придется забыть. Вам потребуются специализированные программы для моделирования.

Лично я пользуюсь программой ERwin и всем ее рекомендую. Одна из причин моего выбора – это особенности декомпозиции. В ERwin, как и в некоторых других подобных системах, существует возможность декомпозирования DFD-процессов в формате IDEF3, т.е. основная диаграмма будет в формате DFD, и на самом общем уровне вы будете видеть основные потоки данных и «узлы» их обработки. А при декомпозиции вы сможете использовать уже процессный подход, что также бывает очень удобно для разработки крупных систем или работе с разными подразделениями бизнеса.

Вопросы и ответы

В чем разница между DFD и UML?

Существует язык создания нотаций UML, который также позиционирует себя как нотации, основанные на работе с данными. Но при этом UML - это уже язык программирования, здесь есть жесткий синтаксис, требования, но и возможностей для описания различных функций также много больше. DFD - это нотации, которые применяются более свободно, подходят, скорее, для планирования, изучения возможных вариантов решения, обсуждения с заказчиком и т.д.

Если вы - разработчик, и знаете UML, волне возможно, что даже какие-то предварительные решения вам будет удобнее создавать в этой нотации. А для бизнес-консультанта DFD всегда будет удобнее в качестве инструмента, так как бизнес-консультанту не требуется подробное описание функций с точки зрения автоматизации, это - задача технических специалистов. Зато время и силы DFD значительно экономит.

При этом не стоит рассматривать DFD как упрощенный вариант UML. Не смотря на схожесть в подходе, это - разные инструменты, предназначенные для разных целей.

Какое количество элементов может использоваться в DFD?

В отличие от систем с жестким синтаксисом и регламентом, в DFD нет ограничения по количеству элементов, которые могут находиться на одной диаграмме. Для сравнения: в IDEF0 количество таких элементов , дальше - только детализация (декомпозиция) или разные нотации.

С одной стороны, это большой плюс, так как отсутствие ограничений дает максимум свободы и комфорта при составлении нотации. С другой стороны, этой свободой злоупотреблять не рекомендуется. Помните, чем больше элементов у вас на диаграмме, тем сложнее ее читать.

Можно ли использовать нотации DFD для работы с клиентами?

В принципе, запретить это делать никто не может. Более того, в ограниченных количествах как иллюстрацию к каким-то вашим пояснениям такие нотации прекрасно подойдут и при обсуждении особенностей проекта с клиентом. Но все же, клиенты обычно слабо разбираются в вопросах автоматизации, структуре хранения данных, возможностях обработки и т.д. Это все находится в компетенции разработчиков. А нотации DFD строятся с учетом особенностей работы с данными, потому я все же рекомендую применять их преимущественно при обсуждении проекта специалистами, при создании технического описания и задания разработчикам, для повышения понимания именно разработчиками сути и особенностей проекта. Неподготовленному заказчику даже объяснить особенности DFD-нотаций может быть сложно.


Бизнес-консультант с большим практическим опытом работы в России и ближайшем зарубежье. Автор многочисленных публикаций и нескольких книг по оптимизации и автоматизации бизнеса. Живу и работаю в Москве, руководитель компании Trinion. Делюсь опытом посредством блога на сайте trinion.org


Вам также может понравиться

Что такое бизнес-процесс и описание бизнес-процесса

Определение бизнес-процесса простыми словами и важные особенности процессного подхода. Когда необходим бизнес-процесс, методы моделирования бизнес-процессов и правила их описания. Примеры, ответы на частые вопросы.

Описание нотации IDEF3

Что из себя представляет нотация IDEF3. Из каких элементов состоит? Как используют эту нотацию и как она связана с IDEF0. О этом и многом другом вы узнаете из данной статьи.

Как описать бизнес-процесс в нотации BPMN

Как показывает практика описания процесса, для многих людей непонятно в какой последовательности описывать процесс. Прочитав данную статью вы поймете как описывать и какой минимальный набор действий необходимо сделать для получения описания процесса в нотации BPMN. Вы также можете использовать последовательность описанную в статье и для описания процесса в нотации IDEF3.

Краткое описание BPMN с примером

Что такое BPMN – определение и подробное описание нотации. Из чего состоит BPMN, основные элементы бизнес-моделирования: как их правильно использовать. Различия между исполняемыми и неисполняемыми бизнес-процессами. Как работать с BPMN на практике.

Путь покупателя интернет-магазина ( Customer Journey ) с использованием УФМТП

Недавно у меня вышла статья под названием «Универсальная функциональная модель торгового предприятия в нотации IDEF0». И одно из пожеланий читателей было пояснить подробнее, как я лично пользуюсь этой моделью и как вообще ее можно применять на практике. В этой статье я выполню просьбу читателей. И на примере взаимодействия покупателей с интернет-магазином продемонстрирую практическое применение этой модели.

IDEF0. Знакомство с нотацией и пример использования

Описание графической нотации IDEF0. Определение стандарта. Особенности функционального моделирования бизнес-процессов. Пример нотации IDEF0 и его подробное описание. Перечень важных ошибок при использовании IDEF0.

Bizagi. Описание. Пример

Обзор программной системы Bizagi. Предназначение BPM-системы. Основные функции и возможности. Возможности моделирования, разработки бизнес-процессов, модуль исполнения. Настройки доступа. Подробное описание особенностей работы в Bizagi для пользователей и разработчиков.

Что такое BPMS

Что такое BPMS система – определение и подробные пояснения. Как работать в BPMS системе с точки зрения разработчика и пользователя. Варианты реализации бизнес-процессов на практике. Преимущества процессного подхода при автоматизации бизнеса. Почему я рекомендую BPMN 2.0.

Перевод стандарта IDEF0 с английского на русский язык

Те, кто будет читать перевод и сравнивать с компиляциями русскоязычной документации IDEF0, обязательно обратят внимание на некоторые несоответствия и разночтения с другими источниками, и хотя в работе над этим материалом, работало несколько человек, но перевод сделан под моим контролем и с моим участием, поэтому далее я буду писать от своего имени, и далее постараюсь объяснить почему я перевел так, а не иначе.

Пример процессного подхода: предпроектное обследование промышленной компании. Пример BPMN диаграммы

Кейс. Пример процессного подхода при автоматизации промышленной компании. Предпроектное обследование бизнеса, методы автоматизации, описание бизнес-процесса, BPMN диаграмма.

Разбираемся с понятием BPM. Что такое управление бизнес процессами

Что такое управление бизнес-процессами (BPM) и зачем процессный подход нужен в бизнесе. История появления управления бизнес-процессами. Основные подходы и терминология – описание простыми словами. Процессный и функциональный подходы.

Что такое DFD (диаграммы потоков данных)

Подробное описание DFD (диаграмм потоков данных). Определение и методы использования. Зачем нужны DFD-нотации, где они применяются на практике, и как их быстро создавать. Вопросы и ответы по DFD-нотациям. Простые методы работы с DFD.

Описание бизнес-процессов Как есть (AS IS) и Как должно быть (TO BE)

Почему так популярно мнение, что обязательно нужно создавать нотации AS IS? Истоки этого спорного утверждения. Почему нотации Как есть нужны далеко не всегда. В каких случаях их действительно важно создавать и применять, а когда проще обойтись без них.

Что такое бизнес: разговор по понятиям

Что означает термин «бизнес» - уточняем понятия и терминологию. История появления слова «бизнес» - на Западе и в России. Отличие бизнеса от трудовой деятельности. Бизнес в отношении к субъекту и объекту. Что такое бизнес-процессы и как с ними работать.

Спецификация BPMN 2. Перевод официальной документации.

Ко мне часто обращаются с вопросами по BPMN, и ответы я обычно черпаю из официальной документации. Для тех кто не владеет английским я буду размещать перевод спецификации BPMN с сайта omg.org/spec/BPMN/2.0.1 Перевод неполный, буду добавлять по мере готовности.

Бизнес-аналитик – кто он?

Профессия бизнес-аналитика вызывает множество вопросов. Более того, в разных ситуациях под термином «бизнес-аналитик» понимают самых разных специалистов и, соответственно, ожидают разных компетенций и результатов. Я предлагаю разобраться в этом вопросе как можно подробнее.

Организация работы склада. Описание. BPMN схемы прилагаются

Методы автоматизации и оптимизации работы склада при помощи учетной системы и аппаратуры для штрих-кодирования. Описание применения штрих-кодов, перечень необходимого оборудования. Описание бизнес-процесса складского учета. Схема бизнес-процесса.

УФМТП. Универсальная функциональная модель торгового предприятия в нотации IDEF0

Из чего состоит предприятие? Какие функции основные а какие нет? В данной статье вы найдете ответ на этот и другие вопросы. Модель построенная на основе опыта бизнес консультанта с использованием нотации IDEF0.

Есть вопрос или замечание?

Ваша электронная почта не будет опубликована.