Q:

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.

A:

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.

