3
3 what’s the essence of AOP? a naïve model does not capture –symmetric mechanism in Hyper/J –dynamic mechanism in AspectJ –more specialized mechanisms (e.g., Demeter) –… we’d like to find a model –general enough to capture many mechanisms –not too general so that we can see the nature of AOP a naïve model compo- nent aspect NG crosscutting!

12
12 observations from COMPOSITOR implementation no dominant modularity  symmetric model join points are not only from pgm-a (nor pgm-b)  “weaving into components” is not good  weaving in the third space matching rule can be modified  weaving parameters a naïve model compo- nent aspect NG

18
18 what’s modular crosscutting? it is said: “ AOP supports modular crosscutting ” but what is it? the modeling framework can explain: two modules in A&B crosscut when projections of the modules into X intersect and neither is subset of the other

19
19 an example of modular crosscutting in PA LinesetP1getP1 call to l.setP1 call to l.getP1 call to p.setX call to p.getX after(…):… PointsetXgetX “Line and DisplayUpdating crosscut in the execution” classaspect projection of Line projection of DisplayUpdating DisplayUpdating

20
20 two modules in A&B crosscut when projections of the modules into X intersect and neither is subset of the other what’s modular crosscutting? a module (eg class) projection of the module AB X

21
21 examples of modular crosscutting Line arrive at l arrive at p arrive at p’ arrive at l arrive at p traverse(…) Point Line setP1 getP1 Line setP1 getP1 Point setX getX Observable moved Point setX getX DisplayMethods Point.draw Line.draw Line setP1 draw Point setX draw Point Line setP1 getP1 call to l.setP1 call to l.getP1 call to p.setX call to p.getX after(…):… Point setX getX PA TRAV OC COMPOS- ITOR lines are missing in proceedings