Paolo Tonella and Mariano Ceccato. Aspect mining through the formal concept analysis of execution traces. In
Proc. of the Working Conference on Reverse Engineering, 2004.
This project provides a visualization of method execution traces that may help programmers to determine aspects in their program.
The use of "concept lattices" in this paper is not very deep (from a mathematical perspective), they simply provide a nice visualization for programmers. Several method execution traces are taken from different program executions. Each program execution is supposed to exercise a particular "use case". They assume these "use cases" correspond closely with the aspects you are looking for. Here is how it works:
A concept lattice is a lattice over the domain (
o,
a).
o is a subset of elements from the domain
O and
a is a subset of elements from the domain
A. For this paper, you can think of
O as "use cases" and
A as "methods".
Bottom is defined as (
{},
A), i.e. no use-cases and all methods.
Top is defined as (O,
{}), i.e. all use-cases and no methods.
Least upper bound of (
o1,
a1) and (
o2,
a2) is (
o1 UNION
o2,
a1 INTERSECT
a2)
So, as you go up the lattice you can start to see all the common methods between use-cases. Since they assume that there is a close relationship between "use cases" and aspects, you can use the lattice to find commonalities between "use cases" that may indicate crosscutting.
This paper is probably more closely related to work on eliciting aspects from requirements, such as Elisa's Theme work, than to our goals.
-- Main.wohlstad - 11 May 2005