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 Lancaster University Coordinator Trinity College Dublin Universidad de Malaga INRIA Technion Israel Institute of Technology Universiteit Twente Vrije Universiteit Brussel Katholeike Universiteit Leuven Technische Universitaet Darmstadt
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 low Easy 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 guidance Can be risky for shipped products Normal 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 teams Tracing 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 Protection Non-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 Pointcuts absorb some changes Upfront aspectisation further improves stability Aspects 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 Ripple effects observed in interacting aspect interfaces AO 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 Pointcut mistakes in aspect handlers Aspects throw additional exceptions Errors 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 Department 31 Bridging the academia-industry gap is one of the fundamental challenges facing software engineering research.