схема последовательности - PullRequest
5 голосов
/ 06 января 2012

Я просматриваю код большого приложения с открытым исходным кодом и хотел бы узнать, как оно разработано и как оно работает.Есть ли инструмент, который может преобразовать код C и C ++ в диаграммы последовательности?

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

С нетерпением жду ответов, так как считаю, что эта тема должна быть хорошо освещена.

Ответы [ 3 ]

3 голосов
/ 06 января 2012

Есть, но они дорогие.Rational Rose был самым известным до того, как его купил IBM.

Природа языка C ++ очень затрудняет статический анализ.Вот почему так мало инструментов, которые могут это сделать.С тех пор как в разработке не на C ++ использовались языки, которые поддерживают рефлексию / самоанализ, этот тип инструментов действительно оставил C ++ позади.Это не значит, что их нет, просто их сложнее найти, и, как правило, они являются частью дорогого 4GL-подобного пакета.Rational Rose был в основном инструментом, позволяющим составить схему системы, который помог бы отслеживать компоненты и, в конечном итоге, создавать исходный код на разных языках.Он также может в некоторой степени преобразовать исходный код в диаграммы.

Продукт Rational Rose был в значительной степени заменен Rational Requisite Pro, при этом большая часть функциональности (с упором на Java) была добавлена ​​в IBM WebSphere Application.Платформа разработки, которая теперь называется RAD.

Инструменты Rational были известны настолько всеобъемлющими, что они действительно предназначались для крупных магазинов разработки, работающих с таким же большим персоналом, как правило, начинающих с 50+ разработчиков,для одного проекта.

Из-за сложности языка C ++ (с точки зрения инструментов) и популярности языков, таких как Java и C #, поставщики действительно не уделяют особого внимания C ++.

Я не настолько осведомлен о Visual Studio, которая все еще поддерживает C ++, но я хотел бы предположить, что поддержка C ++ UML есть только в дорогих профессиональных выпусках, таких как Pro или Ultimate.

0 голосов
/ 11 января 2012

Sparx Systems ' Enterprise Architect может записывать выполнение приложения и генерировать диаграммы последовательности из этой трассы, в дополнение к регулярной статической обратной инженерии из исходного кода. Анализатор выполнения поддерживает (в EA 9.2):

  • Microsoft Windows Native C
  • Microsoft Windows Native C ++
  • Microsoft Windows Visual Basic
  • Семейство Microsoft .NET (C #, J #, VB)
  • Sun Microsystems Java
  • PHP

Вам нужна как минимум Профессиональная версия EA, которая на момент написания стоит 199 долларов США (одна девять девять) за лицензию на одно место.

На сайте доступно очень старое демо-видео (из трех основных версий назад).

0 голосов
/ 10 января 2012

Запрашиваемый ранее C ++ to UML (Реверс-инжиниринг / Круговая инженерия) .Как ни странно, Альтова этого не делает.Кажется, делает большинство всего остального.

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