Можем ли мы рисовать диаграммы последовательности, если у нас нет классов в программе?

У меня есть программа, написанная на C++, в которой не используются классы, а просто функции и main(). Я хочу знать, какие диаграммы я могу нарисовать для этого. Вот несколько вещей, которые я имею в виду.

  1. Диаграмма деятельности
  2. Схема последовательности
  3. диаграмма классов - очевидно, я не могу это нарисовать, потому что я не использовал классы
  4. Архитектура системы
  5. диаграммы состояний
  6. диаграммы вариантов использования

Из них что я могу нарисовать?


person Haxed    schedule 01.08.2010    source источник
comment
Попробуйте нарисовать каждый и посмотрите, возможно ли это.   -  person Oded    schedule 01.08.2010
comment
Ну, некоторые говорят, что вы не можете нарисовать диаграмму последовательности, если у вас нет классов.   -  person Haxed    schedule 01.08.2010
comment
Некоторые люди говорят любую старую глупость. Не делает их правильными. Хитрость заключается в том, чтобы разделить код на модули или компоненты или что-то в этом роде, которые имеют различные обязанности. Вы можете сделать диаграммы последовательности для вызовов/сообщений между этими модулями.   -  person Donal Fellows    schedule 01.08.2010


Ответы (2)


Судя по диаграммам, я предполагаю, что вы придерживаетесь подхода * Unified Process.

ПО МОЕМУ МНЕНИЮ:

  • Вариант использования - определенно - выявление требований на уровне бизнеса и системы не зависит от реализации.
  • Архитектура системы - однозначно - слои, процессы, сеть, БД и модули/пакеты.
  • Диаграммы действий — обязательно — используйте это для описания потоков процессов для ключевых процессов.
  • Диаграммы состояний — применимы, хотя обычно связаны с состоянием и продолжительностью жизни одного экземпляра объекта, но все же концептуально полезны, если вы поддерживаете состояние с помощью других средств.
  • Диаграмма последовательности - применимо, хотя вам, вероятно, потребуется указать произвольное имя класса для присоединения ваших функций (если вы используете пространства имен, то, возможно, вместо этого агрегируете их?)

Тем не менее, вы можете столкнуться с проблемами, если хотите сгенерировать и выполнить обратный код из своих диаграмм, например. из CASE-инструмента, такого как Rational Rose, — большинство из них предполагает язык реализации ОО (отметим, что три амиго тесно связаны с ООП!)

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

ХТН

person StuartLC    schedule 01.08.2010

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

Для всех других диаграмм вы можете использовать части своего приложения в качестве «актеров» или «компонентов». Похоже, вы еще не исследовали, для чего используются эти диаграммы и что вы с их помощью выражаете. Если вы это сделаете, вы сможете определить, какая диаграмма имеет смысл для вас.

Помните, что каждая диаграмма должна иметь цель. Если вы делаете это только ради того, чтобы быть там, то не делайте этого.

person Patrick Cornelissen    schedule 01.08.2010