In my research, my collaborators and I implemented several research tools and demonstrated them during formal research tool demonstrations at various conferences listed below. All these tools include contributions by my collaborators, including my own Ph.D. advisor, Jonathan Aldrich, as well as my own advisees.

My advisees learn to write program analysis tools that use Abstract Syntax Tree (AST) visitors or dataflow analysis frameworks, and deal with many common issues to program analysis writers, like handling library code, persisting results, and producing meaningful error messages. We also learn in great detail various APIs such as the Eclipse Java AST, Eclipse plugin development, etc.

The following research tools are Eclipse plug-ins and written in Java. They are available, upon request, for research evaluation or use. The tools are listed in reverse chronological order.

ArchDoc: the Eclipse Runtime Perspective
with Andrew Giang

with Andrew Giang, Sumukhi Chandrashekar

Scoria: Security Constraints On RuntIme Architecture
with Radu Vanciu (lead)

ScoriaX: Static Extraction Analysis
with Radu Vanciu (lead)

with Radu Vanciu, Andrew Giang

Tools for Ownership Annotations, Ownership Object Graphs (OOGs)
with Radu Vanciu, Zeyad Hailat

with Jeff Barnes

 ArchDomJ, ArchCheckJ: annotation system and typechecker

ArchRecJ: hierarchical object graph extractor

ArchConf: architectural conformance checker

The conformance checking tool suite supports the extract-abstract-check methodology:

A walkthrough using the conformance tools is available here.

ArchSynch: architectural synchronizer

ArchJ2Acme: Acme and ArchJava synchronizer

Acme2ArchJ: code generator from Acme to ArchJava