8

Are there tools that would create:

  • UML Structural Diagrams from Source Code.
  • UML Behavioral Diagrams from Binary executing on a arm / x86 system.
    Sources would be in C &/ C++ &/ Python.

Such tools would boost productivity while re-engineering (understanding existing software and modifying it.) on a Linux platform.

1
  • Klocwork used to have a tool for this long ago, Java only I believe
    – atdre
    Mar 6, 2014 at 14:28

3 Answers 3

2

I did some work on modelling C programs sometimes back, I used this article as starting point,

http://www.drdobbs.com/uml-for-c-programmers/184401948

then evaluated few ide and found EA most fitting also IBM RSA has good support for modelling C programs.

However what you will need to do is, formulate a way of modelling C programs in UML and then follow it, this is because C not being an Object Oriented language and UML being inherently Object oriented we need to device how we will represent a C construct in UML.

hope this helps for C, for C++ EA and RSA's reverse engineering worsk well and not much effort is required as C.

1
  • 1
    you should respond to or accept the answers to the questions you have asked mate.
    – abpan
    Mar 19, 2014 at 11:02
3
  • Sparx Systems Enterprise Architect for Java or .NET
  • IDA Pro RTTI plugin for C++ compiled binary
  • doxygen for C, Java, and other language source code
0

Just about all the major tools will take source files / directories and produce namespace (a Package), class and interface definitions, attributes, properties, and operation signatures. For a variety of languages.

However, not all dependencies nor all relationships between classes will be discovered as operation definition bodies are not parsed, thus Activity model of an operation cannot be derived ( nor its Activity Diagram ).

Microsoft in Visual Studio 2010 ( I believe, through to 2015 ) included an Operation to Sequence Diagram generator for any operation selected in the editor. It has since been dropped, probably due to it being restricted to managed languages.

To derive State Machine model / diagram would also need to be cognitive of the coding convention originally employed in the source to be meaningful. Perhaps this is an area that Machine Learning might have impact.

Collaboration Diagrams have been dropped from UML.

I'm suprised that parsing op bodies has not been up taken by vendors, EA, MagicDraw, not even Eclipse Papyrus for Java.

Hope that helps, Regards

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.