2011-01-30 1 views
1

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

ответ

2

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

0

Visual Studio 2010 имеет это для проектов C# и VB, а Visio 2003 в тот же день может сделать их для проектов .NET и C++ ... Другие инструменты, я не знаю.

0

Какой язык конкретно вы используете (также платформа и инструменты помогут выявить потенциальные решения)?

Оказывается, что Doxygen поддерживает схему, как это (для C++): http://www.stack.nl/~dimitri/doxygen/diagrams.html

Вы могли бы быть заинтересованы в ответах здесь: Generating UML from C++ code?

0

Если вы спрашиваете о диаграммах классов, Sparx Enterprise Architect может это сделать для нескольких языков, включая Visual Basic, C#, Java и Python.

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