Atlas SDK

The Atlas SDK makes it easy for you to make custom Eclipse plug-ins that process and visualize Java and C code. The possibilities are endless; from generating documentation to making custom architectural views. Some users have even built sophisticated program analysis tools such as type checkers and symbolic evaluators using the Atlas SDK.

The Atlas shell allows you to prototype ideas quickly and interactively using Scala, an interpreter friendly Java-like language. In fact, the Atlas Smart Views and Connection View were developed using the Atlas SDK and originally prototyped using the Atlas shell.

 

SDK

The fastest way to create custom visualizations with the Atlas SDK is by contributing a custom Smart View plugin. For more advanced solutions, the Atlas SDK provides three major components: Atlas Queries, Atlas Graph View Components, and Atlas Selection Listeners. 

Atlas Graph View Component

The Atlas Graph View Component is a WorkbenchPart that you can use to visualize code in your plugins.  The Atlas Graph View Component tutorial has more details.

Atlas Queries

Atlas maps your source code and produces a graph which can be queried from any JVM compatible language, such as Java or Scala.

This graph contains:

  • The major declarations (projects, types, packages, fields, methods), and associated relationships, such as the type hierarchy. 
  • Method level relationships, such as calls and reads/writes of fields, among other things. 
  • Control flow for each method
  • Detailed data flow

For example, the queries below let you visualize how your program interacts with the java.net package:

Q java_net = pkg("java.net");
Q children = edges(XCSG.Contains).forward(java_net);
Q methods = children.nodesTaggedWithAny(XCSG.Method);
Q callGraph = codemap.edgesTaggedWithAny(XCSG.Call).reverse(methods) show(callGraph);

The easiest way to experiment with Atlas Queries is trying the Atlas Shell tutorial.

Atlas Selection Listener

Atlas Selection Listeners give you code and Atlas Graph View selections as Q objects which you can easily further process with the Atlas Queries or visualize them with the Atlas Graph View Component.  The Atlas Selection Listener tutorial has more details.

Shell

The Atlas shell is an interactive way to execute Atlas queries.  If you are building plugins, you can use it to quickly prototype different visualizations, or just as part of your normal workflow with Atlas.  The Atlas Shell tutorial has more details.