Что такое UML-аналог диаграммы потоков данных из структурированного анализа? - PullRequest
24 голосов
/ 10 октября 2011

В темные века (середина 1980-х) я использовал Диаграммы потоков данных из Структурный анализ изрядное количество и нашел их очень полезными.

Мой нынешний работодатель любит UML. Я обычно использую BOUML, который не делает рисунки не-UML.

Что такое чертеж UML, который соответствует диаграмме потоков данных?

Если его нет, какова рекомендуемая диаграмма UML для представления соответствующих данных?

Ответы [ 7 ]

16 голосов
/ 10 октября 2011

Вероятно, самая близкая вещь - диаграмма активности .Это не совсем то же самое;больше зависит от блок-схемы, чем DFD.Тем не менее: вы можете делать некоторые полезные вещи в DFD, например AD поддерживают параллелизм и дифференцируют поток управления от потока данных.

Подробнее о сравнениях и различиях в этот вопрос .

[fwiw, я все еще использую DFD: они проще и элегантнее во многих случаях]

hth.

4 голосов
/ 15 мая 2013

В OOD нет эквивалентной модели. Акцент на DFD - это данные, отделенные от функции. Это наиболее полезно, когда дело касается процедурного подхода. Масштаб DFD намного лучше, чем OOD, если вы пытаетесь масштабировать (до мировоззрения) с помощью OOD, вы в конечном итоге используете диаграммы вариантов использования, которые полезны для захвата сущностей. Мне понравились DFD, они настолько высокого уровня, и все же их можно расширить, открыв окно DFD и назвав его уровнем 1 и т. Д.

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

Я тоже ищу схему, которая могла бы выполнять такую ​​работу. В Go интенсивно используются структуры, которые являются основными типами данных. К нему может быть прикреплен примитивный метод расширения, который напоминает OO, но на самом деле, если вы посмотрите на код Assembly, он кажется синтаксическим сахаром для функции, первым параметром которой является структура, с которой вы хотите, чтобы функция работала.

Мой совет: если вы делаете код OO, используйте OOD. Они лучше отображают и помогают в размышлениях о системе. Требуется время, чтобы выкинуть голову из процедурного кода, особенно если вы пришли из программирования 80-х / 90-х годов. Как только вы попадаете в зону с размышлениями об объектах, методы OOD работают нормально. Это не строго методология, поскольку нет четкого ответа на то, какие части вы используете, просто думать о предметах, которые я считаю самой сложной частью. Хорошая книга на эту тему «Объектное мышление - Дэвид Уэст» ... она помогает в первую очередь думать об объектах. Как только вы начинаете, его очень трудно остановить, вам может даже понравиться, что некоторые в конечном итоге окажутся в ловушке в царстве существительных, что является ужасным местом, потому что вы пишете бесконечный код котельной пластины, просто чтобы система описывалась идеально. Это форма адского кодирования, от которой я держался в течение многих лет.

Если вы кодируете на языке, который допускает процедурный код или даже смешанный OO / Procedural, вам нужно определить свою парадигму до начала кодирования, например, как в Python, так и в Object Pascal (Delphi) вы можете пойти любым путем ОО или процедурное кодирование, смешивающее код в кучу парадигм. Это решит, какие инструменты построения диаграмм следует использовать, и как вы собираетесь анализировать систему.

В последнее время в Java и c # произошли сдвиги, обеспечивающие методы функционального программирования. Я обнаружил, что они не попадают ни в одну из категорий программирования (ОО или процедурные). Попытка отобразить код функционального программирования в объект - это кошмар.

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

3 голосов
/ 23 июня 2017

UML 2 имеет очень хороший аналог диаграммы потоков данных: «Диаграмма информационных потоков».

Схемы информационных потоков поясняются здесь: https://web.archive.org/web/20121118061853/http://www.uml-diagrams.org/information-flow-diagrams.html

Обратите внимание, что UML 2.5 содержит информационные потоки и информационные элементы, но термин "диаграмма информационных потоков" не является частью официальной таксономии диаграмм UML 2.5. Итак, формально, вы просто создаете диаграмму классов или компонентов с большим количеством информационных потоков, чтобы получить свою «диаграмму информационных потоков». Я делаю это все время, используя информационные элементы UML для представления моих данных.

2 голосов
/ 11 октября 2011

Прямого аналога не существует, поскольку UML подчеркивает ОО-проектирование, тогда как DFD происходит из анализа и проектирования структурированных систем (SSAD).В UML ряд диаграмм, в частности группы с диаграммами взаимодействия , имеют характеристики, которые могут моделировать элементы потока данных и обработки.Диаграмма связи может использоваться для отражения большинства аспектов DFD в целом, тогда как диаграмма последовательности может моделировать конкретные последовательности потока.Если вы хотите предложить семантику DFD, вы можете использовать стереотипные объекты для обработки и хранения данных, а также использовать акторы для внешних объектов.

Возможно, стоит отметить, что Sparx Systems Enterprise Architect, хотя в первую очередь инструмент UML включаетDFD как расширение.

1 голос
/ 07 августа 2018

Аналогичные диаграммы будут:

  1. диаграмма потока информации
  2. диаграмма связи
  3. диаграмма последовательности
0 голосов
/ 11 сентября 2017

Я рассматриваю диаграмму потока данных как диаграмму последовательности, в которой производители данных и потребители данных создают, используют и уничтожают объекты данных с помощью синхронных и / или асинхронных сообщений.

0 голосов
/ 30 апреля 2016

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

Формально определение метамодели UML предоставляется в спецификации UML , опубликованной Группой управления объектами (OMG), а также в соответствующей метаметамодели, определенной для MOF, к которой также относится соответствующая спецификация - более того, сопровождаемая формальной OCL-спецификацией , что касается определений ограничений в моделях UML в приложениях языка OCL в UML - и затем есть Спецификация XMI , что касается спецификаций того, как модели UML могут храниться в машиночитаемом формате.

Якобы, все эти спецификации могут быть объединены для приложения, как если бы "Под капотом" любой отдельной структуры для моделирования UML - будь то в приложениях подмножества Ecore метмодели UML или в каноническом UML.

Обзор краткой академической презентации о диаграммах потоков данных - хотя и в некоторой степени отходя от формальных определений типов диаграмм UML, но, тем не менее, в более широком контексте применения метаматодели MOF - возможно, канонической BPMN метамодель - в ее обычном графическом абстрактном синтаксисе - возможно, BPMN может служить чем-то вроде аналогии с диаграммами потоков данных?

Конечно, методы моделирования могут отличаться в зависимости от поставщика и среды приложения.

...