[Tutor] python reverse engineering tools

Paul McGuire ptmcg at austin.rr.com
Sat Nov 22 14:27:31 CET 2008


It's not free, but I have had good success with Enterprise Architect from
Sparx Systems (http://www.sparxsystems.com.au/).  It will generate class
diagrams from Python, C/C++, C#, Java.  It also supports the full complement
of UML diagrams - sequence diagrams are a special treat when you just drag a
message arrow and get a drop-down list of the defined interface on the
target object.

When you go to their website, they refer to several license levels - here is
the Rosetta Stone for figuring out what you want:
http://www.sparxsystems.com.au/products/ea/editions.html.  The low-end
Desktop version is pretty stripped down, you will need to get at least the
Pro level to get the reverse engineering feature.  (We use the Pro edition
at our office.)

There is an academic Pro license for US$105, and there is an annual fee for
getting updates.  We use it at work to generate class diagrams during
design, review, and as part of the code handoff to our clients.  It's also
great for reverse engineering when you get handed an
only-partially-documented API, or a big mess of source code.  There is also
a free trial, so you could download that and try your hand at reverse
engineering some Python code - maybe an existing package like PIL or
something.  Sadly, I've even used it to reverse engineer some of my *own* C#
code - it was a project I hadn't touched for about 2 years, and the
generated diagrams were a useful memory jogger as to what I had put where.

(If you have ever downloaded pyparsing, the included class diagrams were
created using EA - by hand, unfortunately, as Python support had not yet
been added when I first started creating these diagrams.)

-- Paul



More information about the Tutor mailing list