Создание Диаграммы Классов

привет всем я в конце выпуска моего проекта.Поэтому, чтобы продолжать работать, наш менеджер попросил нас создать диаграммы классов для написанного нами кода.Его средний проект с 3500 java-файлами .Поэтому я думаю, что нам нужно создать диаграммы классов.Сначала мне нужно знать, как здесь работает обратная инженерия. Также я искал некоторые инструменты в Google (зеленый, фиолетовый), но не уверен помогут ли они чем-нибудь?Пожалуйста, предложите мне, как действовать дальше.Также приветствуется хорошее начало учебника.

10 ответов


Я настоятельно рекомендую BOUML. Его обратная поддержка Java абсолютно ROCK SOLID.

BOUML имеет много других преимуществ:

  • это очень быстро (быстрый инструмент UML когда-либо созданный, проверьте критерии),
  • имеет rock solid C++, Java, PHP и другие поддержки импорта,
  • это мультиплатформенный (Linux, Windows, другие ОС),
  • имеет большой Поддержка экспорта SVG, что важно, потому что просмотр больших графиков в векторном формате, который быстро масштабируется, например, в Firefox, очень удобен (вы можете быстро переключаться между представлением "birds eye" и представлением класса),
  • это полнофункциональный, впечатляюще интенсивно развитый (посмотрите на история развития, трудно поверить, что такой быстрый прогресс возможен).
  • поддерживает плагины, имеет модульную архитектуру (это позволяет пользователь взносы, похоже, сообщество BOUML формируется)

инструмент, который вы хотите использовать Doxygen. Он похож на Javadoc, но работает на нескольких языках. Если выясняет зависимости и может вызвать graphviz для визуализации диаграмм классов. Вот пример нескольких классы Java проходят через Doxygen.


Это больше цепочка инструментов, чем инструмент, и я сам не пробовал. Но это может быть отправной точкой. Используя UMLGraph, АНТ и GraphViz. Объяснил шаг за шагом: в этой статье.


Я использовал Visual Paradigm для UML за то, что вы хотите сделать, и это было довольно хорошо.

посмотреть здесь для сведения.

Just go Tools - > Instant reverse и выберите пакеты.


вы можете быть в состоянии перепроектировать диаграммы классов с открытым исходным кодом modelleing средство ArgoUML http://argouml.tigris.org/


визуальная парадигма для UML Standard Edition (или лучше) будет перепроектировать Java-файлы в диаграммы классов.


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

для записи, мой инструмент моделирования выбора - Enterprise Architect by Системы Sparx. Он обратит источники java или .файл jar. Есть бесплатная 30-дневная пробная версия.


ObjectAid очень приятно. Вы можете перетаскивать классы на диаграммы и расположить их так, как вы хотите.


есть некоторые инструменты, которые помогут вам создать эти диаграммы. Это стоит денег.

в противном случае вы можете попытаться проанализировать свои файлы Java. Это может быть так же просто создать простой парсер, который читает файлы Java и записывает имя класса и все операторы импорта в файл и генерирует диаграмму классов оттуда, graphviz могу помочь вам там.


Я использую Enterprise Architect в течение нескольких лет. Разработчик JBoss предложил мне это. Он очень хорошо работает для всех типов моделирования UML, включая обратное проектирование моделей классов (Java, C# и другие). Базовая версия в настоящее время составляет $120 за место, но она имеет большинство возможностей гораздо более дорогих инструментов, и это намного проще в освоении. Мне особенно нравится его способность генерировать документацию HTML и RTF.

очень легко синхронизировать код между инструментом и исходным кодом. Даже двунаправленный, если хотите.

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