MaintainJ, generating UML diagrams from runtime execution
In brief, it is able to instrument your code (using AspectJ for that, so no code modification is performed) so it writes calls to a file, which is then used to build class and state diagrams. And it does this from within Eclipse.
The cool part is that you get the real classes being used. If you model your code using interfaces (which you probably do if using any kind of IoC container like Spring), this shows the real implementation class being used. It also shows the real calls being made, so you can test any use case and get a nice state diagram for it. Which looks great documentation-wise.
Although it is clearly cool, I’m not sure about how useful it really is. I suppose it depends on the documentation your development process requires.