Here are my general recommendations on learning something very effective. This time: jQAssistant.
jQAssistant is a structural code analysis framework written in Java. Think about it as a scanner for software artifacts and metadata. jQAssistant scans data sources like Java byte code, Git repositores, FindBugs reports or JUnit test results and stores it into the Neo4j graph database. This allows you to browse through your software related data very easily and makes analyzing software from a variety of perspectives possible. You can also write rules and concepts to define your software architecture and let jQAssistant check the actual code against your rules. jQAssistant is my favorite tool for deeper going software analyses. So here is how you can get started with jQAssistant:
A great introductury talk by the creator of the jQAssistant framework Dirk Mahler.
TOP 2: jQAssistant 101 Tutorials
Various tutorials for beginners that want to get to know jQAssistant (as well as the graph database Neo4j and its query language Cypher in general).
Focusses on the living, self-validating software architecture aspect of jQAssistant. If you don’t wanna install jQAssistant now, you can take a look at the produced artifacts as well.
TOP 4: Research Paper about jQAssistant/Neo4j (Paper)
Together with the some of the main contributors to jQAssistant and Neo4j, I helped to write the paper “Towards an Open Source Stack to Create a Unified Data Source for Software Analysis and Visualization”. Though its main goal is to show that jQAssistant can be used to create a single data source for all possible kinds of software data, it also gives you a brief introduction to jQAssistant.
TOP 5: Shadows Of The Past: Analysis Of Git Repositories (Blog Post)
Step-by-step analysis with jQAssistant to mine Git repositories.