Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

sequence diagram

I am browsing the code of a large open source application and would like to learn how it is designed and how it works. Is there a tool that can reverse engineer the C and C++ code into sequence diagrams?

May be this could be a bit far fetched but what about a tool which can give me the list of functions called (in various modules and in right order) when say the application is processing an input? Or help me quickly analyze a given application (esp one with a large code base)?

Looking forward to the answers as I am thinking this must be a well covered topic.

like image 582
John Qualis Avatar asked Oct 24 '22 13:10

John Qualis


1 Answers

There are some but they are expensive. Rational Rose was the most well known before it got bought by IBM.

The nature of the C++ language makes it really hard to do static analysis. That is why there are so few tools that can do it. Since the surge in non-C++ development using languages that support reflection/introspection, this type of tooling has really left C++ behind. That isn't to say that are none, just they are harder to find and usually part of an expensive 4GL-like package. Rational Rose was mainly a tool that let you diagram a system and it would help track the components and eventually produce source code in a variety of languages. It could also reverse engineer source code into diagrams to a degree.

The Rational Rose product was pretty much superceded by Rational Requisite Pro, with a large portion of the functionality (focussed on Java) being folded into IBM's WebSphere Application Development platform, now referred to as RAD I believe.

The Rational tools were well known for being so comprehensive that they were really targeted for large development shops working with an equally large staff, usually starting at 50+ developers, for a single project.

Due to the complexity of the C++ language (from a tooling perspective), and the popularity of languages like Java and C#, vendors have really de-emphasized C++.

I'm not as knowledgeable about Visual Studio, which still supports C++, but I would be willing to guess that C++ UML support is only in the expensive professional editions like Pro or Ultimate.

like image 144
Kelly S. French Avatar answered Nov 18 '22 13:11

Kelly S. French