A Retrospective Study of AspectJ Developers Assumptions About Aspect Usage Steffen Zschaler Kings College London Awais Rashid Lancaster University 23 March 2011 Motivation ID: 550109
Download Presentation The PPT/PDF document "Aspect Assumptions" is the property of its rightful owner. Permission is granted to download and print the materials on this web site for personal, non-commercial use only, and to display it on your personal computer provided you do not modify the materials and that you retain all copyright notices contained in the materials. By downloading content from our website, you accept the terms of this agreement.
Slide1
Aspect AssumptionsA Retrospective Study of AspectJ Developers’ Assumptions About Aspect Usage
Steffen
Zschaler
(
King’s
College London),
Awais
Rashid (Lancaster University)
23 March, 2011Slide2
MotivationAspects provide new ways of modularising codeBUT modular reasoning over aspects considered difficultSome approaches exist
XPIs,
OpenModules
, ...BUT how do we know if they are good?
23/03/2011
2
(c) Steffen Zschaler, 2011Slide3
Motivation (2)Modular reasoning relies on assumptions and guaranteesModules provide guarantees if
their assumptions are met
So what types of assumptions do aspect developers make?
23/03/2011
3
(c) Steffen Zschaler, 2011Slide4
Using Assumption TypesAssumption elicitationUse catalogue as “check list” in inspectionsExtract patterns that may be used to identify certain assumption types (semi-)automatically
Assumption verification
Provide specification template for each type
Type-specific assumption
specifiersCode improvement
Some assumptions really are indications of bugs
23/03/2011
4
(c) Steffen Zschaler, 2011Slide5
Study DesignStudied 3 open-source AOP projectsManually identified assumptions (explicit & implicit)
Validated findings with original developers
Manually classified into types
Validated classification with original developers
23/03/2011
5
(c) Steffen Zschaler, 2011Slide6
Selected Projects
Mobile Media
Health Watcher
Glassbox
Academic project
Academic project on an industrial basis
Industrial project
Aspects specifically developed
Aspects specifically developed;
Some
generalisation for reusability
Aspects developed for reuse
Mostly static crosscutting
Mostly dynamic crosscutting
Mostly dynamic crosscutting
Refactored
from an OO
system
Evolved from
an OO system
AOP from scratch
23/03/2011
6
(c) Steffen Zschaler, 2011Slide7
What’s in an Assumption?
System S
Aspect A
Weaving context
wctx
(A)
System S
Δ
23/03/2011
7
(c) Steffen Zschaler, 2011Slide8
Assumption Types
Aspect
Assumptions
Aspect–Base Coordination
Synchronisation
Architecture
Coding Patterns
Managed
by Context
Monitor
Sharing
Communication
Data
Code
Advised
Code
Called
Aspect–Aspect Coordination
Inter-Aspect
Inter-Advice
Inter-Process
ITDs
Deployment
Super-Aspect
Structure
Sub-Aspect
Structure
Precedence
Wormhole
Advice Execution
Sequence
23/03/2011
8
(c) Steffen Zschaler, 2011Slide9
Threats to ValidityLimited number of projectsFound and classified 183 assumptionsCover a range of different AOP project characteristics
New projects may still require new classes to be added
Manual identification and clustering
May have misinterpreted / misunderstood
Constant checks and feedback from original developersAll
AspectJMay be relevant for other modularisation techniquesFurther research needed
AspectJ
most used, though
23/03/2011
9
(c) Steffen Zschaler, 2011Slide10
Future WorkSimplify assumption specificationFormalisation templatesCustom language concepts
Experiments on assumption elicitation
AspectJ
anti-patternsAssumptions in other modularisation techniques
23/03/2011
10
(c) Steffen Zschaler, 2011