Analyzing software systems

Glamorous Toolkit also comes with an elaborate software analysis framework.

What do we mean by software analysis?

Take a look at this picture:

We see three panes. First, we have a model of a system that can be queried. The model offers a deeply connected graph of the various entities. In our example, we see a blueprint visualization of the internals of a C++ class. Furthermore, we can go a step further and get to the details of the abstract syntax tree of any entity.

Programmable analyses

Software systems are highly contextual and because of that we can predict classes of problems, but not the specific problems that developers might have during development. For an analysis to be effective, it has to capture the specifics of the system. It needs to be contextualized.

We approach this contextualization through programming. We represent various facts about systems as objects. These objects can be manipulated, like any other object in our environment, through the inspector interface in many different ways. In this way, creating a software analysis is not disimilar to querying or visualizing any other piece of data.