[Lazarus] reverse engineering tool wanted

Graeme Geldenhuys graemeg.lists at gmail.com
Wed Apr 20 09:55:54 CEST 2011

On 20/04/2011 08:58, Juha (gmail) wrote:
> Don't waste your time with ESS-Model.

I never liked it much myself, I just thought I would mention the product
to the original poster.

> It uses a complex delegated interface system to pass events. It is not fully 
> supported by FPC.

That's one part of FPC that has frustrated me greatly. I used interface
delegation extensively in my Delphi work, but when we switched to FPC, I
had to rethink all my design work. FPC trunk finally has some interface
delegation working, but I haven't played with it much. I avoid FPC trunk
for our commercial development work. I have some large fpGUI changes
that uses interface delegation, but can't commit those because fpGUI's
policy is only to use stable FPC releases. A lovely chicken-n-egg
situation. :)

> All drawing objects are TWinControls. It uses some tricks to access protected 
> methods of those TWinControls.

Helper Classes or more interface usage should help there.

> In fact it doesn't work with new Delphis either because of Delphi's changes in 
> interface delegation.

Have you got any link to this information. I would like to know more on
what has changed. I've been out of the Delphi scene for a few year now.

> Still, we would need a reverse engineering class diagram tool integrated in 
> Lazarus. It would use some advanced algorithm for automatic layouting.

My personal opinion is than an "integrated class diagram / UML tool" is
largely over-hyped. I use Umlet to design my classes and other processes
(it has a brilliant interface to work in), then simply implement them
with any IDE or code editor. This process has worked very well for
years. I see no real need to have a diagram tool integrated into my IDE.
That will just distract me more from writing actual code - constantly
having to switch to different areas in the IDE and figuring out the
auto-generated code snippets. Plus the automatically generated code
might not be how I would have done it manually, or in my coding style.

Now refactoring tools inside an IDE is another story - that is far more
important to me, and fits well with the process of writing code.

For an example of a well thought out IDE, take a look at some of the
features of IntelliJ IDEA! Yes it has UML class diagram support, but
that is not required to output lots of working code in a very short time.

ModelMaker for Delphi is a bi-directional UML+code editor. It's a real
pain having to switch tools back and forth while all you really want to
do is write code. Plus, if you fiddle too much with the auto-generated
code, you brake the link between Delphi and ModelMaker - yet another

I guess this is all personal preference, and largely based on what you
are used too, and how you work. Bottom line is, I see no problem with
first designing your application & classes on screen / paper, then
switch to "implementation mode of thinking" where you start writing the
actual code.

  - Graeme -

fpGUI Toolkit - a cross-platform GUI toolkit using Free Pascal

More information about the Lazarus mailing list