Jittac

:A Just-In-Time Tool for Architecture Consistency

Overview

JITTAC uses a Reflexion modelling type approach to probe the consistency between the as-designed architecture of Java software systems and their as-implemented architecture. This Eclipse plug-in allows the user to first define a nodes-and-edges representation of the system's as-designed architecture. Then it allows the user to drag-and-drop source code entities from the package explorer into that model as either new nodes or as contents of the existing nodes (as defined by the user). The tool then calculates the source-code dependencies between the source code entities in different nodes, allowing the user assess the consistency between the as-designed architecture and the as-implemented architecture.

The approach is derived from Reflexion Modelling originally, but has built on that approach to give programmers real time feedback on architectural violations they might introduce to the code base, AS they introduce them into the code base. This increases programmers' architectural awareness in a timely fashion and lessens the likeihood that architectural violations will become entrenched in the code-base over time.


This tool moves past the original Reflection Modelling approach by:

  1. Providing real-time feedback to the architect as they map source code entities onto the as-designed architecture

  2. Allowing full round-trip inconsistency exploration: the user can click on an inconsistent edge in the representation, follow it through to the code and then follow that back, through to the architectural representation

  3. Providing programmers with real time alerts when they introduce inconsistencies as they code and indeed, before they introduce them into the code, through IntelliSence

For a more detailed description of the project, please view the slide show here.


Download

JITTAC can be installed in the following ways:


User's Guide

See user's guide on the project's wiki.

For more information see the project's page on SourceForge.


Acknowledgements

This work derives from the original work on Reflexion Models by Gail Murphy et al.