jQAssistant: Treat your code as a graph

Day 2 /  / Track 4  /  EN / Introduction to technology

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.

Oliver B. Fischer
diconium digital solutions

Oliver is Head of Development and Software Architect at diconium digital solutions in Berlin. He is an active Apache committer and contributes to a range of open source projects, mainly to jQAssistant. He also publishes widely in peer-reviewed journals and magazines with a strong focus on Java. He is passionate about innovative systems and ideas, especially in connection with Java but also on DevOps-related topics. Oliver leads the Java Usergroup Berlin-Brandenburg, is one of the organisers of the Hackergarten in Berlin and helps organise several conferences.