Each software project is built of many different software artifacts, and each of them is connected to many others. All these aspects can be represented in form of a graph. The nodes of this graph represent items of your software project, and the edges between the nodes describe their relationship, how they are connected to each other.
One difficult task in our daily work is to find unwanted or harmful relationships. The second difficult task is to ensure that only allowed relationships are used and applied.
The open source tool jQAssistant can help you to understand, visualize, and analyze structures and relationships of a Java project. It scans all files in the project and builds a graph out of the found artifacts and relationships in a graph database. Therefore, jQAssistant uses Neo4j 3. The generated graph can be queried with Neo4j's query language Cypher. You can also add your own nodes and relations to describe your own concepts.
Furthermore, jQAssistant allows you to define rules for your project which can be checked automatically during the build or in the CI pipeline.
In this talk, Oliver will show what is possible with jQAssistant, how to integrate it and how it can help you to enforce your coding rules and architecture.
Afterwards the attendee — programmer, quality engineer, or architect — will understand the idea behind software as graph, will be able to integrate jQAssistant and to write their own checks for their project.