Dfd (data flow diagram)


Все потоки данных перемещаются


Download 1.25 Mb.
bet3/4
Sana21.06.2023
Hajmi1.25 Mb.
#1643037
1   2   3   4
Bog'liq
Ramus primer

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

  • DFD — нотация представления структуры процессов, поэтому не содержит логических операторов (XOR, AND OR) в отличие от процессно-событийных нотаций BPMN, EPC и UML-activity.

  • Потоки данных на диаграмме должны быть названы и описаны в словаре данных. Иными словами, на диаграмме не должно быть элементов без имени.

  • В отличие от IDEF0 для диаграммы потоков данных не важно, с какой стороны стрелка входит в блок «процесс» или «хранилище данных», а также с какой стороны выходит. Поток данных, выходящий из процесса, является его выходом или результатом, а входящий — входом.

  • Как и в IDEF0, проектирование DFD начинается с создания контекстной диаграммы. Это верхний уровень, который кратко и емко описывает назначение и границы системы. Контекстная диаграмма относится к категории диаграмм, описывающих систему на уровне «черного ящика». Это означает, что на диаграмме отражены только внешние свойства, а не содержание системы. Потоки данных в нашем случае — это и есть внешние свойства системы. Дальнейшая декомпозиция этого «черного ящика» выполняется на следующих уровнях иерархии — вложенных диаграммах.


    Контекстная диаграмма в нотации Йордана де Марко
    Контекстная диаграмма содержит три основных компонента:


    • Один процессный блок — проектируемый объект (например, система).

    • Одна или несколько внешних сущностей — взаимодействующих с проектируемым объектом элементов окружения (группы пользователей, смежные системы).

    • Исходящие и входящие потоки данных.

    Пример #1 Выдача кредита
    Рассмотрим в качестве примера выдачу кредита физическому лицу.


    1. Клиент подаёт заявку на кредит.

    2. Банк оценивает платежеспособность и надежность клиента.

    3. С учетом полученных сведений и на основании истории взаимоотношений с клиентом банк принимает решение о выдаче кредита. Решение содержит данные о выдаваемой сумме и процентной ставке.

    4. Банк создаёт кредитный счёт и перечисляет на него деньги.

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



    Пример DFD: Выдача кредита. Контекстная диаграмма
    Самая важная для проектирования информация содержится внутри процессорного блока. Его содержимое раскрывается в декомпозированной DFD-диаграмме.

    Пример DFD: Выдача кредита


    Что можно увидеть на этой DFD-диаграмме?

    Первичная заявка на кредит в виде входящего потока данных попадает в процесс Первичный скоринг. На выходе из процесса скоринговая оценка клиента направляется в хранилище данных Заявка на кредит. Сюда же попадают данные о желаемой сумме займа и сведения о клиенте.

    Клиент как внешняя сущность передаёт сведения о своих доходах. Эти данные помещаются в промежуточное хранилище Справка о доходах.

    Процесс Оценка платежеспособности клиента обрабатывает данные из хранилища Заявка на кредит и из промежуточного хранилища Справка о доходах. На этом этапе рассматриваются персональные данные клиента, сведения о его доходах, стаже работы и условиях труда. Результат процесса — параметры кредита — поступают в хранилище Кредитный договор.

    Процесс Проверка службы безопасности получает сведения о благонадежности клиента из множества источников (хранилищ данных). CRM-система банка хранит историю взаимодействия с клиентом. Служба безопасности формирует заключение, которое попадает в соответствующее промежуточное хранилище данных.
    Процесс Генерация кредитного договора получает данные о положительном решении службы безопасности, параметры кредита из кредитного договора и данные заемщика. На выходе из процесса одобренная сумма кредита поступает в хранилище данных Кредитный счёт.

    Из Кредитного счёта в процесс Выдача денег поступает поток денежных средств. Результатом финального процесса является выдача кредита клиенту.


    Пример #2 Приготовление кофе в кофейном автомате
    Поскольку DFD позволяет показывать не только информационные потоки данных, но и материальные потоки, мы рассмотрим бытовой пример — приготовление кофе с помощью кофейного автомата.


    1. Клиент задаёт машине параметры заказа, вносит в автомат деньги.

    2. Автомат обменивается данными с внешней системой банковского эквайринга, посылая счёт на оплату.

    3. Система возвращает чек за покупку.

    4. Аппарат выдаёт кофе клие нту.

    Пример 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-диаграмм

    Download 1.25 Mb.

    Do'stlaringiz bilan baham:
  • 1   2   3   4




    Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
    ma'muriyatiga murojaat qiling