AOP and Modular Reasoning [ICSE05] - PowerPoint PPT Presentation

1 / 6
About This Presentation
Title:

AOP and Modular Reasoning [ICSE05]

Description:

Kiczales and Mezini - FOAL 2005. 2. Aspect cuts interface. through Point and Line ... Kiczales and Mezini - FOAL 2005. 6. Why paper matters to us. What theory ... – PowerPoint PPT presentation

Number of Views:11
Avg rating:3.0/5.0
Slides: 7
Provided by: gregork
Learn more at: http://www.cs.ucf.edu
Category:

less

Transcript and Presenter's Notes

Title: AOP and Modular Reasoning [ICSE05]


1
AOP and Modular Reasoning ICSE05
  • Start with first-principles definition of
    modularity and modular reasoning
  • localization, interfaces, enforcement,
    composition
  • Provide example and analysis showing that
  • in the presence of ccc, OOP is not modular
  • in the presence of ccc, AOP is modular
  • But
  • interfaces depend on system configuration
  • AOP makes that explicit
  • explains more about what crosscutting means
  • ______
  • ICSE05 Kiczales and Mezini.

2
Crosscutting Structure and Interfaces
aspect UpdateSignaling private Display
Shape.display public void Shape.setDisplay(Dis
play d) this.display d pointcut
change(Shape shape) this(shape)
(execution(void Shape.moveBy(int, int)
execution(void Shape.set())) after(Shape
s) returning change(s) Display.update(s)

class Line private Point p1, p2 Point
getP1() return p1 Point getP2() return
p2 void setP1(Point p1) this.p1
p1 void setP2(Point p2) this.p2
p2
class Point private int x 0, y 0
int getX() return x int getY() return y
void setX(int x) this.x x
void setY(int y) this.y y
  • Aspect cuts interface
  • through Point and Line
  • What crosscutting means
  • The gestalt of AOP

3
Parts
4
Composed parts
  • composition determines
  • both interfaces and component structure

5
Crosscutting Structure and Interfaces
aspect UpdateSignaling private Display
Shape.display public void Shape.setDisplay(Dis
play d) this.display d pointcut
change(Shape shape) this(shape)
(execution(void Shape.moveBy(int, int)
execution(void Shape.set())) after(Shape
s) returning change(s) Display.update(s)

class Line private Point p1, p2 Point
getP1() return p1 Point getP2() return
p2 void setP1(Point p1) this.p1
p1 void setP2(Point p2) this.p2
p2
class Point private int x 0, y 0
int getX() return x int getY() return y
void setX(int x) this.x x
void setY(int y) this.y y
  • Parts stay the same
  • Interfaces are extended
  • Declarative
  • What details means can change

6
Why paper matters to us
  • What theory of AOP should say
  • interface depends on configuration
  • aspect control systems can account for that
  • expand modular to encompass AOP
  • that has been the idea for 10 years
  • Stop focusing on advice and simple pointcuts!
  • inter-type declarations
  • more interesting pointcuts (i.e. dflow, pcflow)
  • the fun is in saying
  • there is a well-definable crosscutting
    interface there,Im going to define it and
    program against it
  • a chance to play with all that fancy semantics
  • (AOP as a strategic technology)
Write a Comment
User Comments (0)
About PowerShow.com