Objects and Aspects: Wrap-upObject MechanismsType MechanismsAspect MechanismsAnalysis and VerificationEmpirical StudiesThemes: DeclarativityThemes: ExtensibilityBig ChallengesObjects and Aspects:Wrap-up15-819Jonathan AldrichObject Mechanisms•Prototypes•Dynamic inheritance•Multiple dispatch/pattern matching•Overrideable fields•Parameterized module systems•Mixin inheritanceType Mechanisms•Row polymorphism•Family polymorphism•F-bounded polymorphism•Nested inheritance•Abstract types•Variance annotations•Typestate•OwnershipAspect Mechanisms•Open classes•Advice•Pointcuts•Aspect binding•Dynamic deployment•Class compositionAnalysis and Verification•Typestate for objects•Data groups•Boogie•Aspect-aware interfaces•Open modules•Model checking aspectsEmpirical Studies•Comparing AspectJ and Hyper/J•WebSphere–AOP can implement homogenous concerns more consistently–AOP can effectively isolate optional concerns•AspectC–Preliminary evidence that modular concerns can aid evolutionThemes: Declarativity•Prototypes•Dynamic inheritance•Multiple dispatch•Pattern matching•Pointcuts•Dynamic deploymentThemes: Extensibility•In-place–Open classes–Advice•Functional–Parameterized modules–Mix-in inheritance–Overrideable fields–Class composition–Aspect bindingBig Challenges•Using aspects in evolving programs•Useable symmetric AOP•Effective AOP tool support•Developing AOP constructs that are more modular and/or less brittle•Cleanly combining functional and in-place extension•Unifying mechanisms without complexity explosion•Lightweight but powerful AOP/OOP type systems•Verification methodologies that respect object and aspect
View Full Document