22. Transaction as a Table
t
rA
ha calls
c
runDFA
This Tx added
among others a
call to charAt in
location runDFA
locations
23. Blocks = Aspect Candidates
k lock
nc ocun
l
sy calls
d
method sync is called from
e
locations d, e, f, g, h, i, k
f
g
h
i
{sync} is an
k
aspect candidate
locations
38. Locality
chris chris tom chris silvi silvi chris
39 40 41 42 43 44 45
39. Locality
chris chris tom chris silvi silvi chris
39 40 41 42 43 44 45
40. Locality
chris chris tom chris silvi silvi chris
39 40 41 42 43 44 45
Temporal
locality
41. Locality
chris chris tom chris silvi silvi chris
39 40 41 42 43 44 45
Temporal
locality
42. Locality
chris chris tom chris silvi silvi chris
39 40 41 42 43 44 45
Temporal
locality
43. Locality
chris chris tom chris silvi silvi chris
39 40 41 42 43 44 45
Possessional Temporal
locality locality
44. Locality
chris chris tom chris silvi silvi chris
39 40 41 42 43 44 45
Possessional Temporal
locality locality
➡ merging transactions and
running concept analysis.
45. Results for Eclipse
Transactions (43270)
max avg
The average transaction
blocks 1235 3.7
is small. It adds 5 calls
methods 1236 5.4
in 4 locations.
locations 1287 3.8
46. Results for Eclipse
Transactions (43270)
max avg
The average transaction
blocks 1235 3.7
is small. It adds 5 calls
methods 1236 5.4
in 4 locations.
locations 1287 3.8
Aspect Candidates*
112 candidates add
methods 1 2 3 ≥4
3 calls or more.
candidates 1878 362 88 24
* selected from 159448 blocks
48. Locking Mechanism
public static final native void _XFree(int address);
public static final void XFree(int /*long*/ address) {
284
ts 1
lock.lock();
scu
os
cr
try {
ns
_XFree(address);
tio
oca
l
} finally {
lock.unlock();
}
}
49. Future work
• Evolution of cross-cutting concerns.
Refactor only those that actually change.
• Relation between cross-cutting concerns
• Refactoring of concerns.
• Package and ship HAM.
50. Conclusions
• Cross-cutting concerns emerge over time.
• Cross-cutting changes point to aspect
candidates.
• HAM scales to industrial-sized systems.
• http://www.st.cs.uni-sb.de/softevo/