Что такое DFD?
DFD (data flow diagram) — диаграмма потоков данных, один из основных инструментов структурного анализа и проектирования информационных систем, существовавших еще до широкого распространения UML.
В статье мы
- рассмотрим, зачем и когда стоит использовать DFD системному аналитику, а также
- разберем реальные кейсы построения этих диаграмм в проектах управления данными и интеграции информационных систем,
- расскажем правила DFD-нотации и практические примеры разработки моделей.
Вы узнаете достоинства и недостатки DFD-нотации по сравнению с другими методами бизнес-моделирования (IDEF0, BPMN, EPC, UML), поймёте ключевые принципы и инструменты их разработки.
Примеры движения данных в жизни
С потоками данных мы сталкиваемся не только при решении IT-задач, но и в реальной повседневной жизни.
Одним из примеров потока данных может стать документооборот, когда входящие обращения попадают в ту или иную папку (каталог или журнал), а часть обращений находится в работе, на подписании или в архиве.
Другим примером может стать товарооборот, когда товары перемещаются со склада в магазины и обратно. Или это может быть товарооборот с дополнительным потоком данных для дистанционной торговли: торговая площадка — банк — торговая площадка.
Самый популярный пример движения данных, с которым каждый из нас сталкивается ежедневно — это финансовые транзакции. Когда мы рассчитываемся карточкой на кассе магазина, системы эквайринга отправляют запросы и получают ответы, а мы получаем товар.
Потоки данных. Финансовые транзакции как пример движения данных
Партнёрские программы — ещё один пример потока данных из повседневной жизни. При использовании купона (специальной ссылки, бонусной карты) запускается обмен данными между продавцами, партнёрами и клиентом.
Партнёрские программы как пример движения данных
Наиболее актуальный жизненный пример движения данных — это вакцинация от коронавируса. В пункте вакцинации мы предоставляем данные паспорта, медицинского полиса и СНИЛС. Медицинский работник вписывает в рабочий журнал представленные нами сведения, дату прививки и данные о вакцине. Затем сведения вносятся в Регистр вакцинированных от COVID-19. Оттуда данные передаются в Госуслуги, где мы можем скачать личный QR-код.
Вакцинация от COVID-19 как еще один пример движения данных
Курс Анны Вичуговой
«Моделирование бизнес-процессов»
Курс для менеджеров и специалистов, которые хотят научиться структурировать корпоративную деятельность в виде бизнес-процессов, а также детально описывать их структуру и логику выполнения с помощью формальных нотаций
Кейсы из моих проектов
Кейс #1 Оптимизация затрат на недвижимость
Один из проектов этого года, с которым я работала, состоял в оптимизации затрат на управление недвижимостью в крупной распределённой компании со множеством отделов, филиалов, размещённых в разных помещениях разных районов и городов.
Потоки данных. Оптимизация затрат на недвижимость
Задача состояла в том, чтобы оптимально разместить определённое количество сотрудников в одном месте и сократить излишнюю арендную плату.
При этом необходимо было свести воедино данные из множества источников. К примеру, получить из отдела кадров сведения о количестве сотрудников и их должностях, от отдела охраны труда — требования к условиям труда сотрудников, которые занимают те или иные должности (то есть относятся к той или иной категории труда).
Дополнительно от службы управления недвижимостью я брала данные о собственных или арендуемых помещениях компании.
Кейс #2 Наполнение CRM-системы
Ещё один пример, с которым сталкивается любой бизнес — это наполнение CRM-системы. Источниками данных могут быть телефонные звонки, заявки из форм обратной связи на сайте компании, письма по электронной почте и даже менеджеров по продажам. Потоки данных сливаются в единое хранилище в виде CRM-системы.
Потоки данных. Наполнение CRM-системы
Кейс #3 Сквозная аналитика по веб-рекламе
Сквозная аналитика по веб-рекламе. Например, мы запустили рекламу на Google Ads, в Яндекс.Директ и через SEO. Из всех источников собираем данные о просмотрах рекламных объявлений и кликах, а затем передаем все эти данные в единую систему аналитики. Также в систему аналитики передаются сведения из CRM о том, откуда именно пришёл клиент.
Потоки данных. Сквозная аналитика по веб-рекламе
Кейс #4 Анализ конверсии сайта
Ещё один хороший кейс — анализ конверсии сайта. Я получала заявки из CRM-системы в виде CSV-файлов и данные из Google Adwords в этом же формате. Для проверки гипотезы, как связано количество посещений (DAU-метрика) с заявками в этот день, даже пришлось вручную написать небольшой Python-скрипт. Визуализацию результатов можно сделать в дашборде BI-системы или комплексном инструменте аналитики (например, Google Data Studio).
Потоки данных. Анализ конверсии сайта
Зачем нужны DFD-диаграммы?
Аналитики используют BPMN и EPC-нотации для того, чтобы описывать логику выполнения бизнес-процесса. Это отличные инструменты, но они не позволяют структурно показать, из каких источников данные поступают, какими процессами преобразуются и куда направляются.
Обычно такие задачи возникают:
- в проектах управления данными (Data Management)
- при интеграции информационных систем
- в проектах внедрения систем электронного документооборота
Диаграмма потоков данных позволяет описать движение и преобразование данных между внешними сущностями, хранилищами и процессами. Выходная информация одной внешней сущности или процесса является входной для другого процесса или сущности.
Три уровня проектирования DFD
Проектирование DFD-диаграмм охватывает 3 уровня абстракции:
1. Концептуальная диаграмма показывает движения потоков данных на самом верхнем уровне абстракции. Концептуальная диаграмма детализируется логическим и физическим потоками данных.
2. Диаграмма логических потоков данных отражает будущее или текущее состояние, описывая какие преобразования должны происходить независимо от физических ограничений.
3. Диаграмма физических потоков данных моделирует хранилища данных: принтеры, формы, устройства и другие проявления данных.
Структурный анализ
Подобно IDEF0, DFD-нотация относится к SADT-методологии и поддерживает принципы структурного подхода. Проектирование DFD начинается с контекстной диаграммы, которая декомпозируется по уровням детализации. При этом DFD-нотация рассматривает систему с точки зрения объекта, а не процесса, в отличие от IDEF0.
Структурный анализ — метод исследования системы, который начинается с её общего обзора, а затем иерархически детализируется по уровням абстракции. Иными словами, структурный анализ предполагает, что мы идем от общего к частному, разбивая систему как «черный ящик» на множество «черных ящиков», последовательно приближаясь к результату.
Иерархическая детализация по уровням абстракции
Результат фиксируется с использованием строгих правил записи в соответствии с алфавитом нотации и правилами использования элементов этого алфавита.
На каждом уровне контекст ограничен и включает в себя только существенные для данного уровня элементы. При этом следует помнить, что оптимальное рекомендуемое число элементов на каждом уровне — от трех до семи объектов.
Принципы структурного анализа:
- «разделяй и властвуй»
- иерархическая упорядоченность
- решение проблем через их разделение на множество независимых задач — «черных ящиков»
Компоненты DFD-диаграмм
Алфавит DFD-нотации включает четыре элемента: процесс, внешняя сущность, хранилище данных и поток данных.
Виды DFD-нотаций
Исторически синтаксис DFD-нотации применяется в двух вариантах: Йордона-Де Марко и Гейна-Сарсона.
Суть и набор элементов абсолютно одинаковые, варианты различаются только обозначениями некоторых элементов. Вы можете использовать любой вариант, главное, чтобы описание было понятно и вам, и вашим клиентам.
Основные правила построения DFD-диаграмм
Правил для построения DFD-диаграмм не так уж и много:
- Все потоки данных перемещаются между хранилищами через процессы. Если явного хранилища нет, нужно показывать по крайней мере промежуточные хранилища.
- DFD — нотация представления структуры процессов, поэтому не содержит логических операторов (XOR, AND OR) в отличие от процессно-событийных нотаций BPMN, EPC и UML-activity.
- Потоки данных на диаграмме должны быть названы и описаны в словаре данных. Иными словами, на диаграмме не должно быть элементов без имени.
- В отличие от IDEF0 для диаграммы потоков данных не важно, с какой стороны стрелка входит в блок «процесс» или «хранилище данных», а также с какой стороны выходит. Поток данных, выходящий из процесса, является его выходом или результатом, а входящий — входом.
- Как и в IDEF0, проектирование DFD начинается с создания контекстной диаграммы. Это верхний уровень, который кратко и емко описывает назначение и границы системы. Контекстная диаграмма относится к категории диаграмм, описывающих систему на уровне «черного ящика». Это означает, что на диаграмме отражены только внешние свойства, а не содержание системы. Потоки данных в нашем случае — это и есть внешние свойства системы. Дальнейшая декомпозиция этого «черного ящика» выполняется на следующих уровнях иерархии — вложенных диаграммах.
Контекстная диаграмма в нотации Йордана де Марко
Контекстная диаграмма содержит три основных компонента:
- Один процессный блок — проектируемый объект (например, система).
- Одна или несколько внешних сущностей — взаимодействующих с проектируемым объектом элементов окружения (группы пользователей, смежные системы).
- Исходящие и входящие потоки данных.
Рассмотрим в качестве примера выдачу кредита физическому лицу.
- Клиент подаёт заявку на кредит.
- Банк оценивает платежеспособность и надежность клиента.
- С учетом полученных сведений и на основании истории взаимоотношений с клиентом банк принимает решение о выдаче кредита. Решение содержит данные о выдаваемой сумме и процентной ставке.
- Банк создаёт кредитный счёт и перечисляет на него деньги.
Контекстная диаграмма в этом примере достаточно проста, она содержит только одну внешнюю сущность (клиент) и один процессный блок (выдача кредита).
Пример DFD: Выдача кредита. Контекстная диаграмма
Самая важная для проектирования информация содержится внутри процессорного блока. Его содержимое раскрывается в декомпозированной DFD-диаграмме.
Пример DFD: Выдача кредита
Что можно увидеть на этой DFD-диаграмме?
Первичная заявка на кредит в виде входящего потока данных попадает в процесс Первичный скоринг. На выходе из процесса скоринговая оценка клиента направляется в хранилище данных Заявка на кредит. Сюда же попадают данные о желаемой сумме займа и сведения о клиенте.
Клиент как внешняя сущность передаёт сведения о своих доходах. Эти данные помещаются в промежуточное хранилище Справка о доходах.
Процесс Оценка платежеспособности клиента обрабатывает данные из хранилища Заявка на кредит и из промежуточного хранилища Справка о доходах. На этом этапе рассматриваются персональные данные клиента, сведения о его доходах, стаже работы и условиях труда. Результат процесса — параметры кредита — поступают в хранилище Кредитный договор.
Процесс Проверка службы безопасности получает сведения о благонадежности клиента из множества источников (хранилищ данных). CRM-система банка хранит историю взаимодействия с клиентом. Служба безопасности формирует заключение, которое попадает в соответствующее промежуточное хранилище данных.
Процесс Генерация кредитного договора получает данные о положительном решении службы безопасности, параметры кредита из кредитного договора и данные заемщика. На выходе из процесса одобренная сумма кредита поступает в хранилище данных Кредитный счёт.
Из Кредитного счёта в процесс Выдача денег поступает поток денежных средств. Результатом финального процесса является выдача кредита клиенту.
Пример #2 Приготовление кофе в кофейном автомате
Поскольку DFD позволяет показывать не только информационные потоки данных, но и материальные потоки, мы рассмотрим бытовой пример — приготовление кофе с помощью кофейного автомата.
- Клиент задаёт машине параметры заказа, вносит в автомат деньги.
- Автомат обменивается данными с внешней системой банковского эквайринга, посылая счёт на оплату.
- Система возвращает чек за покупку.
- Аппарат выдаёт кофе клиенту.
Пример DFD: приготовление кофе в кофейном автомате. Контекстная диаграмма
На этапе декомпозиции процесса Приготовление кофе важно понять, что в первую очередь необходимо рассчитать стоимость заказа на основании параметров заказа: сколько требуется воды, сиропа, зерен и сахара.
Кроме того, нужно знать, достаточно ли этих ингредиентов в аппарате. Данные об ингредиентах мы обозначим как хранилища, которые передают данные об остатках в процесс Рассчитать стоимость заказа.
Стоимость ингредиентов передаётся в процесс расчёта из соответствующей базы. Результатом процесса является рассчитанная стоимость заказа, которая попадает в хранилище Счёт на оплату. Дальше стоимость заказа поступает в процесс Оплатить заказ, клиент вносит деньги, а сам процесс взаимодействует с внешней сущностью Система банковского эквайринга. Процесс направляет счёт на оплату и получает чек за покупку.
Пример DFD: приготовление кофе в кофейном автомате
Когда заказ оплачен, ингредиенты и рецепт передаются в процесс Приготовить кофе. Готовый напиток наливается в стаканчик, переданный из Склада стаканов. Это происходит в процессе Налить кофе. В результате клиент получает готовый напиток.
Давайте добавим в этот пример немного киберпанка. Предположим, что у нас умный кофейный автомат, который распознает клиента и хранит историю его покупок. Аппарат помнит, что клиент по понедельникам в хорошем настроении пьет сладкий латте, а в плохом настроении предпочитает маленькую чашечку бодрящего эспрессо.
Контекстная диаграмма в этом случае дополняется потоками идентификации клиента и формирования рекомендаций. В диаграмме также появится несколько новых внешних сущностей: Система распознавания лиц и Рекомендательная система. В качестве тренировки вы можете самостоятельно раскрыть эту контекстную диаграмму. Она будет похожа на предыдущий пример, но будет содержать ещё больше процессов обмена данными.
Пример DFD: приготовление кофе в кофейном автомате с системой распознавания лиц. Контекстная диаграмма
Пример #3 Предоставление контента
по интересам пользователя
В качестве третьего примера давайте рассмотрим систему по предоставлению пользователю контента с учетом его интересов. Контент поступает по каналам, которые предпочел клиент: это может быть telegram, любой другой мессенджер или просто email.
Как выглядит процесс?
Клиент вводит первичные параметры доставки контента и свои исходные интересы, а система будет направлять ему контент. Поскольку система интеллектуальная, контент будет формироваться с учетом реакций и предпочтений пользователя (Content-based filtering).
Если пользователю нравится смотреть на котиков, будем показывать ему больше котиков. Если пользователь указал, что подборка котиков ему не очень интересна, будем исключать такой материал из контента.
При этом система сама будет определять, что нравится пользователю, а что не нравится.
Пример DFD: предоставление контента по интересам пользователя. Контекстная диаграмма
Рассмотрим декомпозированную DFD-диаграмму, составленную для этого примера.
Пример DFD: предоставление контента по интересам пользователя
В процессе Изменение данных пользователем, куда приходят исходные интересы и параметры доставки, формируются предпочитаемые темы. Они передаются в промежуточное хранилище Профиль пользователя.
Просмотренный контент и — главное — реакция на него собираются в Хранилище событий пользовательского поведения. Как правило, это NoSQL-хранилища. Для сбора реакций на контент система анализирует поведение пользователя. Например, просмотрел ли пользователь данное видео полностью или быстро закрыл, прочитал статью и оставил комментарий либо поделился ссылкой и т.д.
В процессе Анализа интересов, куда попадают предпочитаемые пользователем темы и контент, который он просмотрел, формируется поток возможных интересов. Так система формирует Базу контента, откуда отфильтрованный контент попадает в процесс Формирование рекомендаций.
Сформированный список рекомендаций передаётся в промежуточное хранилище сообщения с рекомендуемым контентом. Процесс Отправка с учетом предпочитаемого канала доставляет контент пользователю.
Преимущества и недостатки DFD-нотации
Преимущества и недостатки
Инструменты для создания DFD-диаграмм
Можно рисовать DFD-диаграммы, используя привычные вам инструменты. Для этого подойдут, например, всем известные MS Visio или Draw.io. Но для выстраивания системы с разными уровнями детализации потребуются специализированные программы для моделирования.
Существует множество редакторов для построения DFD-диаграмм. Самым популярным является Ramus. Этот продукт имеет бесплатную версию, доступен в сетевом и локальном вариантах. StarUML — проект с открытым кодом, ещё один ходовой инструмент для создания диаграммы потоков данных. Для командной работы можно использовать облачное решение Lucidchart.
Говоря об инструментах визуального моделирования и проектирования DFD, следует рассказать и о BPwin. Этот программный продукт получил широкое применение на этапе зарождения системного анализа и часто упоминается в литературе.
Но самый главный инструмент аналитика — это, прежде всего, карандаш и бумага. Набросав эскиз от руки, вы всегда можете перенести его в любой визуальный редактор, дополнив нужными деталями.
Основные ошибки при
разработке DFD-диаграмм
1. Отсутствие контекстной диаграммы
На первый взгляд диаграмма с одним процессным блоком и несколькими внешними сущностями может показаться лишней. Некоторые аналитики сразу переходят к детализированным DFD. Однако построение контекстной диаграммы необходимо! При помощи контекстной диаграммы мы определяем границы и так называемый scope — объем будущей проектируемой системы.
Контекстная диаграмма наглядно отображает, что находится вне системы и даёт ответ на главный вопрос, какой внутренний процесс мы будем детализировать на диаграммах нижних уровней. Это помогает избежать одну из популярных ошибок проектирования систем, когда хочется «объять необъятное».
2. Неименованные потоки данных
Ещё одна часто встречающаяся ошибка — отсутствие названий у входящих и исходящих потоков. Каждая стрелка на схеме должна иметь название.
3. Отсутствие процессовНаличие процесса — один из основополагающих принципов моделирования DFD-диаграммы. Когда на диаграмме отражен только обмен данными между хранилищами без привязки к процессу, непонятно, каким образом и для чего хранилища передают данные друг другу.
4. Отсутствие внешних сущностейВажно помнить, что DFD-диаграмма должна содержать одну или несколько внешних сущностей — источников входящих в процесс данных.
5. Путаница между хранилищами и потоками данных
Этой ошибки можно избежать, помня, что данные в DFD представлены в двух состояниях. Данные в состоянии покоя помещаются в хранилища, а данные в состоянии движения отражаются при помощи входящих и исходящих потоков.
6. Стремление показать логику выполнения процессов. DFD – это нотация, предназначенная для моделирования структуры информационной системы, но не её логики. Поэтому будет ошибкой привязывать элементы DFD-диаграммы к временным шкалам или использовать условные операторы XOR, OR, AND.
7. Некорректное название элементов нотацииВ DFD-диаграмме не должно быть путаницы в названиях элементов. В именах внешних сущностей принято использовать существительное. Процесс — это компонент, описывающий действие, поэтому его имя начинается с глагола. Названия хранилищ и потоков данных начинаются с существительных имен.
8. Отсутствие выходов у процессовФункциональное моделирование помогает рассматривать бизнес-модель с точки зрения результативности. При моделировании системы мы исходим из того, что имеем на входе, и того, что желаем получить на выходе. Иными словами, процесс — это действие с заданным результатом. В DFD хорошей практикой считается визуально располагать сущности одного типа на одном уровне, обычно по горизонтали. Тогда становится очевидным правило для процесса «один вход — один выход».
Курс Анны Вичуговой
«Моделирование бизнес-процессов»
Курс для менеджеров и специалистов, которые хотят научиться структурировать корпоративную деятельность в виде бизнес-процессов, а также детально описывать их структуру и логику выполнения с помощью формальных нотаций
-
Вопрос:
Насколько актуально применение DFD-нотации?
Ответ:
DFD позволяет показать перемещение данных между процессами и хранилищами. Это особенно актуально в проектах дата-менеджмента, в проектах интеграции данных, при внедрении СЭД и CRM-систем. В статье подробно рассмотрены наиболее распространенные кейсы, с которыми сталкивается практически любой аналитик.
-
Вопрос:
Чем DFD отличается от контекстной диаграммы и диаграммы состояний?
Ответ:
Диаграмма состояний (Statechart diagram) — вид UML-диаграмм. Показывает изменение жизненного цикла объекта. То есть у неё совершенно другое предназначение. И в отличие от диаграммы потоков данных с её хранилищами, процессами и объектами, в Statechart diagram отражены объекты одного класса.
Контекстная диаграмма это часть DFD-нотации, с которой мы начинаем построение data flow diagrams.
-
Вопрос:
Какие ошибки или пробелы в проектировании можно выявить с помощью DFD-диаграммы?
Ответ:
В первую очередь DFD позволяет определить границы системы. На уровне контекстной диаграммы DFD помогает определить и не забыть при дальнейшем проектировании системы все внешние акторы: источники или потребители данных.
Кроме того, при проектировании системы важно не упустить «где что лежит», особенно если источники данных разрозненны. Именно в DFD-диаграммах отражены все хранилища данных, включая промежуточные хранилища.
-
Вопрос:
Какими нотациями и в какой последовательности можно дополнять описание, выполненное в DFD?
Ответ:
Поскольку DFD относится к структурным нотациям, то её целесообразно использовать в начале проектирования. Это позволяет взглянуть на разрабатываемую систему с точки зрения хранения, преобразования и передачи данных и понять, что требуется для автоматизации бизнес-процесса. Но DFD не описывает сам бизнес-процесс. Поэтому на практике DFD-диаграммы дополняются BPMN либо EPС-диаграммами.
Вичугова Анна Александровна
- Кандидат технических наук (Системный анализ, управление и обработка информации, 2013)
- Сертифицированный бизнес-аналитик (CBAP 2020, международная сертификация IIBA)
- Сертифицированный специалист Business Studio
- Сертифицированный специалист и администратор СЭД Directum
Профессиональные интересы: системный анализ, бизнес-анализ, разработка и поддержка СМК, ССП (KPI), анализ и формализация бизнес-процессов (UML, IDEF, BPMN), Data Science, технологии Big Data, разработка технической документации (ТЗ по ГОСТам серии 19.***, 34.***, руководства пользователя и администратора, описание программных продуктов), управление продуктами и проектами.
Подписаться на новые статьи
Время на прочтение
3 мин
Количество просмотров 46K
Привет всем!
Сегодня решил написать основную теорию про применение диаграмм потоков данных как одного из инструментов моделирования процессов.
Диаграмма отображает потоки данных между системами, базами данных. Ключевыми элементами являются входные/выходные данные, системы, точки хранения и сбора данных.
Зачем нужны DFD диаграммы?
DFD диаграммы в отличии от других нотаций позволяют визуально показать все процессы с точки зрения данных. Это может быть полезно:
-
при разработке информационной системы;
-
при интеграции системы;
-
при миграции данных и функционала с одной системы на другую;
-
в проектах, связанных с Data Management;
-
в процессе построения аналитического хранилища, BI-решения.
Диаграмма позволяет визуализировать как движение данных между объектами системы, так и преобразования данных, которые могут применяться на разных шагах процесса.
Элементы DFD диаграммы
Выделяют 4 элемента в диаграмме:
-
Процесс.
Процессы, при которых идет изменение потока данных (обработка, трансформация и др. изменения). Процесс как и в других диаграммах обычно прописывается с помощью глагола, например: “Отправка заполненной формы”.
-
Внешняя сущность.
Сущность (объект), которая получает или отправляете данные при взаимодействии с описанным процессом.
-
Хранилище данных.
Все хранилища данных или отдельные файлы, которые хранят исходные или выходные данные, а также все промежуточные хранилища.
-
Поток данных.
Поток данных, который отображает направление и сами данные, которые перемещаются между внешними сущностями и хранилищами данных с помощью процессов.
Несколько правил построения диаграмм:
-
Процесс должен иметь входной и выходной поток данных.
-
Хранилища данных также должны иметь входные и выходные потоки данных.
-
Данные с внешних сущностей должны обязательно проходить через процесс чтобы попасть в хранилище.
В DFD диаграммах также выделяют 2 разные нотации. Поэтому стоит обращать внимание на условные обозначения каждого элемента в зависимости от используемой нотации. Ниже представил картинку сравнения элементов разных нотаций.
Уровни DFD Диаграммы
В зависимости от цели использования диаграммы можно отображать различные уровни детализации процесса. К примеру, для разговора и презентации процесса бизнес-пользователям и заказчикам, им важно понимать контекст и логику самого процесса, иногда нет смысла погружать их в технические моменты реализации. С другой стороны, при разговоре с технической командой важно сделать акцент на реализации решения с технической точки зрения.
Как и в ER-диаграмме для моделей данных, которая включает в себя несколько слоев отображения (концептуальный, логический, физический), DFD диаграммы также можно делить на подобные уровни:
-
Концептуальный (или контекстный) уровень.
Показывает общее описание процесса, который реализуется при потоке данных. Отображает абстрактно потоки данных, связанные с разными внешними сущностями
-
Логический уровень.
Отображает логику преобразования данных в системе в каждом процессе, описывает. Видны входные, промежуточные, выходные данные в каждом процессе, который протекает от внешней сущности до хранилищ данных. Больше указывает на вопрос “Что включает в себя процесс потока и обмена данными со стороны бизнеса?”
-
Физический уровень.
Включают точное отображение хранилищ данных, названий сущностей данных. Диаграмма физического уровня должна отвечать на вопрос “Как будет реализован процесс передачи и потока данных?”
Также часто в других источниках можно увидеть разделение уровней диаграммы на 0,1, 2, 3 и так далее, в зависимости от уровня детализации.
Если мы говорим про разработку нового решения, то важно понять “что мы имеем сейчас” (AS-IS) и “что мы желаем получить” (TO-BE). Другими словами, мы разделяем наше текущее состояние и желаемое состояние, которое мы хотим получить с помощью нашего решения.
AS-IS
Описываем текущую логическую диаграмму.
TO-BE
Описываем желаемую логической диаграмму с новой логикой и требования от бизнеса. После этого из желаемой логической диаграммы описываем физическую с новым техническим решением.
Telegram канал про аналитику данных и бизнес-анализ
Диаграмма потока данных — это графическое представление потока данных в информационной системе. Он может описывать входящие потоки данных, исходящие потоки данных и сохраненные данные. DFD не упоминает, как данные проходят через систему.
Метод DFD разбивает высокоуровневую диаграмму потока данных на набор более подробных диаграмм, обеспечивая общее представление о всей системе, а также более подробную декомпозицию. Дает общее представление о системе в целом, а также более подробную декомпозицию и, при необходимости, более подробную разбивку и описание отдельных действий для облегчения разъяснения и понимания.
В результате на схеме четко обозначены масштабы и границы системы. Конечным результатом хорошо разработанного DFD является «общая картина», показывающая, что происходит на каждом уровне.
Почему ДФД?
Диаграммы потоков данных обеспечивают графическое представление системы, которое должно быть доступно как специалистам по
компьютерам, так и пользователям-неспециалистам. Это графическое представление, которое очень легко понять, поскольку оно помогает визуализировать содержимое.
Модели позволяют инженерам-программистам, заказчикам и пользователям эффективно работать вместе во время анализа и спецификации требований.
Хотя это означает, что наши клиенты должны понимать методы и конструкции моделирования, в моделировании потока данных используется только ограниченный набор конструкций, а применяемые правила разработаны так, чтобы быть простыми и легкими для понимания.
Вот преимущества метода DFD:
- Это простая графическая техника, которую легко понять.
- Его легче понять технической и нетехнической аудитории.
- Это помогает описать границы системы.
- Это облегчает передачу существующих системных знаний конечным пользователям.
- Он обеспечивает подробное представление компонентов системы.
- Он используется как часть системной документации.
DFD против блок-схемы
Между DFD и блок -схемой есть существенная разница . По сути, DFD показывают поток данных; блок-схемы показывают поток управления.
- Блок-схема описывает поток управления в программном модуле и помогает проиллюстрировать шаги по решению проблемы.
- DFD иллюстрирует входы, выходы, то, как данные будут проходить через систему и где данные будут храниться. Он не содержит никаких элементов управления или ветвления.
Элементы ДПД
- Сущности . Сущности являются источником и получателем информационных данных. Сущности представлены
прямоугольниками и имеют собственные имена.
- Процессы . Действия и действия, выполняемые с данными, представлены круглыми или круглыми прямоугольниками.
- Хранение данных . Существует два варианта хранения данных — это может быть представлено как — 1. Это может быть представлено в виде прямоугольника без двух маленьких ребер, 2) или в виде открытого прямоугольника только с одним краем
. Открытый прямоугольник с отсутствующими ребрами.
- Поток данных — движение данных представлено острыми стрелками. Движение данных показано как движение от нижней части стрелки в качестве источника к острию стрелки в качестве пункта назначения.
Пример потока данных — электронный банкинг
Менеджер банка предоставляет новые сведения об учетной записи открытому процессу учетной записи, в результате чего сведения о клиенте хранятся в хранилище данных базы данных клиентов, а сведения об учетной записи — в хранилище данных базы данных учетных записей. Хотя мы используем слово «результат» в нашей интерпретации, DFD не подразумевает причинно-следственной связи; Все, что он показывает, это то, что процесс открытия счета может считывать данные из интерфейса менеджера банка без записи данных в базу данных клиентов и хранилища данных базы данных счетов в определенном порядке.
Клиент, использующий процесс входа в онлайн-банкинг, должен предоставить некоторые данные, такие как имя пользователя и пароль, в виде набора учетных данных для входа.
Клиент может получить денежную сумму при снятии средств или внести денежную сумму на депозит; В обоих случаях это приводит к обновлению баланса учетной записи в хранилище данных базы данных учетной записи (хотя эту причинно-следственную связь нельзя явно смоделировать).
Клиент может инициировать процесс перевода средств и должен указать адрес счета и сумму средств. Процесс перевода средств может отправить сумму средств в другой банк через интерфейс другого банка.
ОТРЕДАКТИРУЙТЕ ЭТОТ ПРИМЕР ДИАГРАММЫ ПОТОКА ДАННЫХ
Показанный выше пример DFD включает пять процессов, четыре внешних интерфейса/роли и два хранилища данных. Он не претендует на то, чтобы быть исчерпывающим представлением потоков данных в банковской системе, но он достаточно всеобъемлющ, чтобы дать представление о том, как построить DFD.
Метод нисходящей декомпозиции — многоуровневые DFD
Основное преимущество метода моделирования потока данных заключается в том, что с помощью метода, называемого нисходящей декомпозицией (также известного как «выравнивание»), можно управлять подробной сложностью реальных систем и моделировать их в иерархии абстракций. Выравнивание достигается путем рисования серии все более подробных DFD до тех пор, пока не будет достигнут желаемый уровень детализации.
Чтобы сделать DFD еще более сложным (т. е. не слишком много процессов), вы можете создать многоуровневый DFDS.
- Контекстная диаграмма содержит управляющий (агрегированный) системный процесс.
- DFD более высокого уровня является менее подробным (более подробный DFD разрабатывается на нижнем уровне) и называется процессом декомпозиции сверху вниз.
- Контекстная диаграмма начинается с номеров процессов (например, процесс 1, процесс 2 и т. д.).
- Нумерация продолжается на следующем так называемом первом уровне (DFD). Например, процесс 1 на контекстной диаграмме уточняется до трех процессов в DFD первого уровня и имеет номера 1.1, 1.2 и 1.3.
- Аналогичным образом нумеруются процессы второго уровня, например 2.1.1, 2.1.2, 2.1.3 и 2.1.4. Нумерация процессов в иерархии:
- (1, 2, 3,…);
- (1.1, 1.2, 1.3,…, 2.1, 2.2, 2.3,…);
- (1.1.1, 1.1.2, 1.1.3,…).
- Количество слоев зависит от размера модельной системы.
При выполнении нисходящей декомпозиции в DFD до DFD более низкого уровня входные и выходные данные должны сохраняться между уровнями DFD. Например, уровень n и n+1 должен иметь одинаковые входы и выходы.
Пример DFD — система заказа еды
Контекстная диаграмма (уровень 0 — DFD)
Контекстная диаграмма показывает обзор системы и то, как она взаимодействует с другими частями «мира». Контекстная диаграмма — это диаграмма потока данных, которая показывает только верхний уровень, который называется уровнем 0. На этом уровне есть только один видимый узел процесса, который представляет функциональность всей системы, т. е. то, как она взаимодействует с внешними объектами. Вот некоторые из преимуществ контекстной диаграммы.
- Показывает обзор границ системы
- Благодаря простому обозначению, он не требует технических знаний, чтобы понять
- Легко рисовать, изменять и дорабатывать из-за ограниченной нотации.
На рисунке ниже показана контекстная диаграмма (схема потока данных верхнего уровня), нарисованная для системы заказа еды.
- Он содержит процесс (форму), представляющий модель системы, в данном случае «систему заказа еды».
- Также показаны участники, которые будут взаимодействовать с системой, называемые внешними сущностями.
В этом примере поставщик, кухня, менеджер и клиент — это объекты, которые будут взаимодействовать с системой.
Между процессом и внешними сущностями существуют потоки данных (коннекторы), которые показывают, что между сущностями и системой происходит обмен информацией.
ОТРЕДАКТИРУЙТЕ ЭТОТ ПРИМЕР DFD
Context DFD — это точка входа в модель потока данных. Он содержит один и только один процесс и не показывает никакого хранилища данных.
ДФД уровня 1
DFD уровня 1 представляет более подробное представление системы, чем контекстная диаграмма. Показывая основные подпроцессы и хранилища данных, составляющие систему.
На следующей диаграмме показан DFD уровня 1, который представляет собой разбивку (т. е. декомпозицию) процессов системы заказа еды, показанных в DFD контекста. Прочитайте диаграмму, а затем мы представим некоторые ключевые понятия, основанные на ней.
ОТРЕДАКТИРУЙТЕ ЭТОТ ПРИМЕР ДИАГРАММЫ ПОТОКА ДАННЫХ
Пример блок-схемы данных системы заказа продуктов питания содержит три процесса, четыре внешних объекта и два хранилища данных.
- По диаграмме мы знаем, что покупатель может оформить заказ. Процесс заказа продуктов питания получает заказ, пересылает его на кухню, сохраняет в хранилище данных заказов и сохраняет обновленные сведения об инвентаризации в хранилище данных инвентаризации. Процесс также обеспечивает выставление счетов клиенту.
- Менеджеры могут получать отчеты с помощью процесса «Создать отчет», в котором сведения о запасах и заказах используются в качестве входных данных для хранилищ данных запасов и заказов соответственно.
- Менеджер также может инициировать процесс инвентаризации заказа, предоставив заказ инвентаризации. Этот процесс пересылает заказ инвентаризации поставщику и сохраняет обновленные данные инвентаризации в хранилище данных инвентаризации.
Логический и физический DFD
Диаграммы потоков данных делятся на логические и физические диаграммы потоков данных. Логический DFD фокусируется на бизнесе и на том, как он работает. В нем описываются происходящие бизнес-события, а также данные, необходимые и создаваемые для каждого события. С другой стороны, физический DFD показывает, как будет реализована система. Ниже приведены основные различия между логическим DFD и физическим DFD:
Логический DFD
- Логический DFD показывает, как работает бизнес.
- Процессы представляют бизнес-операции.
- Хранилища данных представляют собой набор данных независимо от того, как они хранятся.
- Это то, как бизнес контролирует.
Физический DFD
-
- Физический DFD показывает, как система будет реализована (или как работает текущая система).
- Процессы представляют собой программы, программные модули и ручные процедуры.
- Хранилища данных представляют собой физические файлы и базы данных, ручные файлы.
- Он показывает элементы управления для проверки входных данных, для получения записи, для обеспечения успешного завершения процесса и для безопасности системы.
- Физический DFD определяет фактический поток физической документации, в то время как логический DFD фокусируется только на информационном потоке в бизнес-терминах.
Например, физический DFD определяет фактический поток физической документации, в то время как логический DFD фокусируется только на информационном потоке в бизнес-терминах.
Кроме того, логический DFD исключает физические процессы, которые относятся только к физическим действиям и не преобразуют данные.
Логический пример DFD — продуктовый магазин
Логический DFD иллюстрирует задействованные процессы, не вдаваясь в подробности физической реализации действий.
ОТРЕДАКТИРУЙТЕ ЭТОТ ЛОГИЧЕСКИЙ ПРИМЕР DFD
Пример физического DFD — продуктовый магазин
- Физический DFD показывает, что используется штрих-код — код UPC PRICE, который можно найти на большинстве товаров в продуктовых магазинах.
- Кроме того, в физическом DFD упоминаются ручные процессы, такие как сканирование, поясняется, что временный файл используется для хранения промежуточного количества элементов.
- ОПЛАТА может быть произведена НАЛИЧНЫМИ, ЧЕКОМ или ДЕБЕТОВОЙ КАРТОЙ.
Наконец, это относится к квитанции по ее названию, КАССОВАЯ КВИТАНЦИЯ.
ОТРЕДАКТИРУЙТЕ ЭТОТ ФИЗИЧЕСКИЙ ПРИМЕР DFD
Советы и примечания к диаграммам потоков данных
- Не делайте это слишком сложным; обычно 5-7 человек могут управлять процессами
- Хранилище данных должно быть связано хотя бы с одним процессом .
- Поток данных не должен существовать между двумя внешними объектами без прохождения процесса
- Процесс с входом, но без выхода считается процессом черной дыры.
- Метки процессов должны быть глагольными фразами; хранилища данных представлены существительными.
- Внешний объект должен быть связан хотя бы с одним процессом
- DFD недетерминированы — нумерация не обязательно указывает порядок и полезна для идентификации процессов при обсуждении с пользователями.
- Хранилище данных не должно быть подключено к внешнему объекту, в противном случае это означает, что вы предоставляете внешнему объекту прямой доступ к вашему файлу данных.
Ресурсы
- Что такое диаграмма потока данных (DFD)?
- Как создать диаграмму потока данных (DFD)?
- Программное обеспечение диаграммы потока данных (DFD)
- Примеры диаграмм потока данных
Рассмотрим еще одну нотацию моделирования, которая не часто используется для непосредственного описания бизнес-процессов, а потому редко применяется начинающими системными и бизнес-аналитиками. Читайте далее, что такое DFD-диаграмма, зачем она нужна и как ее использовать в проектах интеграции информационных систем и управления данными.
Что такое DFD-нотация и зачем она нужна
Хотя BPMN и EPC нотации позволяют отлично описать логику выполнения бизнес-процессов, о чем мы писали здесь и здесь, иногда требуется показать эту деятельность не с позиции совершаемых действий, а с точки зрения обрабатываемых данных. Иначе говоря, нужно ответить на вопросы, из каких источников данных приходят, как преобразуются и куда отправляются. Обычно такая задача возникает в проектах, связанных с управлением данными (Data Management) и интеграции информационных систем. Методы и способы интеграции ИС мы рассмотрим в другой раз, а пока сфокусируемся на описании движения потоков данных. Именно для этого и нужны DFD-диаграммы (Data Flow Diagram).
Подобно IDEF0, DFD-нотация относится к SADT-методологии и соответствует структурному подходу, поддерживая принципы декомпозиции, иерархической упорядоченности и смыслового разделения сущностей. Хотя DFD и не содержит логических операторов (XOR, AND, OR), которые мы разбирали здесь, а также имеет очень ограниченное число элементов, она отлично позволяет описать последовательность возникновения, изменения и преобразования данных через их движение между процессами и хранилищами. Существует 2 разновидности DFD-диаграмм (Гейна-Сарсона и Йордана-Де Марко), которые немного отличаются лишь обозначениями некоторых элементов.
Итак, DFD-диаграмма включает следующие компоненты:
- Процесс – функция или действия по обработке данных. Обозначается в виде круга или прямоугольника со скругленными краями и горизонтальной чертой внутри. Поскольку используется для описания действия, называется как глагол, например, «отправить заявку», «просмотреть документ» и пр.
- Внешняя сущность – объект за пределами моделируемой системы, который является отправителем или получателем данных – человек, внешний сервис, носитель информации, сторонний источник данных и пр. Обозначается квадратом. Поскольку является объектом, называется как существительное, к примеру, «Клиент», «Поставщик», «БД ГИБДД», «Госуслуги» и пр.
- Хранилище данных – источник, приемник или промежуточное хранилище данных внутри моделируемой системы – база данных, таблица, документ, список, файл и пр. Обозначается в виде прямоугольника с незакрытым правым краем, может иметь вертикальную черту слева. Поскольку является объектом, называется как существительное: «Список дел», «1С:Предприятие», «CRM-система», «Файл с данными заказов», «Заявка» и пр.
- Поток данных – непосредственно данные, которые входят в процессы и хранилища или выходят из них. Например, «ФИО клиента», «Номер договора», «Сведения по заявке», «Запрос» и т.д. Обозначаются как сплошные стрелки с подписями.
Методы описания бизнес-процессов (IDEF, DFD, BPMN, EPC, UML)
Код курса
MODP
Ближайшая дата курса
14 июня, 2023
Длительность обучения
8 ак.часов
Стоимость обучения
15 000 руб.
Правил для построения DFD-диаграмм совсем немного, и все они очень простые:
- потоки данных перемещаются между хранилищами через процессы. Рекомендуется также показывать промежуточные хранилища данных при их перемещении между процессами, однако на практике это нее всегда строго соблюдается.
- В отличие от IDEF0, не важно, с какой стороны стрелка входит в блок «процесс» или «хранилище данных», а также с какой стороны выходит. Поток данных, выходящий из процесса, является его выходом (результатом), а входящий – входом.
- Как и в IDEF0, разработка моделей в нотации DFD начинается с контекстной диаграммы, которая представляет собой 1 процессный блок и также может включать 1 или несколько внешних сущностей. Дальнейшая декомпозиция этого «черного ящика» выполняется на следующих уровнях иерархии, т.е. вложенных диаграммах.
- В отличие от процессно-событийных нотаций BPMN, EPC и UML activity, DFD не содержит логических операторов (XOR, AND OR).
Чтобы показать реализацию этих правил на наглядном примере, далее рассмотрим уже упоминавшийся кейс нашей системы генерации промокодов после прохождения тестов, которые дают возможность оплатить курс со скидкой. Описание этой системы с помощью UML-диаграмм изложено в прошлой статье.
Как построить диаграмму движения потоков данных: практический пример
В конце лета наша Школа прикладного бизнес-анализа запустила маркетинговую акцию для частных клиентов, выдавая промокод на скидку по определенному курсу после прохождения тематического теста на сайте. Таким образом, всю последовательность действий по генерации промокода и его применению можно упрощенно представить следующим образом:
- пользователь проходит тест;
- получает промокод из базы данных промокодов;
- в базе обновляется статус промкода, например, из состояния «новый» он переходит в состояние «выданный»;
- пользователь оставляет свой email на веб-странице с итогами теста, если хочет получить напоминание по электронной почте;
- email пользователя добавляется в базу данных подписчиков;
- для пользователя формируется мааркетинговое предложение в виде электронного письма с указанием промокода, данными о его сроке действия, размеру скидке и курсе, на который он распространяется (даты проведения, стоимость, pdf-файл программы);
- сформированное письмо отправляется пользователю по электронной почте с указанным email-адресом;
- пользователь переходит по ссылке в электронном письме для оплаты курса;
- пользователь оплачивает курс со скидкой по промокоду (этот процесс подробнее рассмотрен в виде UML-диаграммы последовательности здесь);
- после оплаты статус использованного промокода в базе промокодов меняется на «применен».
Таким образом, здесь можно выделить следующие хранилища данных:
- веб-страница с итогами теста;
- база данных с промокодами;
- каталог курсов, где хранятся данные об их названиях, коде, стоимости и датах проведения;
- список подписчиков;
- список рассылок;
- веб-страница оплаты.
Чтобы визуально выделить процессы, которые совершает пользователь, на диаграмме они отмечены голубым цветом. А хранилища данных, которые видны пользователю – желтым. Это не соответствует правилам DFD-нотации, но и не нарушает их: о цветовой маркировке блоков в первоисточниках ничего не сказано. Вообще прием с цветовым выделением некоторых блоков довольно удобен – я часто использую его на практике, чтобы облегчить читателю чтение диаграмм. В итоге для этого примера была составлена следующая DFD-диаграмма, показанная на рисунке ниже (контекстная диаграмма здесь не отображена).
В реализацию пошли не все описанные идеи этого кейса, но основные задумки реализованы. Проверить, как работает выдача промокодов на оплату наших курсов по бизнес-анализу со скидкой мы можете, выполнив любой открытый тест на нашем сайте бесплатно и без регистрации. А научиться самостоятельно разрабатывать DFD-диаграммы и освоить другие нотации моделирования бизнес-процессов вам помогут мои авторские курсы в Школе прикладного бизнес-анализа на базе нашего лицензированного учебного центра обучения и повышения квалификации системных и бизнес-аналитиков в Москве:
- Методы описания бизнес-процессов (IDEF, BPMN, EPC, UML)
- Основы бизнес-анализа: вход в профессию для начинающих
Подробное описание DFD (диаграмм потоков данных). Определение и методы использования. Зачем нужны DFD-нотации, где они применяются на практике, и как их быстро создавать. Вопросы и ответы по DFD-нотациям. Простые методы работы с DFD.
В комментариях к одной из моих прошлых статей, посвященной 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 нет жесткого синтаксиса, как, например, в BPMN. Здесь можно использовать разные варианты, главное, чтобы они были понятны вам и вашим клиентам. Нотации DFD — удобный инструмент для создания нерегламентированных диаграмм, которые можно сделать быстро и с максимумом свободы.
Применяется этот вид нотации в случае, когда требуется описание системы как хранилища данных. Т.е. нотация должна наглядно ответить на вопросы:
- Из чего состоит информационная система?
- Что нужно, чтобы обработать информацию?
Непосредственно DFD нотация состоит из следующих элементов:
- Процесс (англ. Process), т.е. функция или последовательность действий, которые нужно предпринять, чтобы данные были обработаны. Это может быть создание заказа, регистрация клиента и т.д. В названиях процессов принято использовать глаголы, т.е. «Создать клиента» (а не «создание клиента») или «обработать заказ» (а не «проведение заказа»). Здесь нет строгой системы требований, как, например, в IDEF0 или BPMN, где нотации имеют жестко определенный синтаксис, так как они могут быть исполняемыми. Но все же определенных правил стоит придерживаться, чтобы не вносить путаницу при чтении DFD другими людьми.
- Внешние сущности (англ. External Entity). Это любые объекты, которые не входят в саму систему, но являются для нее источником информации либо получателями какой-либо информации из системы после обработки данных. Это может быть человек, внешняя система, какие-либо носители информации и хранилища данных.
- Хранилище данных (англ. Data store). Внутреннее хранилище данных для процессов в системе. Поступившие данные перед обработкой и результат после обработки, а также промежуточные значения должны где-то храниться. Это и есть базы данных, таблицы или любой другой вариант организации и хранения данных. Здесь будут храниться данные о клиентах, заявки клиентов, расходные накладные и любые другие данные, которые поступили в систему или являются результатом обработки процессов.
- Поток данных (англ. Data flow). В нотации отображается в виде стрелок, которые показывают, какая информация входит, а какая исходит из того или иного блока на диаграмме.
Нотация DFD может описывать любые действия, в том числе, процесс продажи или отгрузки товара, работу с заявками от клиентов или закупки материалов, с точки зрения описания системы. Эта нотация помогает понять, из чего должна состоять система, что нужно для автоматизации бизнес-процесса. Но DFD не является описанием непосредственно бизнес-процесса. Здесь, например, нет такого важного параметра, как время. Также в этой нотации не предусмотрены условия и «развилки». В DFD мы рассматриваем откуда появляются данные, какие данные нужны, их обработку и куда результаты отправить. Т.е. в этой нотации описывается не столько непосредственно процесс, сколько движение потоков данных. Для работы с процессами я рекомендую использовать BPMN или IDEF3 (о ней я расскажу в другой раз).
Как создавать нотации DFD
Давайте для примера рассмотрим нотацию автоматизации продаж. Допустим, у нас есть клиент, который делает заявку через сайт или по телефону. Есть менеджер, который регистрирует эту заявку. Таким образом, в системе появляются данные – клиент и его заказ. Работник склада должен это увидеть и произвести отгрузку товара с оформлением всех необходимых документов и передать документы клиенту.
Последовательность получается такая:
- Клиент предоставляет свои данные и заявку.
- Менеджер проверяет и вносит полученные данные в систему.
- Работник склада формирует документы, например, расходную накладную, и отгружает товар.
- Клиент получает товар и пакет документов к нему.
Эту последовательность действий нам необходимо увидеть с точки зрения хранения данных и работы с ними в 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-нотаций может быть сложно.