Introduction I recently watched Michael Feathers’ talk about Strategic Code Deletion. Michael said (among other very good things) that if we want to delete code, we have to know the actual usage of our code. In this post, I want
All the work before was just there to get a nice graph model that feels more natural. Now comes the analysis part: As mentioned in the introduction, we don’t only want the hotspots that signal that something awkward happened, but also
the trigger in our application of the hotspot combined with
the information about the entry point (e. g. where in our application does the problem happen) and
(optionally) the request that causes the problem (to be able to localize the problem)…
I show how I determine the parts of an application that trigger unnecessary SQL statements by using graph analysis of a call tree…
You all know word clouds!
They give you a quick overview of the top topics of your blog, book, source code – or presentation. The latter was the one that got me thinking: How cool would it be if you start your presentation with a word cloud of the main topics of your talk…
Reading data from a software version control system can be pretty useful if you want to answer some evolutionary questions like
– Who are our main committers to the software?
– Are there any areas in the code where only one developer knows of?
– Where were we working on the last months?
Software version control systems contain a huge amount of evolutionary data. It’s very common to mine these repositories to gain some insight about how the development of a software product works. But there is the need for some preprocessing of that data to avoid false analysis.
That’s why I show you how to read the commit information of a Git repository into Pandas’ DataFrame!
jQAssistant (http://www.jqassistant.org) is a great tool for scanning and validating software structures (like Maven projects, Java bytecode or Git repositories). It also supports documenting your architectural rules and design conventions in a central place. I think jQAssistant is one of the most awesome tools out there …
In the last notebook, I showed you how easy it is to connect jQAssistant/neo4j with Python Pandas/py2neo. In this notebook, I show you a (at first glance) simple analysis…
I’m a huge fan of the software analysis framework jQAssistant. It’s a great tool for scanning and validating various software artifacts. But I also love Python Pandas as a powerful tool in combination with Jupyter notebook for reproducible Software Analytics.
Combining these tools is near at hand. So I’ve created a quick demonstration for “first contact” 🙂