Как создать диаграмму классов из исходного кода, используя Enterprise Architect или Rational Software Architect?

Я не владею UML, но я хотел бы создать диаграмму классов на основе существующего кода C ++. Другие вопросы StackOverflow указывают на то, что две программы — Enterprise Architect и Rational Software Architect — достаточно хороши в «обратном инжиниринге» кода C ++ (то есть в создании диаграмм классов UML на основе существующего кода C ++).

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

В Rational Software Architect я создал UML-проект, но я не могу найти какой-либо способ в программе выбрать и выполнить обратный инжиниринг моего существующего кода C ++.

В Enterprise Architect мне удалось импортировать мой код C ++, но все элементы (классы) появились в бесполезной пересекающейся диагональной линии на диаграмме. Я пробовал другие настройки, такие как круг, но их было одинаково невозможно прочитать, потому что диаграммы были настолько большими (из-за атрибутов и методов, занимающих много места), что никакие панорамирование и масштабирование не были полезны. Я хотел бы скрыть все, кроме имен классов (т.е. не отображать какие-либо методы или атрибуты), чтобы все 20 классов отображались на одном экране удобно и разборчиво.

Однако я не могу найти способ скрыть все, кроме имен классов. Скорее, когда я нашел опцию (в Enterprise Architect), которая, казалось, могла скрыть все, кроме имен классов, по какой-то причине все элементы исчезли в диаграмме классов, и не было повторения шагов & удаление и повторное добавление пакетов привело к появлению диаграммы классов.

Примечание. Мой код C ++ (по крайней мере, те файлы, которые я выбрал для импорта в Enterprise Architect) насчитывает всего около 20 классов.

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

Я был бы признателен, если бы кто-нибудь мог рассказать мне об основных шагах по созданию удобочитаемой, удобной для навигации диаграммы. обратный инжиниринг (то есть C ++ — to-UML), который показывает только имена классов, так что около 20 классов помещаются (разборчиво) на одном экране, используя либо Enterprise Architect, либо Rational Software Architect — ИЛИ любой другой инструмент, который способен на делать это (я предлагаю EA и Rational только потому, что они были выделены в других ответах StackOverflow как лучшие программы, доступные для этой цели).

9

Решение

Этот ответ относится к EA.

Вы можете импортировать отдельные файлы или целые каталоги, рекурсивно или нет. Импорт каталогов — безусловно, самый распространенный случай; Импорт одного файла не позволяет автоматически создавать диаграммы.

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

Если ваш код состоит только из 20 классов, то, скорее всего, они находятся в одном каталоге и / или пространстве имен, поэтому поэкспериментируйте с этим параметром (структура пакета в диалоговом окне «Импорт источника»), чтобы получить правильное количество диаграмм.

В том же диалоговом окне есть кнопка «New Diagram Options», которая открывает другое диалоговое окно конфигурации, где вы можете выбрать, должны ли диаграммы содержать атрибуты и / или операции классов. Вы также можете принять решение на основе видимости, например, показывать только публичных участников.

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

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

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

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

Это странно, поскольку EA автоматически выкладывает сгенерированные диаграммы, и я не смог найти опцию, которая позволяет отменить это поведение. Если это не исчезнет, ​​отправьте сообщение об ошибке в Sparx Systems. Вы всегда можете выложить диаграмму, открыв ее и выбрав Layout Diagram в меню Diagram верхнего уровня.

Если, наконец, ваши классы распределены по разным пакетам а также пространства имен, так что EA генерирует для них несколько диаграмм, вам придется объединить их вручную. Сделайте это, открыв обе диаграммы, выбрав все (Ctrl-A) в одной, скопировав (Ctrl-C) и вставив (Ctrl-V) в другую, затем попросите EA снова создать Layout Diagram.

Так:

  1. Щелкните правой кнопкой мыши пустой пакет в браузере проекта и выберите «Разработка кода» — «Импорт исходного каталога».
  2. В диалоговом окне выберите корневой каталог и тип источника.
  3. Отметьте «Создать логическую диаграмму для каждого пакета» и выберите структуру пакета, которая лучше всего соответствует вашей исходной структуре.
  4. Нажмите «Параметры новой диаграммы» и в новом диалоговом окне снимите флажок «Показать атрибуты», «Показать операции» и «Показать методы свойств», если применимо.
  5. ОК в обоих диалогах.
  6. Если было создано несколько диаграмм, скопируйте все классы в одну диаграмму.
  7. Если макет выглядит плохо, выберите Диаграмма — Схема макета.

Надеюсь это поможет.

14

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]