The following research tools are Eclipse plug-ins and written in Java. They are available, upon request, for research evaluation or use.
- A re-implementation of an architectural-level security analysis using the Acme ADL.
- [Link to additional material]
ArchDomJ: annotation system and typechecker
- ArchDomJ: a re-implementation of the ownership domains type system (AliasJava) by Aldrich et al., using Java 1.5 annotations and the Eclipse infrastructure. This implementation also contains additional features such as checking domain links, support for annotating external library code using XML files (AliasXML), among others.
- Requirements: Eclipse
- Initially demonstrated at OOPSLA'06: Abi-Antoun, M. and Aldrich, J. Bringing Ownership Domains to Mainstream Java. OOPSLA Companion, 2006.
- Also demonstrated at ECOOP'07: Abi-Antoun, M. and Aldrich, J. Eclipse Plug-ins for Statically Checking and Visualizing Ownership Domain Annotations, ECOOP Companion, 2007.
ArchRecJ: hierarchical object graph extractor
- ArchRecJ: extracts a hierarchical object graph from Java code with ownership domain annotations.
- The tool uses the annotations to control abstraction by ownership hierarchy, and allows the user to optionally abstract objects in a domain by their types.
- Requirements: Eclipse, ArchDomJ
- Initially demonstrated at OOPSLA'06: Abi-Antoun, M. and Aldrich, J. A Static Analysis for Extracting Runtime Views from Annotated Object-Oriented Code. OOPSLA Companion, 2006.
- Updated version of the tool demonstrated at OOPSLA'08: Abi-Antoun, M. and Aldrich, J. Tool Support for the Static Extraction of Sound Hierarchical Representations of Runtime Object Graphs. OOPSLA Companion, 2008.
ArchConf: architectural conformance checker
The conformance checking tool suite supports the extract-abstract-check methodology:
- ArchRecJ: extract a hierarchical object graph from annotated code;
- ArchCog: abstract an extracted object graph and represent it as a Component-and-Connector architecture (C&C view) in the Acme Architecture Description Language;
- ArchConf: check and display conformance between the built and the designed runtime architectures;
- CodeTraceJ: trace each conformance finding to the corresponding locations in the code;
- Requirements: Eclipse, AcmeStudio, ArchDomJ
- Initially demonstrated at OOPSLA'08: Abi-Antoun, M. and Aldrich, J. Tool Support for Statically Checking the Structural Conformance of an Object-Oriented System to its Runtime Architecture. OOPSLA Companion, 2008.
A walkthrough using the conformance tools is available here.
ArchSynch: architectural synchronizer
- ArchSynch: a tool for differencing and merging two architectural specifications in Acme using structural comparison.
- Collaborators: Nagi Nahas (on the tree-to-tree correction algorithm), David Garlan and Bradley Schmerl (on Acme and Acme Studio)
- Requirements: Eclipse and AcmeStudio
- Demonstrated at ASE'06: Abi-Antoun, M., Aldrich, J., Nahas, N., Schmerl, B. and Garlan, D. Differencing and Merging of Architectural Views. In Proceedings of the 21st IEEE International Conference on Automated Software Engineering (ASE'06), pp. 47–58, 2006. [Aphyds Demo (AVI)][Aphyds Demo (MOV)][Duke's Bank Demo (AVI)][Duke's Bank Demo (MOV)] [DOI]
ArchJ2Acme: Acme and ArchJava synchronizer
- ArchJ2Acme: extract a built architecture from an ArchJava implementation and incrementally synchronize with a designed architecture in Acme.
- Requirements: Eclipse and AcmeStudio
- Initially demonstrated at ICSE'05: Abi-Antoun, M., Aldrich, J., Garlan, D., Schmerl, S., Nahas, N., and Tseng, T. Modeling and Implementing Software Architecture with Acme and ArchJava. ICSE, 2005.
Acme2ArchJ: code generator from Acme to ArchJava
- Acme2ArchJ: generate ArchJava skeleton code from a specification in the Acme Architecture Description Language.
- Collaborators: Tony Tseng
- Requirements: Eclipse and AcmeStudio, an Eclipse plug-in for architectural modeling using Acme
- Initially demonstrated at OOPSLA'04: Aldrich, J., Garlan, D., Schmerl, B., and Tseng, T. Modeling and Implementing Software Architecture with Acme and ArchJava. OOPSLA Companion, 2004.