I am very new reverse engineering, and have the below mentioned tasks to achieve on a open source program called Apache Ant. What (preferably free) tools can be appropriate to achieve these. I have been exploring Enterprise Architect for days and it has been pointed out to me it is not tool for such objectives.
- Extract different source code metrics such as LOC, Comments, No of classes etc.
- Extract abstract classes.
- Extract function calls
- Extract level of coupling between classes
- Extract different type of associations in classes.
- Extract different UML diagrams.
- Detect Singleton and Factory Method design patterns.
- Detect God Class and Lazy Class code smells.