discussion of stiemann's essay - ucf department of eecsleavens/modular-aop/discussion.pdf ·...

27
Discussion of Steimann’s Essay: “The Paradoxical Success of Aspect-Oriented Programming” Gary T. Leavens Department Of Computer Science, Iowa State University OOPSLA, October 26, 2006 Supported in part by the US NSF

Upload: others

Post on 06-Oct-2020

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Discussion of Stiemann's Essay - UCF Department of EECSleavens/modular-aop/Discussion.pdf · October 25, 2006 4 Discussion Summary: Modularity of AOP Information hiding (Parnas) “Main

Discussion of Steimann’s Essay:“The Paradoxical Success of

Aspect-Oriented Programming”Gary T. Leavens

Department Of Computer Science, Iowa State University

OOPSLA, October 26, 2006

Supported in part by the US NSF

Page 2: Discussion of Stiemann's Essay - UCF Department of EECSleavens/modular-aop/Discussion.pdf · October 25, 2006 4 Discussion Summary: Modularity of AOP Information hiding (Parnas) “Main

October 25, 2006 Discussion2

Outline

SummaryImportant pointsPerspective: what questions?Questionable pointsConclusion

Page 3: Discussion of Stiemann's Essay - UCF Department of EECSleavens/modular-aop/Discussion.pdf · October 25, 2006 4 Discussion Summary: Modularity of AOP Information hiding (Parnas) “Main

October 25, 2006 Discussion3

Summary: Definition and Paradox

Need definition of AOP languagesDefinition offered ≈ implicit invocationParadox:

Ok in moderation, but then no contributionHurts modularity if more developed

Page 4: Discussion of Stiemann's Essay - UCF Department of EECSleavens/modular-aop/Discussion.pdf · October 25, 2006 4 Discussion Summary: Modularity of AOP Information hiding (Parnas) “Main

October 25, 2006 Discussion4

Summary:Modularity of AOP

Information hiding (Parnas)“Main concern” (5.1.2):

Strong coupling of aspects to baseImplicit interface, often not publicImpairs independent development

Explicit interfaces for aspects in base: Less obliviousnessMore scattering

Page 5: Discussion of Stiemann's Essay - UCF Department of EECSleavens/modular-aop/Discussion.pdf · October 25, 2006 4 Discussion Summary: Modularity of AOP Information hiding (Parnas) “Main

October 25, 2006 Discussion5

Summary:Locality of AOP

Implicit invocation= less direct control flowContext exposure= more global access to variables

Page 6: Discussion of Stiemann's Essay - UCF Department of EECSleavens/modular-aop/Discussion.pdf · October 25, 2006 4 Discussion Summary: Modularity of AOP Information hiding (Parnas) “Main

October 25, 2006 Discussion6

Summary:Utility of AOP

Generated code weavingForming new components (glue code)

Dismantle componentsReassemble to form new components

Observed uses:LoggingSecurityRuntime assertion checking

Page 7: Discussion of Stiemann's Essay - UCF Department of EECSleavens/modular-aop/Discussion.pdf · October 25, 2006 4 Discussion Summary: Modularity of AOP Information hiding (Parnas) “Main

October 25, 2006 Discussion7

Summary:Prospects for AOP

“Tremendous success”CachetOOP is old, need something new

Paradox (section 8):Aims to “modularize crosscutting concerns”“Its very nature … breaks modularity”

Page 8: Discussion of Stiemann's Essay - UCF Department of EECSleavens/modular-aop/Discussion.pdf · October 25, 2006 4 Discussion Summary: Modularity of AOP Information hiding (Parnas) “Main

October 25, 2006 Discussion8

Important Points:What is AOP?

Focus on mechanisms (vs. goals)Need definition of AOP languages

MechanismsIndependent of goals

Implicit invocation definition sensible

Page 9: Discussion of Stiemann's Essay - UCF Department of EECSleavens/modular-aop/Discussion.pdf · October 25, 2006 4 Discussion Summary: Modularity of AOP Information hiding (Parnas) “Main

October 25, 2006 Discussion9

Important Points:Modularity of AOP

Interfaces are crucialExplicit interfaces for aspects in base:

Less obliviousnessMore scattering

Page 10: Discussion of Stiemann's Essay - UCF Department of EECSleavens/modular-aop/Discussion.pdf · October 25, 2006 4 Discussion Summary: Modularity of AOP Information hiding (Parnas) “Main

October 25, 2006 Discussion10

Important Points:Utility of AOP

AOP especially useful as notedGenerated code weaving

Aids modularity of generatorAspectJ = Assembly language of 2000’s

Glue code is important

Page 11: Discussion of Stiemann's Essay - UCF Department of EECSleavens/modular-aop/Discussion.pdf · October 25, 2006 4 Discussion Summary: Modularity of AOP Information hiding (Parnas) “Main

October 25, 2006 Discussion11

Important Points:Prospects for AOP

AOP has been a success

Page 12: Discussion of Stiemann's Essay - UCF Department of EECSleavens/modular-aop/Discussion.pdf · October 25, 2006 4 Discussion Summary: Modularity of AOP Information hiding (Parnas) “Main

October 25, 2006 Discussion12

Perspective

Flon’s axiom (SIGPLAN, Oct. 1975):“There does not now, nor will there ever, exist a programming languagein which it is the least bit hard to write bad programs.“

Page 13: Discussion of Stiemann's Essay - UCF Department of EECSleavens/modular-aop/Discussion.pdf · October 25, 2006 4 Discussion Summary: Modularity of AOP Information hiding (Parnas) “Main

October 25, 2006 Discussion13

Perspective

Flon’s axiom (SIGPLAN, Oct. 1975):Can write bad programs in any language

