1. Use AspectJ to create a sequence diagram from a running program. 2. Integration of Demeter and AspectJ Possibilities: 2.1 Traversal introductions: exposing names of generated methods 2.1.1 Visitors done in AspectJ can combine traversals with other pcds very verbose to transport objects using cflow 2.1.2 Visitors done in Java as in DJ 2.2 Without exposing names of generated methods use new point cut designators: traversal(t) and crossing(e). Use target(x) to access traversed node. Use this(x) and target(y) to access edge from x to y. Use args(v) to access the visitor in the traversal; Use args(v,tokenSet) to access both visitor and the token set. Can ask token set whether a given strategy edge is active. Combine traversal(s) pcd cut with other pcds. But && in AspectJ has other meaning as strategy intersection for traversals. Use separate set of operators for traversals. 2.2.1 Without nested traversals there is much duplication of traversal(t) in the visitor pointcuts. Would like to put advice into traversals? 2.3 DJ partial evaluation: First two: independent of AspectJ Motivation: DJ too slow for AspectJ community 2.3.1 Partially evaluate traverse, fetch, gather, asList when class graph is fixed. 2.3.2 Increment: also partially evaluate visitors with traversals 2.3.3 Increment: add to AspectJ: allow traverse to be called in advice 2.4 New type pattern: Classes(traversal specification) Apply traversal specifications to Call Graph and select nodes only. 2.5 Use strategies in combination with cflow. 2.6 Demeter/AJ This tool project is fun and suitable as a five week project. Input: Class dictionary cd Set of traversals *.java files containing aspects with pointcuts traversal(t) and crossing(e) Translate the class dictionary into Java classes a la DemeterJ. Translate the traversals to aspects (introductions) Then all the *.java files are compiled by AspectJ. Benefits: DemeterJ Needs a cd for AspectJ 2.7 Adding Aspectual Collaborations to AspectJ Write a preprocessor that translate Aspectual Collaborations to AspectJ (extended with Demeter by John Sung). This will be a nice integration of our current work resulting in a system where we have components, aspects, collaborations, functional traversals, class dictionaries all available.