Генерация диаграммы классов из XMI

ситуация

У меня есть проект PHP с большим количеством классов с большим количеством отношений во многих папках после Соглашение Об Именах Zend.

Я использую IDE NetBeans 7.1. Я работаю под Windows 7.

цель

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

попытки

1. В NetBeans

NetBeans является удивительным IDE с большим количеством функций. Фактически, он распознает зависимости классов, и было бы разумно предположить, что у него есть какой-то способ графически просмотреть эту связь, изначально или через плагин. Такой плагин существует, но для версии 5.5. У меня 7.1, и это несовместимо. Неудача.

2. Enterprise Architect

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

Итак, я импортировал источник. Он сгенерировал много разных классов и проанализировал все член. Кроме того, он создал диаграммы классов. - Прекрасно!- Я думал, но увы. Диаграммы классов показывают только отношения между классами, файлы которых находились в одной исходной папке, несмотря на то, что эти отношения были явно зарегистрированы в свойствах классов. Поиск документации о том, как я мог объединить все эти диаграммы в одну, не увенчался успехом. Неудача.

Примечание: я создал параллельный поток перед этим здесь.

3. PHP_UML

нашел это груша инструмент. Выглядеть хорошо. Итак, я прочитал документацию о том, как установить ее для моей установки из разных источников, и запустил ее. Сначала я использовал HTML-код формат вывода. Здорово! Много документации с индексом, бла бла бла. Однако лучшее, что он мог сделать в том направлении, которое я хочу, было это: Class Diagram? Излишне говорить, Я думаю, что это очень плохая, супер упрощенная версия того, что я на самом деле нужно. Вывод: провал.

4. Enterprise Architect + PHP_UML

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

Итак, я импортировал его в Enterprise Architect. Результат: то же самое, что и раньше, только с Enterprise Architect, только без диаграмм классов. Только занятия. Насколько я читал об этом, теперь я могу вручную создать отношения. Эпический неудача.

5. ArgoUML + PHP_UML

где-то через моих поисках решения я наткнулся на чей-то комментарий, который сказал, что они используют ArgoUML. Загружено и установлено. XMI импортируется с некоторыми хлопотами (пришлось явно изменить версию на 1). Провал (см. Попытка 3).

вывод

такая, казалось бы тривиальная задача, и все же так сложно. Должен ли я пройти через весь этот список, пробуя каждое приложение?

2 ответов


одним из способов сделать это было бы взять подход, иллюстрированный в моей попытке 2 или 4, а затем следуйте инструкциямздесь для архитектора предприятия.

для создания XMI файл с помощью PHP_UML:

  • соблюдать эти инструкции чтобы установить PEAR, если он еще не установлен, если у вас установлен PHP отдельно.
  • если вы используете XAMPP под Windows (мой случай), следуйте эти инструкции добавить грушу в переменная env пути и таким образом сделать грушу доступной через CMD, а также узнать, как установить пакеты в системах *nix и Windows. подсказка: разделителем путей является"; " (точка с запятой) для Windows.
  • в некоторых настройках, например, при использовании XAMPP, вы возможно, потребуется активировать расширение XSL. В этом случае откройте свой php.ini file (Вам может понадобиться администратор привилегии для его сохранения), а также раскомментировать или добавить следующую строку в нижней части раздела "динамические расширения":extension=php_xsl.dll.
  • установить PHP_UML пакета с pear install PHP_UML.
  • выполнить phpuml -f xmi -o name_of_output_dir. Если вы планируете использовать сгенерированный XMI с некоторыми старыми программами позже, вам может потребоваться указать XMI версии 1, добавив -x 1.
  • для меня это не сработало сразу, сказав, что я пропал без вести ../../данных/как xmlschema.ГСЧ. Не уверен, почему это случилось, но если вы получите аналогичную ошибку, вы можете скачать ее из здесь и в data папка прямо под каталогом PEAR.

этот XMI можно позже использовать с Корпоративный Архитектор, ArgoUML и другие инструменты XMI.


(редактировать: этот ответ является альтернативой для людей, которые хотят создать диаграмму классов UML из проекта PHP, он не объясняет, как читать файлы XMI)

цель

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

Если вашей целью было создать диаграмму классов из проекта PHP, я нашел лучшее решение, чем использовать PHP_UML. Что вы, вероятно, хотите-это BoUML, С помощью этого программного обеспечения, вы можете выбрать папку проекта PHP и обратного проектирования его. Затем создайте диаграмму классов. Когда вы перетаскиваете класс на него, отношения существуют в отличие от AlgoUML (если я не ошибаюсь). Данные файлы больше не полезны в этом случае.