Как создать UML-диаграммы из кода C#, написанного в Visual Studio 2012, в Visio 2010?

Я пытаюсь найти способ генерировать диаграммы UML (диаграммы последовательностей, диаграммы классов и т. д.) Из моего кода C#, написанного в Visual Studio 2012.

Я видел ссылку на http://office.microsoft.com/en-us/visio-help/about-reverse-engineering-code-to-the-uml-HP001208803.aspx что я могу принести свой проект Visual Studio в Visio.

но его первая часть, где говорится: "в среде Visual Studio обратная инженерия активируется из команды on меню Project."не работает для меня, потому что я не могу найти опцию обратного инжиниринга в меню проекта.

Как я могу создавать UML-диаграммы из кода C#, написанного в Visual Studio 2012 в Visio 2010?

5 ответов


Microsoft больше не считает Visio инструментом разработки программного обеспечения. Была версия, известная как "Visio для корпоративных архитекторов", которая имела эту интеграцию с Visual Studio. Он был доступен с выпуском Visual Studio самого высокого класса.

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

Visual Studio Ultimate теперь имеет свои собственные встроенные функции UML, которые не полагаются на Visio.


взрыв из прошлого. Прошло некоторое время с тех пор, как я перепроектировал что-либо в UML, поэтому мои знания могут быть устаревшими. В любом случае, насколько я помню, обратное проектирование кода с использованием Visio-это функция Visio, а не функция Visual Studio, некоторые версии Visual Studio имеют свои собственные функции моделирования.

для использования Visio reverse engineering вам необходимо убедиться, что Visio UML addin установлен (он должен быть доступен в профессиональных и выше версиях Visio, но не может быть установлен по умолчанию.)

здесьэто довольно старый шаг за шагом процесса для старой версии Visio и Visual Studio. Я не думаю, что процесс сильно изменился (хотя, очевидно, поддерживаемые языки изменились.)

в любом случае мне никогда не нравился Visio для UML (по правде говоря, мне никогда не нравился Visio.) Мне очень понравилось корпоративный архитектор системы Sparx для моделирования, и их обратное проектирование было довольно хорошим когда я использовал его на .Net 2.0. Я не знаю, как их текущая версия справляется с новыми возможностями. Мне также больше нравится их среда моделирования "с нуля".

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

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


Это зависит от того, какую версию продукта вы используете. У меня есть Visual Studio Professional 2012, и я не вижу этого варианта. Это имеет смысл если вы посмотрите на особенности продукта. Если, однако, вы посмотрите на особенности продукта Visual Studio 2012 Ultimate, вы увидите моделирование UML и различные другие инструменты визуализации.


Visual Studio 2010 non-Ultimate версия разрешена для этого поколения UML с помощью Feature Pack, который еще не был разработан для Visual Studio 2012. Как упоминал Доминик (он опередил меня), Visual Studio 2012 Ultimate должен учитывать это.


Visual Studio Ultimate 2012 может генерировать очень хорошие диаграммы последовательности для кода c#, когда вы просто выбираете элемент (имя метода); и он постоянно терпит неудачу на моем месте, если я делаю то же самое для кода VB.

Это в отличие от Enterprise Architect от Sparx, самого продвинутого инструмента CASE для UML и других моделей AFAIK.