Page 14: Discussion of Stiemann's Essay - UCF Department of EECSleavens/modular-aop/Discussion.pdf · October 25, 2006 4 Discussion Summary: Modularity of AOP Information hiding (Parnas) “Main

October 25, 2006 Discussion14

Perspective:What are the right questions?

Flon’s axiom (SIGPLAN, Oct. 1975):Can write bad programs in AOP languages

Can we write good ones?Without scattering and tangling ofcrosscutting concernsWithout excess coupling of aspects to base

Page 15: Discussion of Stiemann's Essay - UCF Department of EECSleavens/modular-aop/Discussion.pdf · October 25, 2006 4 Discussion Summary: Modularity of AOP Information hiding (Parnas) “Main

October 25, 2006 Discussion15

Perspective:All or Nothing?

ModularitySystem is modular or not

ObliviousnessMechanisms are oblivious or not

Page 16: Discussion of Stiemann's Essay - UCF Department of EECSleavens/modular-aop/Discussion.pdf · October 25, 2006 4 Discussion Summary: Modularity of AOP Information hiding (Parnas) “Main

October 25, 2006 Discussion16

Perspective:Questions of Degree

Coupling

ScatteringTangling

Page 17: Discussion of Stiemann's Essay - UCF Department of EECSleavens/modular-aop/Discussion.pdf · October 25, 2006 4 Discussion Summary: Modularity of AOP Information hiding (Parnas) “Main

October 25, 2006 Discussion17

Perspective:Perfect AOP Measures

Coupling

ScatteringTangling

Page 18: Discussion of Stiemann's Essay - UCF Department of EECSleavens/modular-aop/Discussion.pdf · October 25, 2006 4 Discussion Summary: Modularity of AOP Information hiding (Parnas) “Main

October 25, 2006 Discussion18

Perspective:Without AOP

Coupling

ScatteringTangling

Page 19: Discussion of Stiemann's Essay - UCF Department of EECSleavens/modular-aop/Discussion.pdf · October 25, 2006 4 Discussion Summary: Modularity of AOP Information hiding (Parnas) “Main

October 25, 2006 Discussion19

Perspective:Compromise

Coupling

ScatteringTangling

Page 20: Discussion of Stiemann's Essay - UCF Department of EECSleavens/modular-aop/Discussion.pdf · October 25, 2006 4 Discussion Summary: Modularity of AOP Information hiding (Parnas) “Main

October 25, 2006 Discussion20

Perspective:N-Dimensions of Modularity

Coupling

ScatteringTangling

Reasoning Difficulty

Heap interference...

Page 21: Discussion of Stiemann's Essay - UCF Department of EECSleavens/modular-aop/Discussion.pdf · October 25, 2006 4 Discussion Summary: Modularity of AOP Information hiding (Parnas) “Main

October 25, 2006 Discussion21

Questionable Points:Coupling of Aspects and Base

Section 5.1.2:Code “moved out of its context …”“it must take (a reference to) the context that it depends on with it,”“thereby establishing coupling”

How often?How much coupling?

Page 22: Discussion of Stiemann's Essay - UCF Department of EECSleavens/modular-aop/Discussion.pdf · October 25, 2006 4 Discussion Summary: Modularity of AOP Information hiding (Parnas) “Main

October 25, 2006 Discussion22

Questionable Points:Reducing Coupling

XPIs (Griswold et al.)Adding interfaces for crosscuttingExtra indirection reduces coupling

Open Modules (Aldrich)Explicit interface to adviceReduces obliviousness

Page 23: Discussion of Stiemann's Essay - UCF Department of EECSleavens/modular-aop/Discussion.pdf · October 25, 2006 4 Discussion Summary: Modularity of AOP Information hiding (Parnas) “Main

October 25, 2006 Discussion23

Questionable Points:Paradox

Due to all-or-nothing usage of:ModularityQuantification and obliviousnessAOP’s contribution

Due to multiple senses of “modularity”Information hiding (lack of coupling)Encapsulation (lack of scattering)

Page 24: Discussion of Stiemann's Essay - UCF Department of EECSleavens/modular-aop/Discussion.pdf · October 25, 2006 4 Discussion Summary: Modularity of AOP Information hiding (Parnas) “Main

October 25, 2006 Discussion24

Questionable Points:Lack of Imagination

“I find it difficult to imagine …” (4.2)“I cannot see how ... ” (4.3)“it may be my lack of imagination” (5.1.7)

Page 25: Discussion of Stiemann's Essay - UCF Department of EECSleavens/modular-aop/Discussion.pdf · October 25, 2006 4 Discussion Summary: Modularity of AOP Information hiding (Parnas) “Main

October 25, 2006 Discussion25

Questionable Points:Lack of Imagination

Most technology nay-sayers wrongSome promising directions

Tool support (Eclipse AJDT)XPIsOpen ModulesStatic analysisModel-driven architectureAnnotations

Page 26: Discussion of Stiemann's Essay - UCF Department of EECSleavens/modular-aop/Discussion.pdf · October 25, 2006 4 Discussion Summary: Modularity of AOP Information hiding (Parnas) “Main

October 25, 2006 Discussion26

Conclusions

Thought-provokingRead it!Agree: AOP ≈ implicit invocationPerspective on “paradox”:

N-dimensions of modularityEach a scale, not all-or-nothingCompromise!Research: how to do better

Page 27: Discussion of Stiemann's Essay - UCF Department of EECSleavens/modular-aop/Discussion.pdf · October 25, 2006 4 Discussion Summary: Modularity of AOP Information hiding (Parnas) “Main

October 25, 2006 Discussion27

Time for Discussion

Coupling

ScatteringTangling

Reasoning Difficulty

Heap interference...