<div class="gmail_quote">On Sun, Mar 8, 2009 at 9:12 AM, Banibrata Dutta <span dir="ltr">&lt;<a href="mailto:banibrata.dutta@gmail.com">banibrata.dutta@gmail.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
<div class="gmail_quote"><div class="im">On Sun, Mar 8, 2009 at 3:25 AM, Vishal <span dir="ltr">&lt;<a href="mailto:vsapre80@gmail.com" target="_blank">vsapre80@gmail.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">

Hi,
<div><br></div><div>Does anyone know of a tool that can produce Python code from UML diagrams?</div></blockquote><div><br></div></div><div>Never used personally, but found few moments back -- &#39;Gaphor&#39; (<a href="http://gaphor.devjavu.com/" target="_blank">http://gaphor.devjavu.com/)</a></div>

<div><br></div><div>I know that BOUML is superfast and is quite extensible with possibility of writing it&#39;s plugins using a well documented API (mixed C/Python plugin possible). I&#39;ve used BOUML (but for C++ projects), and it is one of _the_ fastest babes around.</div>
<div class="im">
<div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div></div><div>Is something of this sort being added to NetBeans?</div></blockquote><div><br></div></div>
<div>Impossible is nothing ;-) </div><div class="im">
<div><br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div>Or is it that the ease of programming in Python acts as a deterrent in the way of having to create something in UML and then covert that model into Python.<br>

</div>
<div></div></blockquote><div><br></div></div><div>Forward engineering should not be a challenge, but any programming language that has too many ways of representing the same idea, and where the OO paradigm can be functionally represented in multiple (too many) form, reverse-engineering (not round-trip, simple reverse) presents some challenges (not unsurmountable though). Once the forward and reverse engg parts are individually nailed, the full round-trip thing becomes possible, though some tools _by design_ choose to work in completely context-free manner, and make round-trip jobs difficult. My knowledge of Python isn&#39;t good enough to say whether Python is such a language, however given that Gaphor exists, this (forward engg) is a solved problem.</div>
<div class="im">
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div><br></div><div>it would be good to have a tool of that sort (Python to UML and UML to Python)?</div><div><br></div>

<div>Also, is there a way to find Python call graphs (something like Doxygen), but not just the typical static code structure...instead something that can tell execution paths while a certain function is called.</div>
<div>I came across &#39;pycallgraph&#39;. Its good. except two things, its slow for big projects, and it goes all the way into tracing every single call...that means if I am using a COM library underneath, it traces that as well. What I was interested in is figuring out only part of the trace...may be specifying exclusions in the trace tree.</div>

</blockquote><div><br></div></div><div>I am guessing that it does dynamic (run-time) analysis, and unlike static analysis tools, the depth control can only be &quot;simulated&quot;, i.e. in reality full depth traversal happens, hence you find it slow.</div>

<div></div></div></blockquote><div><br></div><div>Looking around, found some more --</div><div><br></div><div>(Commercial) <a href="http://www.objectdomain.com/">http://www.objectdomain.com/</a> </div><div>(FOSS) <a href="http://sourceforge.net/projects/eclipse-pyuml">http://sourceforge.net/projects/eclipse-pyuml</a></div>
<div><br></div><div>maybe there are others too. And 1 correction about Gaphor, it seems to be able to do reverse engg.</div><div><br></div></div>-- <br>regards,<br>Banibrata<br><a href="http://www.linkedin.com/in/bdutta">http://www.linkedin.com/in/bdutta</a><br>