Различия между DFD (Диаграмма потока данных) и диаграммой активности - PullRequest
19 голосов
/ 03 сентября 2010

Мне нужно знать эти различия, чтобы понять, как правильно их использовать.

Чем отличаются диаграммы DFD и Activity?

Ответы [ 5 ]

20 голосов
/ 03 сентября 2010

На самом деле, это логично. Вам нужно только посмотреть на имена.

В блок-схемах data линии между «полями» представляют данные, которые передаются между компонентами системы. Поскольку они показывают только поток данных, они не дают указания на последовательность.

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

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

14 голосов
/ 03 сентября 2010

Явное смещение: я сторонник DFD.

@ Джон прав, что диаграммы действий могут использоваться для представления потока объектов.@pax одинаково верны, они редко бывают.

Два больших преимущества DFD для меня:

  1. Ссылка на объектную модель.Хранилища данных на DFD предоставляют действительно хороший способ связать данные, полученные / потребленные с объектной моделью.Очень полезно для согласованности и обеспечения того, что ваше мышление объединено.

  2. Они не подчеркивают поток управления.Слишком часто проектирует чрезмерную последовательность.Диаграммы действий поддерживают параллелизм, но он требует от пользователя (а) запомнить и (б) использовать его.Поэтому по умолчанию используется чрезмерная сериализация.DFD не делают.Они обнажают зависимости последовательности real без каких-либо дополнительных усилий со стороны пользователя.Следовательно, они также облегчают видеть причинно-следственные связи.Если процессы a и b требуют ввода данных D, это очевидно на диаграмме.И поэтому параллельная активность очевидна.

Не поймите меня неправильно - я не против Диаграмм Деятельности.Там, где поток управления является основным фактором, я буду использовать AD над DFD.Но опытным путем я бы сказал, что считаю DFD более полезным инструментом в ~ 70-80% случаев.

Конечно, YMMV.

1 голос
/ 02 января 2017

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

Один последний комментарий относительно возраста инструментов и продуктов. Помните, что в большинстве случаев они ведут бизнес и работают чертовски хорошо. Пословица «ты сломаешь (или заменишь) и сделаешь это») может сделать тебя героем или превратить тебя в клоуна.

У нас есть ИТ-директор, который хочет заменить все приложения для мэйнфреймов по той простой причине, что они являются старой технологией. Нужно взвесить последствия и понять, может ли замена справиться с рабочей нагрузкой. Вы когда-нибудь задумывались, почему JPMC, Credit Swiss, Walmart и Bank of America называют несколько еще работающих мейнфреймов?

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

0 голосов
/ 17 февраля 2017

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

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

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

0 голосов
/ 15 января 2017

Data Flow представляет поток внутри одного модуля или одного независимого кода. Однако Sequence Diagram представляет последовательность действий между различными модулями.

Да, в некоторые моменты они могут передавать одни и те же сообщения.

Я в основном использую Sequence diagram в интерфейсных документах, которые будут использоваться совместно с другими модулями / элементами, однако DFD будет использоваться в проектных документах низкого уровня, которые будут использоваться для разработки кода внутри одного модуля или сетевого элемента.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...