Подтвердить что ты не робот

Диаграммы блок-схем и диаграммы активности UML

Какова практическая разница между использованием диаграмм блок-схем и диаграмм активности UML? У меня есть некоторые мысли, но, может быть, мне не хватает слона в комнате?

Диаграмма блок-схем:

  • Широко используется;
  • Легко понять не программисты;
  • Старый?

Диаграмма активности UML:

  • Стандартизованные;
  • Поддержка concurrency;
  • Менее известный синтаксис, но все еще достаточно простой.

Для моего случая ad-hoc, документирующего конкретный блок логики приложения, я решил пойти с диаграммами блок-схемы. Больше людей в компании смогут их понять.

4b9b3361

Ответ 1

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

Ответ 2

Как вы заметили, диаграммы деятельности по своей сути могут включать параллелизм и синхронизацию. Если вы посмотрите на этот пример, взятый из Википедии, показанный ниже, вы можете увидеть раздел с двумя тяжелыми горизонтальными полосами и двумя параллельными действиями "настоящей идеи" и "записи идеи". Это читается как "начинайте эти действия параллельно и продолжайте только после завершения обоих". Блок-схемы не могут выразить это в нотации.

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

Диаграмма деятельности испанского пользователя из Википедии Gwaur CC BY-SA 3.0 через Wikimedia Commons: ​Activity diagram from Wikipedia

Ответ 3

Согласно сайту Agile Modeling:

Во многих отношениях диаграммы активности UML представляют собой объектно-ориентированный эквивалент блок-схем и диаграмм потоков данных (DFD) из структурированной разработки.

Из IBM:

Однако блок-схемы не включают в себя состояния И, а блок-схемы операций не могут принимать события.

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

Ответ 4

Вы можете генерировать исходный код из UML и наоборот; следовательно, "стандартизованная" характеристика, о которой вы говорили.

Ответ 5

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