Upload
jana-syme
View
225
Download
0
Tags:
Embed Size (px)
Citation preview
Computing Department
Awais Rashid
Aspect-Oriented Software Development in Practice: Tales from AOSD-Europe
© A. Rashid (2009)
Computing Department
Acknowledgements
• All members of AOSD-Europe• Special thanks to:
– Regine Meunier and Daniel Wiese (Siemens, Germany)– David Cousins (IBM UK)– Phil Greenwood, Thomas Cottenier, James Walkerdine
(Lancaster University, UK)– Roberta Coelho (Lancaster University and Pontifical Catholic
University, Rio de Janeiro, Brazil)– Wouter Joosen (Katholieke Universiteit Leuven, Belgium)
Computing Department
AOSD = Improved Modularity = Better for your organisation
Computing Department
Three Key Questions
• How is AOSD being used in industrial projects today?
• Does the improved modularity yield real benefits when engineering and evolving software?
• What do I need to watch out for when using AOSD techniques?
Computing Department
AOSD-Europe
• A large-scale academia-industry collaboration funded by the European Commission FP6 Programme for– Large-scale AOSD research– Shared investment in development of tools and
methodologies– Building bridges between AOSD research and
practice
• 11 organisations investing approx. 1000 pm of effort
Computing Department
AOSD-Europe
Siemens AG
IBM UK
LancasterUniversityCoordinator
Trinity CollegeDublin
Universidad de Malaga
INRIA
TechnionIsrael Instituteof Technology
UniversiteitTwente
Vrije UniversiteitBrussel
KatholeikeUniversiteitLeuven
TechnischeUniversitaetDarmstadt
Computing Department
Inventory of Non-Trivial AOSD Applications
• IBM Websphere Application Server: Uses AspectJ to isolate features of different editions
• JBoss Application Server: Services such as Security and Transactions deployed with JBoss AOP
• Oracle TopLink: Spring AOP for high levels of persistence transparency
• Sun Microsystems: AspectJ to simplify the development of mobile applications for deployment to different operator decks and different mobile gaming interfaces.
• Siemens SOARIAN: A health information management system using AspectJ and FastAOP to integrate crosscutting features into an agile development process.
7
Computing Department
Inventory of Non-Trivial AOSD Applications
• Motorola wi4: A cellular infrastructure system that provides support for the WiMAX wireless broadband standard and uses AO modelling (WEAVR) for debugging and testing purposes.
• ASML: Miriam (aspect-oriented C) to modularize tracing, profiling and error handling concerns in lithography systems.
• Glassbox: A troubleshooting agent that monitors the activity of the Java virtual machine using AspectJ.
• Mysql: The logging feature in mysql is based on AspectJ.
8
Computing Department
Inventory of Non-Trivial AOSD Applications
• Isis: A UK academia-law enforcement partnership using the AOSD-Europe Middleware Reference Architecture and technologies for AORE for monitoring in online systems
• Toll System Demonstrator from AOSD-Europe• Digital Publishing Demonstrator from AOSD-
Europe
9
Computing Department
How is AOSD being used in industrial projects today
?
Computing Department
Most industrial projects use basic features of aspect-oriented technologies
Computing Department
Cases in Point
• Siemens: SOARIAN project• IBM: WebSphere
Learning effort is lowEasy to see the benefits – no need to be an AO expert
Computing Department
Sophisticated AO features are mainly used in academia-industry pilots
Computing Department
Cases in point
• KUL/VUB/Telecom solution provider: Padus• TUD/TUBerlin/Fraunhofer FIRST/GEBIT
solutions/blueCarat: TopPRax
Need expert guidanceCan be risky for shipped productsNormal academia-industry transfer route
Computing Department
Incremental introduction is a good strategy: address developmental concerns first
Computing Department
Cases in point
• Siemens: SOARIAN project• IBM: WebSphere• MySQL
Enforce architectural constraints across large developer teamsTracing and logging
Computing Department
AOSD is mainly used for modularising well-known crosscutting problems
Computing Department
Cases in point
• Siemens: SOARIAN project Tracing, Auditing, Caching, Performance Monitoring
• IBM: WebSphere Tracing, Logging, First Failure Data Capture
• MySQL Logging• Motorola: WEAVR Tracing, TimeOut• Lancaster University/Specialist UK Law
Enforcement: Isis Project Monitoring for Online Child ProtectionNon-invasive
Low risk, high return
Computing Department
Does the improved modularity yield real benefits when engineering and evolving software
?
Computing Department
AOSD techniques improve design stability during software evolution
Computing Department
Case in Point
• Lancaster-led international initiative: The AOSD testbed – Empirical study over 9 evolutionary
scenarios in the HealthWatcher system
Concurrency
ConcurrencyPointcuts absorb some changesUpfront aspectisation further improves stabilityAspects better preserve the open-closed principle
Computing Department
AOSD techniques can substantially reduce model size through modularisation of replicated behavior
Computing Department
Case in Point
• Motorola: WEAVR
A study of production models at Motorola estimates that the size of the models could be reduced by more than 40% if replication due to crosscutting could be avoided
A study of production models at Motorola estimates that the size of the models could be reduced by more than 40% if replication due to crosscutting could be avoided
Model-driven aspect engineering facilitates manipulation of and code generation for crosscutting concerns
Computing Department
What do I need to watch out for when using AOSD techniques
?
Computing Department
Pointcut fragility may cause ripple effects
Computing Department
Case in Point
• Lancaster-led international initiative: The AOSD testbed – Empirical study over 9 evolutionary
scenarios in the HealthWatcher system
View
ViewRipple effects observed in interacting aspect interfacesAO modifications tended to propagate to seemingly unrelated modules
Computing Department
Exceptional interfaces need to be carefully considered in the presence of aspects
Computing Department
Case in Point
• Lancaster/PUC-Rio Empirical Study of three real-world systems– Health Watcher, AJHotDraw, MobilePhoto
Health Watcher V1
43
196 153
43173
50
100
200
300
400
500
600
OO AO
# e
xce
ptio
n p
ath
s
Uncaught Same Exception Subsumption
Health Watcher V9
28
277 242
47
271
9
OO AO
Mobile Photo V4
4753
4613
2
0
20
40
60
80
100
OO AO
Mobile Photo V6
5663
219
6
OO AO
HotDraw
124 136
64
316
5
384
0
100
200
300
400
500
600
OO AO
Pointcut mistakes in aspect handlersAspects throw additional exceptionsErrors in use of AspectJ declare soft
Computing Department
Revisiting the three key questions
• How is AOSD being used in industrial projects today?– Mainly basic AO features where learning curves are low– Developmental concerns that allow incremental introduction– Well-known crosscutting problems – low risk, high yield
• Does the improved modularity yield real benefits when engineering and evolving software?– Improved design stability– Reduction in model size in large-scale projects
• What do I need to watch out for when using AOSD techniques?– Carefully design your pointcut expressions– Carefully consider the exceptional interfaces
Computing Department
In Summary
• We are over the hype-curve. • Aspects are steadily making their way into
products and services. • Academia and industry need to work together to
transfer cutting edge technologies to address some of the pitfalls, such as pointcut fragility.
30
Computing Department31
Bridging the academia-industry gap is one of the fundamental challenges facing software engineering research.