В комментариях к одной из моих прошлых статей, посвященной 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-нотаций может быть сложно.
Кинзябулатов Рамиль
Бизнес консультант
Бизнес-консультант с большим практическим опытом работы в России и ближайшем зарубежье. Автор многочисленных публикаций и нескольких книг по оптимизации и автоматизации бизнеса. Живу и работаю в Москве, руководитель компании Trinion. Делюсь опытом посредством блога на сайте trinion.org
Вам также может понравиться
Бизнес-аналитик – кто он?
Профессия бизнес-аналитика вызывает множество вопросов. Более того, в разных ситуациях под термином «бизнес-аналитик» понимают самых разных специалистов и, соответственно, ожидают разных компетенций и результатов. Я предлагаю разобраться в этом вопросе как можно подробнее.
Краткое описание BPMN с примером
Что такое BPMN – определение и подробное описание нотации. Из чего состоит BPMN, основные элементы бизнес-моделирования: как их правильно использовать. Различия между исполняемыми и неисполняемыми бизнес-процессами. Как работать с BPMN на практике.
Что такое DFD (диаграммы потоков данных)
Подробное описание DFD (диаграмм потоков данных). Определение и методы использования. Зачем нужны DFD-нотации, где они применяются на практике, и как их быстро создавать. Вопросы и ответы по DFD-нотациям. Простые методы работы с DFD.
Разбираемся с понятием BPM. Что такое управление бизнес процессами
Что такое управление бизнес-процессами (BPM) и зачем процессный подход нужен в бизнесе. История появления управления бизнес-процессами. Основные подходы и терминология – описание простыми словами. Процессный и функциональный подходы.
Что такое BPMS
Что такое BPMS система – определение и подробные пояснения. Как работать в BPMS системе с точки зрения разработчика и пользователя. Варианты реализации бизнес-процессов на практике. Преимущества процессного подхода при автоматизации бизнеса. Почему я рекомендую BPMN 2.0.
Источник: trinion.org
Диаграммы потоков данных (DFD): как использовать их для описания движения данных в бизнес-процессах
Каждый бизнес-процесс имеет свою уникальную последовательность шагов, которые могут быть достаточно простыми или достаточно сложными. В ходе процесса что-то входит, обрабатывается и преобразуется, чтобы создать что-то новое или достичь какой-то цели. Важно отметить, что каждый процесс требует входных данных или ресурсов, которые могут быть в различных формах, например, информационные данные или физические предметы, необходимые для выполнения действий в процессе. Входные данные могут поступать из разных источников, как внутренних, так и внешних, и могут быть переданы через различные каналы передачи данных. Поэтому для более эффективного управления бизнес-процессами, необходимо ясно понимать, какие данные входят в процесс и как они взаимодействуют в рамках этого процесса.
Моделирование процессов можно делать с помощью разных инструментов, каждый из которых имеет свои особенности и преимущества, поэтому выбор зависит от конкретной задачи и потребностей бизнеса. Про некоторые из них я уже упоминал на своем блоге, а по BPMN уже была отдельная статья. Сейчас же речь пойдет о таком инструменте как DFD (Data Flows Diagrams) — диаграммах потоков данных.
DFD — методология графического структурного анализа, описывающая внешние по отношению к системе источники и адресаты данных, логические функции, потоки данных и хранилища данных, к которым осуществляется доступ
Аккуратная и четкая DFD может графически отобразить значительную часть требований к системе. Она может быть ручной, автоматизированной или сочетать оба способа.
Он показывает, как информация входит в систему и выходит из нее, что изменяет информацию и где она хранится. Цель DFD — показать масштаб и границы системы в целом. Она может использоваться как инструмент коммуникации между системным аналитиком и любым человеком, играющим роль в системе, который служит отправной точкой для перепроектирования системы.
Кроме того диаграммы потоков данных являются мощным инструментом бизнес-моделирования, позволяющий описывать бизнес-процессы с точки зрения потоков и преобразования данных. Это особенно полезно в тех случаях, когда вы хотите лучше понимать, как данные перемещаются внутри бизнес-процесса, и какие преобразования с ними происходят.
Диаграммы потоков данных известны очень давно. В фольклоре упоминается следующий пример использования DFD для реорганизации переполненного клерками офиса, относящийся к 20-м годам.
Осуществлявший реорганизацию консультант обозначил кружком каждого клерка, а стрелкой — каждый документ, передаваемый между ними. Используя такую диаграмму, он предложил схему реорганизации, в соответствии с которой двое клерков, обменивающиеся множеством документов, были посажены рядом, а клерки с малым взаимодействием были посажены на большом расстоянии. Так родилась первая модель, представляющая собой потоковую диаграмму — предвестника DFD.
Одним из ключевых преимуществ использования DFD является возможность создания моделей на разных уровнях детализации. На бизнес-уровне, DFD позволяют представлять бизнес-процессы и бизнес-данные, что позволяет бизнес-аналитикам и менеджерам лучше понимать, как работает бизнес и какие могут быть узкие места.
Кроме того, DFD также могут быть использованы на уровне системы, показывая, как ИТ-приложения, базы данных и файлы взаимодействуют друг с другом внутри системы. Это особенно полезно при анализе существующих систем и проектировании новых.
Теперь давайте поговорим о движении данных. Что тут имеется в виду? С потоками данных мы сталкиваемся не только при решении IT -задач, но и в реальной повседневной жизни.
Одним из примеров потока данных может стать документооборот, когда входящие обращения попадают в ту или иную папку (каталог или журнал), а часть обращений находится в работе, на подписании или в архиве.
Другим примером может стать товарооборот, когда товары перемещаются со склада в магазины и обратно. Или это может быть товарооборот с дополнительным потоком данных для дистанционной торговли: торговая площадка — банк — торговая площадка.
Еще одним примером (с которым мы сталкиваемся практически каждый день) есть финансовые транзакции. Вы пришли в магазин, взяли товар , пошли на кассу и начали рассчитываться карточкой на кассе магазина. Cистемы эквайринга отправляют запросы и получают ответы, а мы получаем товар. Схематически этот процесс можно представить так:
Нотация DFD
Нотация DFD включает всего лишь 4 основных элемента: процесс, внешняя сущность, хранилище данных и поток данных.
- Процесс (англ. Process), т.е. функция или последовательность действий, которые нужно предпринять, чтобы данные были обработаны. Это может быть создание заказа, регистрация клиента и т.д. В названиях процессов принято использовать глаголы, т.е. «Создать клиента» (а не «создание клиента») или «обработать заказ» (а не «проведение заказа»). Здесь нет строгой системы требований, как, например, в IDEF0 или BPMN, где нотации имеют жестко определенный синтаксис, так как они могут быть исполняемыми. Но все же определенных правил стоит придерживаться, чтобы не вносить путаницу при чтении DFD другими людьми.
- Внешние сущности (англ. External Entity). Это любые объекты, которые не входят в саму систему, но являются для нее источником информации либо получателями какой-либо информации из системы после обработки данных. Это может быть человек, внешняя система, какие-либо носители информации и хранилища данных.
- Хранилище данных (англ. Data store). Внутреннее хранилище данных для процессов в системе. Поступившие данные перед обработкой и результат после обработки, а также промежуточные значения должны где-то храниться. Это и есть базы данных, таблицы или любой другой вариант организации и хранения данных. Здесь будут храниться данные о клиентах, заявки клиентов, расходные накладные и любые другие данные, которые поступили в систему или являются результатом обработки процессов.
- Поток данных (англ. Data flow). В нотации отображается в виде стрелок, которые показывают, какая информация входит, а какая исходит из того или иного блока на диаграмме.
Читать: Методология внедрения ODOO. Вольный перевод официальной документации
При этом есть два варианта графического отображения этих элементов Юрдана (Yourdon) и Гейна-Сарсона (Gane-Sarson).
С помощью этой нотации можно описать любые действия и она может дать понимание того из чего должна состоять система, но в то же время DFD не может быть инструментом для описания бизнес-процесса. В ней нет такого параметра как время, нет понятия условия и «развилки», которая может возникнуть при том или ином условии. В DFD мы рассматриваем откуда появляются данные, какие данные нужны, их обработку и куда результаты отправить. Т.е. в этой нотации описывается не столько непосредственно процесс, сколько движение потоков данных. Для работы с процессами можно использовать BPMN или IDEF3.
Правила построения DFD-диаграмм
Правил для построения не так уж и много:
Контекстная диаграмма содержит три основных компонента:
- Один процессный блок — проектируемый объект (например, система).
- Одна или несколько внешних сущностей — взаимодействующих с проектируемым объектом элементов окружения (группы пользователей, смежные системы).
- Исходящие и входящие потоки данных.
DFD первого уровня строится как декомпозиция процесса, который присутствует на контекстной диаграмме.
Построенная диаграмма первого уровня также имеет множество процессов, которые в свою очередь могут быть декомпозированы в DFD нижнего уровня. Таким образом строится иерархия DFD с контекстной диаграммой в корне дерева. Этот процесс декомпозиции продолжается до тех пор, пока процессы могут быть эффективно описаны с помощью коротких (до одной страницы) миниспецификаций обработки (спецификаций процессов). Теперь давайте рассмотрим несколько примеров (а один я распишу пошагово).
Пример 1. Приготовление кофе в кофейном автомате
Как происходит процесс приготовления кофе в кофейном автомате.
- Клиент задаёт машине параметры заказа, вносит в автомат деньги.
- Автомат обменивается данными с внешней системой банковского эквайринга, посылая счёт на оплату.
- Система возвращает чек за покупку.
- Аппарат выдаёт кофе клиенту.
Читать: Дизайн-мышление: эффективный способ разработки продуктов и услуг в бизнесе
Контекстная диаграмма для этого процесса будет выглядеть следующим образом.
Теперь давайте сделаем декомпозицию данного процесса. Тут важно понять, что в первую очередь необходимо рассчитать стоимость заказа на основании параметров заказа: сколько требуется воды, сиропа, зерен и сахара.
Кроме того, нужно знать, достаточно ли этих ингредиентов в аппарате. Данные об ингредиентах мы обозначим как хранилища, которые передают данные об остатках в процесс Рассчитать стоимость заказа.
Стоимость ингредиентов передаётся в процесс расчёта из соответствующей базы. Результатом процесса является рассчитанная стоимость заказа, которая попадает в хранилище Счёт на оплату. Дальше стоимость заказа поступает в процесс Оплатить заказ, клиент вносит деньги, а сам процесс взаимодействует с внешней сущностью Система банковского эквайринга. Процесс направляет счёт на оплату и получает чек за покупку.
Когда заказ оплачен, ингредиенты и рецепт передаются в процесс Приготовить кофе. Готовый напиток наливается в стаканчик, переданный из Склада стаканов. Это происходит в процессе Налить кофе. В результате клиент получает готовый напиток.
Пример 2. Обработка заявки клиента
Давайте представим, что у нас есть клиент, который делает заявку через сайт или по телефону. Есть менеджер, который регистрирует эту заявку. Таким образом, в системе появляются данные – клиент и его заказ. Работник склада должен это увидеть и произвести отгрузку товара с оформлением всех необходимых документов и передать документы клиенту.
Последовательность получается такая:
- Клиент предоставляет свои данные и заявку.
- Менеджер проверяет и вносит полученные данные в систему.
- Работник склада формирует документы, например, расходную накладную, и отгружает товар.
- Клиент получает товар и пакет документов к нему.
С точки зрения DFD у нас имеются:
- Покупатель – это внешняя сущность, которая является источником данных и получением результата.
- Процесс обработки заказа (подтверждение и проводка данных в системе менеджером).
- Сбор заказа на складе (после получения заявки).
- Оформление отгрузки (создание необходимых документов).
Контекстная диаграмма для этого процесса будет следующая:
Пример 3. Отгрузка товара клиенту (пошаговый)
Давайте продолжим предыдущий пример и более детально посмотрим на процесс работы с заказом клиента. После получения заказа клиента менеджер должен проверить кредитный лимит по клиенту, установить для заказа условия оплаты, проверить наличие товара на складе.
Действительные заказы накапливаются, группируются в зоны отправки и передаются на склад для выполнения. После того как заказ подтверждается, определяется способ доставки и ее стоимость, после чего заказ отправляется, а складские запасы уменьшаются (что находит отображение в учете).
Копия упаковочного листа поступает в бухгалтерию, где создается и отправляется счет-фактура (инвойс) клиенту. Потом бухгалтер разносит банковские выписки и привязывает оплаты к инвойсам. От клиентов могут поступать жалобы в службу поддержки. Они изучают запрос и отвечают клиенту как можно скорее. Любое действие предпринятые службой поддержки клиентов, которые влияют на бухгалтерский учет находить в нем свое отображение.
Давайте разложим этот процесс на процессы нижнего уровня используя:
После проведения анализа мы выяснили, что с заказами связано 4 внутренних процесса организации:
- обработка заказа поступившего на почту
- проверка кредитного лимита
- проверка наличия товаров
- группировка подтвержденных заказов
Итак у нас есть клиент от которого поступает заказ к нам на почту (на почту могут поступать и жалобы от него и информация о совершении платежа). Поскольку нас интересуют заказы, этот поток данных отобразим справа от процесса.
Для того, чтобы проверить информацию о кредитном лимите клиента, мне где-то эту информацию нужно взять. Добавим на нашу схему процесс «Проверка кредитного лимита» и хранилище «Клиенты»
Читать: Разработка требований к ПО: общие понятия
Если кредитный лимит в норме мы можем перейти к следующему процессу «Проверке наличия товара», если не в норме то заказ уходит на дополнительное подтверждение в кредитный департамент.
Для проверки наличия товара нам нужно обратиться к хранилищу «Склад», где хранится эта информация. Также нам нужно хранилище, где будет храниться информация о подтвержденных заказах.
Если выявляется, что есть путаница с каким-то наименованием (например на складе не нашелся товар с указанным артикулом) — такие заказы считаются недействительными и отправляются в службу поддержки для уточнения у клиента. В ту же службу поддержки будут поступать и жалобы от клиентов.
После того как Служба поддержки уточнила у клиента детали заказа и если все ок заказ подтверждается и отправляется в хранилище подтвержденных заказов. Подтвержденные заказы группируются по зонам отправки и потом отправляются на склад для отгрузки. Платежи давайте отправим в бухгалтерию. Детализировать работу бухгалтерии я сейчас не буду — остановимся на таком варианте диаграммы.
С помощью чего рисовать диаграммы
Можно рисовать DFD-диаграммы, используя привычные вам инструменты. Для этого подойдут, например, всем известные MS Visio или Draw.io. Но для выстраивания системы с разными уровнями детализации потребуются специализированные программы для моделирования.
Существует множество редакторов для построения DFD-диаграмм. Самым популярным является Ramus. Этот продукт имеет бесплатную версию, доступен в сетевом и локальном вариантах. StarUML — проект с открытым кодом, ещё один ходовой инструмент для создания диаграммы потоков данных. Для командной работы можно использовать облачное решение Lucidchart.
Основные ошибки при разработке DFD-диаграмм
1. Отсутствие контекстной диаграммы
На первый взгляд диаграмма с одним процессным блоком и несколькими внешними сущностями может показаться лишней. Некоторые аналитики сразу переходят к детализированным DFD. Однако построение контекстной диаграммы необходимо! При помощи контекстной диаграммы мы определяем границы и так называемый scope — объем будущей проектируемой системы.
Контекстная диаграмма наглядно отображает, что находится вне системы и даёт ответ на главный вопрос, какой внутренний процесс мы будем детализировать на диаграммах нижних уровней. Это помогает избежать одну из популярных ошибок проектирования систем, когда хочется «объять необъятное».
2. Неименованные потоки данных
Ещё одна часто встречающаяся ошибка — отсутствие названий у входящих и исходящих потоков. Каждая стрелка на схеме должна иметь название.
3. Отсутствие процессов
Наличие процесса — один из основополагающих принципов моделирования DFD-диаграммы. Когда на диаграмме отражен только обмен данными между хранилищами без привязки к процессу, непонятно, каким образом и для чего хранилища передают данные друг другу.4.
Отсутствие внешних сущностейВажно помнить, что DFD-диаграмма должна содержать одну или несколько внешних сущностей — источников входящих в процесс данных.5. Путаница между хранилищами и потоками данныхЭтой ошибки можно избежать, помня, что данные в DFD представлены в двух состояниях.
Данные в состоянии покоя помещаются в хранилища, а данные в состоянии движения отражаются при помощи входящих и исходящих потоков.6. Стремление показать логику выполнения процессов.DFD – это нотация, предназначенная для моделирования структуры информационной системы, но не её логики. Поэтому будет ошибкой привязывать элементы DFD-диаграммы к временным шкалам или использовать условные операторы XOR, OR, AND.
7. Некорректное название элементов нотации
В DFD-диаграмме не должно быть путаницы в названиях элементов. В именах внешних сущностей принято использовать существительное. Процесс — это компонент, описывающий действие, поэтому его имя начинается с глагола. Названия хранилищ и потоков данных начинаются с существительных имен.
8. Отсутствие выходов у процессов
Функциональное моделирование помогает рассматривать бизнес-модель с точки зрения результативности. При моделировании системы мы исходим из того, что имеем на входе, и того, что желаем получить на выходе. Иными словами, процесс — это действие с заданным результатом. В DFD хорошей практикой считается визуально располагать сущности одного типа на одном уровне, обычно по горизонтали. Тогда становится очевидным правило для процесса «один вход — один выход».
Источники для написания статьи
- Структурные модели бизнеса — DFD-технологии — А.Н. Калашян, Г.Н.Калянов
- Консалтинг при автоматизации предприятий — Г.Н.Калянов
- DFD by Example — Thomas and Angela Hathaway
- Блог Рамиля Кинзябулатова
- habr.com
- systems.education
- Прочие источники в интернете
Источник: www.antonpiskun.pro
1.2.7 Пример выполнения практического задания
Описание предметной области «Формирование заказов» Организация, заказчик разработки, занимается продажей различных товаров по заказам. Деятельность фирмы организована следующим образом: склад получает товар под конкретный заказ, т.е. при приеме заказа от клиента определяется вид необходимой продукции и срок доставки на склад.
Такой способ приема заказов характерен для небольших фирм, которые хотят избежать затоваривания склада и продавать наиболее современные товары. В силу данного обстоятельства требуется не только формирование заказа контракта и счета клиента, но и формирование заявки для доставки соответствующих товаров на склад На основании приведенного описания предметной области, используя методологию IDEF0, можно построить следующую функциональную модель, описывающую основные бизнес–процессы (рис.
1.17 — 1.19). Рис. 1.17 Контекстная диаграмма Рис. 1.18 Диаграмма декомпозиции 1-го уровня Рис. 1.19 Диаграмма декомпозиции 2-го уровня (процесс «Произвести оформление документов на заказ»)
1.3. Дополнение созданной модели процессов диаграммами dfd
1.3.1. Диаграммы поисков данных (Data Flow Diagrams)
Диаграммы потоков данных (Data flow diagrams, DFD) известны очень давно. В фольклоре упоминается следующий пример использования DFD для реорганизации переполненного клерками офиса, относящийся к 20-м годам. Осуществлявший реорганизацию консультант обозначил кружком каждого клерка, а стрелкой — каждый документ, передаваемый между ними.
Используя такую диаграмму, он предложил схему реорганизации, в соответствии с которой двое клерков, обменивающиеся множеством документов, были посажены рядом, а клерки с малым взаимодействием были посажены на большом расстоянии. Так родилась первая модель, представляющая собой потоковую диаграмму — предвестника DFD.
Диаграммы потоков данных используются для описания документооборота и обработки информации. Подобно IDEF0, DFD представляет модельную систему как сеть связанных между собой работ.
DFD показывает внешние по отношению к системе источники и стоки (адресаты) данных, идентифицирует логические функции (процессы) и группы элементов данных, связывающие одну функцию с другой (потоки), а также идентифицирует хранилища (накопители) данных, к которым осуществляется доступ. Структуры потоков данных и определения их компонент хранятся и анализируются в словаре данных.
Каждая логическая функция (процесс) может быть детализирована с помощью DFD нижнего уровня; когда дальнейшая детализация перестает быть полезной, переходят к выражению логики функции при помощи спецификации процесса (миниспецификации). Содержимое каждого хранилища также сохраняют в словаре данных, модель данных хранилища раскрывается с помощью диаграмм «сущность-связь» (Entity-Relationship Diagrams, ERD).
DFD можно использовать как дополнение к модели IDEF0 для более наглядного отображения текущих операций документооборота в корпоративных системах обработки информации. Для изображения DFD традиционно используются две различные нотации: Йодана (Yourdon) и Гейна‑Сарсона (Gane‑Sarson). В Ramus для построения диаграмм потоков данных используется нотация Гейна‑Сарсона.
Основные символы DFD в нотации Гейна‑Сарсона изображены на рис. 1.20. Опишем их назначение. На диаграммах функциональные требования представляются с помощью процессов и хранилищ, связанных потоками данных. Потоки данныхявляются механизмами, использующимися для моделирования передачи информации (или даже физических компонент) из одной части системы в другую.
Важность этого объекта очевидна: он дает название целому инструменту. Потоки на диаграммах обычно изображаются именованными стрелками, ориентация которых указывает направление движения информации. Иногда информация может двигаться в одном направлении, обрабатываться и возвращаться назад в ее источник. Такая ситуация может моделироваться либо двумя различными потоками, либо одним — двунаправленным.
Название символа | Изображение символа |
Поток данных | |
Процесс | |
Хранилище | |
Внешняя сущность |
Рис. 1.20 Основные символы диаграммы потоков данных Назначение процесса (функционального блока)состоит в продуцировании выходных потоков из входных в соответствии с действием, задаваемым именем процесса. Это имя должно содержать глагол в неопределенной форме с последующим дополнением (например,«Обработать заказ»).
Кроме того, каждый процесс должен иметь уникальный номер для ссылок на него внутри диаграммы. Этот номер может использоваться совместно с номером диаграммы для получения уникального индекса процесса во всей модели. Хранилище (накопитель) данныхпозволяет на определенных участках определять данные, которые будут сохраняться в памяти между процессами.
Фактически хранилище представляет «срезы» потоков данных во времени. Информация, которую оно содержит, может использоваться в любое время после ее определения, при этом данные могут выбираться в любом порядке. Имя хранилища должно идентифицировать его содержимое и быть существительным.
В случае, когда поток данных входит или выходит в/из хранилища, и его структура соответствует структуре хранилища, он должен иметь то же самое имя, которое нет необходимости отражать на диаграмме. Внешняя сущность (внешняя ссылка)представляет сущность внеконтекста системы, являющуюся источником или приемником системных данных.
Ее имя должно содержать существительное, например,«Клиент». Предполагается, что объекты, представленные такими узлами, не должны участвовать ни в какой обработке. Включение внешних сущностей в контекстную диаграмму не отменяет требования методологии четко определить цель, область и единую точку зрения на моделируемую систему.
Если создается независимая DFDмодель, то контекстная диаграмма содержит один процесс и внешние сущности (рис. 1.21). Рис. 1.21 Пример контекстной DFDдиаграммы В отличие от стрелок IDEF0, которые представляют собой жесткие взаимосвязи, стрелки DFD показывают, как данные двигаются от одной работы к другой.
Это представление потоков совместно с хранилищами данных и внешними сущностями делает модели DFD более похожими на физические характеристики системы — движение данных, хранение данных, поставка и распространение данных (рис. 1.22). Рис.
1.22 Пример DFD диаграммы В отличие от IDEF0, где система рассматривается как взаимосвязанные работы, DFD система может рассматриваться как совокупность предметов. В этом случае функциональны блоки именуются по названию системы, например «Система обработки информации». Слияние и разветвление стрелок.
В DFD стрелки могут сливаться и разветвляться, что позволяет описать декомпозицию стрелок. Каждый новый сегмент сливающейся или разветвляющейся стрелки может иметь собственное имя. Построение диаграмм DFD. Диаграммы DFD могут быть построены с использованием традиционного структурного анализа, подобно тому, как строятся диаграммы IDEF0.
Сначала строится физическая модель, отображающая текущее состояние дел. Затем эта модель преобразуется в логическую модель, которая отображает требования к существующей системе. После этого строится модель, отображающая требования к будущей системе. И наконец, строится физическая модель, на основе которой должна быть построена новая система.
Альтернативным подходом является подход, популярный при создании программного обеспечения, называемый событийным разделением, в котором различные диаграммы DFD выстраивают модель системы. Во-первых, логическая модель строится как совокупность работ и документирования того, что они (эти работы) должны делать.
Затем модель окружения описывает систему как объект, взаимодействующий с событиями из внешних сущностей. Модель окружения обычно содержит описание цели системы, одну контекстную диаграмму и список событий. Контекстная диаграмма содержит один функциональный блок, изображающий систему в целом, и внешние сущности, с которыми система взаимодействует.
Наконец, модель поведения показывает, как система обрабатывает события. Эта модель состоит из одной диаграммы, в которой каждый прямоугольник изображает каждое событие из модели окружения. Хранилища могут быть добавлены для моделирования данных, которые необходимо запоминать между событиями. Потоки добавляются для связи с другими элементами, и диаграмма проверяется с точки зрения соответствия модели окружения. Полученные диаграммы могут быть преобразованы с целью более наглядного представления системы, в частности работы на диаграммах могут быть декомпозированы.
Источник: studfile.net