EDIT: Hmmm, some of those tools also use the term "reverse engineer". Looks more like just translating to me but I guess they can do what you're looking for. I'll have to check them out myself. UML diagrams are pretty enlightening sometimes.