I have been occaisionally using EA to generate UML diagrams from our C++ source code in order to avoid most of the tedious data entry of putting one together by hand. I find it particularily helpful in the middle of an active development, where keeping the diagram in synch manually can be very tedious.
Though the resulting diagrams generally need some clean-up, it's definitely worth the effort as the time it saves is still considerable.

Here's my question. I seem to have been able in the past to open up the last generated (and manually cleaned-up) EA file and re-run the reverse engineering process. Somehow it would magically (under most circumstances) know when a class has been updated vs. when a new class has been introduced. How it ever performed this sort of magic, I have not thought much about, until recently when I seemed to have lost this capability from EA all together.

Suddenly when I would go through the same process it would duplicate all of the classes that were previously created, treating each class as if it were a new class. And since they were not matched up to the previous versions, which were carefully laid out manually on the page, all of these duplicate classes massed together into the upper-left corner of the diagram. This is certainly not what I was expecting.
:-/
So this begs the question. What mechanism does EA rely upon to track changes to the design when an updated design is reverse engineered into an existing drawing. Knowing that, I might be able to figure out what I can do to get the reverse engineering process to work correctly for me again.
Or more importantly, what can I do or try to get this process to work again?
Any of your thoughts, experiences, suggestions, and definitely solutions, will be greatly appreciated!
- akatayama