Structuring Adaptive Applications using AspectJ and AOM

Slides:



Advertisements
Similar presentations
Comparing AO-Design Patterns Implementations. Quantitative study that compares aspect-based solutions for the GoF patterns in AspectJ, Compose* and CaeserJ.
Advertisements

Rodrigo Bonifácio Paulo Borba Informatics Center Federal University of Pernambuco Brazil Sérgio Soares Department of Computing.
Aspect Oriented Programming. AOP Contents 1 Overview 2 Terminology 3 The Problem 4 The Solution 4 Join point models 5 Implementation 6 Terminology Review.
ASTA Aspect Software Testing Assistant Juha Gustafsson, Juha Taina, Jukka Viljamaa University of Helsinki.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 32 Slide 1 Aspect-oriented Software Development.
Secure Systems Research Group - FAU Aspect Oriented Programming Carlos Oviedo Secure Systems Research Group.
Overview of AspectJ Aspect Oriented Software Development Seminar Technion presented by Oren Mishali.
ETX Workshop OOPSLA 2003 Prism pattern recognition for aspect mining Prism is Research in Software Modularization Charles Zhang and Hans-Arno Jacobsen.
Aspect-Oriented Programming In Eclipse ® Aspect-Oriented Programming in Eclipse with AspectJ Dr Helen Hawkins and Sian January.
University of British Columbia Software Practices Lab Fluid AOP Join Point Models Terry Hon Gregor Kiczales.
ASPECT ORIENTED SOFTWARE DEVELOPMENT Prepared By: Ebru Doğan.
University of British Columbia Software Practices Lab CAS Seminar 06 Fluid AJ - A Simple Fluid AOP Tool Terry Hon Gregor Kiczales.
Aspect Oriented Programming Written by Michael Beder.
1 FM Overview of Adaptation. 2 FM RAPIDware: Component-Based Design of Adaptive and Dependable Middleware Project Investigators: Philip McKinley, Kurt.
1 Model Interface Implementation for Two-Way Obliviousness in Aspect-Oriented Modeling Presented by Wuliang Sun Department of Computer Science Baylor University.
Introduction to Aspect- Oriented Programming CS 3360 Gregor Kiczales, et. al. Getting started with AspectJ, CACM, 44(10):59-65, October Fall 2012.
Software Engineering Muhammad Fahad Khan
Outline Introduction Problem Statement Object-Oriented Design Aspect-Oriented Design Conclusion Demo.
Developing Adaptive J2ME Applications Using AspectJ Ayla Débora and Paulo Borba {add, Centro de Informática - UFPE.
Secure Systems Research Group - FAU Aspects and mobile applications Sergio Soares Paulo Borba, “PaDA: A Pattern for Distribution Aspects” In Second Latin.
Introduction to Aspect Oriented Programming Presented By: Kotaiah Choudary. Ravipati M.Tech IInd Year. School of Info. Tech.
Aspect Oriented Programming (AOP) in.NET Brent Krueger 12/20/13.
Aspect Oriented Programming Razieh Asadi University of Science & Technology Mazandran Babol Aspect Component Based Software Engineering (ACBSE)
Supporting Heterogeneous Users in Collaborative Virtual Environments using AOP CoopIS 2001 September 5-7, Trento, Italy M. Pinto, M. Amor, L. Fuentes,
Software product lines Paulo Borba Informatics Center Federal University of Pernambuco.
Aspect Oriented Programming Scott Nykl CSSE 411 Senior Seminar.
What is “model transformation”? Distinction between source and target Source may be same as target May be multiple sources, or targets Reaching a fixed.
Composing Adaptive Software Authors Philip K. McKinley, Seyed Masoud Sadjadi, Eric P. Kasten, Betty H.C. Cheng Presented by Ana Rodriguez June 21, 2006.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 32 Slide 1 Aspect-oriented Software Development 1.
Aspect Oriented Programming Sumathie Sundaresan CS590 :: Summer 2007 June 30, 2007.
Using Aspects to Support the Software Process: XP over Eclipse Oren Mishali and Shmuel Katz Technion, Israel Institute of Technology.
Aspect Oriented Programming Gülşah KARADUMAN.
Domain Driven Web Development With WebJinn Sergei Kojarski College of Computer & Information Science Northeastern University joint work with David H. Lorenz.
On the Modularity Assessment of Aspect- Oriented Multi-Agent Systems Product Lines: a Quantitative Study Camila Nunes
Methodology: The AOP Refactoring Process Aspect-Oriented Refactoring of the Apache Cocoon Shared-Object Resource Allocation System Jeff Dalton Advisor:
Design Rules for Increasing Modularity with CaesarJ Carlos Eduardo Pontual Advisor: Paulo Borba 17/06/2010.
AOSD1 Aspect-Oriented Software Design Karl Lieberherr Theo Skotiniotis.
TRANSPARENT EXTENSION OF SINGLE- USER APPLICATIONS TO MULTI-USER REAL-TIME COLLABORATIVE SYSTEMS An Aspect Oriented Approach to Framework Integration ICEIS.
AOP-1 Aspect Oriented Programming. AOP-2 Aspects of AOP and Related Tools Limitation of OO Separation of Concerns Aspect Oriented programming AspectJ.
CCC: An Aspect-Oriented Intermediate Language on.Net Platform Yingfei Xiong and Feng Wan University of Electronic Science and Technology of China, China.
Introduction Better Faster Cheaper (pick any two) On-going issue that continues to motivate research in software engineering Applications: –continue to.
Virtual Support for Dynamic Join Points C. Bockisch, M. Haupt, M. Mezini, K. Ostermann Presented by Itai Sharon
Domain Driven Web Development With WebJinn Sergei Kojarski College of Computer & Information Science Northeastern University joint work with David H. Lorenz.
Future Directions in Middleware Research and Technology Fabio Kon Department of Computer Science University of São Paulo, Brazil
1 An Aspect-Oriented Implementation Method Sérgio Soares CIn – UFPE Orientador: Paulo Borba.
IDENTIFYING SEMANTIC DIFFERENCES IN ASPECTJ PROGRAMS Martin Görg and Jianjun Zhao Computer Science Department, Shanghai Jiao Tong University.
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University IWPSE 2003 Program.
Demeter Aspects We study techniques for the emerging area of Aspect-Oriented Software Development and focus on the following areas:  Aspectual Collaborations.
MDD approach for the Design of Context-Aware Applications.
AOP-Driven Variability in Software Product Lines Vander Alves, Ayla Dantas, and Paulo Borba Informatics Center – UFPE – Brazil
1 Technical & Business Writing (ENG-715) Muhammad Bilal Bashir UIIT, Rawalpindi.
1 Modularity Analysis of Use Case Implementations Fernanda d’Amorim Advisor: Paulo Borba.
Comparison of Different AOP Approaches Presented by: Xiaojing Wang.
aspectj tools new and noteworthy Mik Kersten University of British Columbia Adrian Colyer IBM Hursley OOPSLA, October
AOSD'04, Lancaster, UK 1 Remote Pointcut - A Language Construct for Distributed AOP Muga Nishizawa (Tokyo Tech) Shigeru Chiba (Tokyo Tech) Michiaki Tatsubori.
Applying Aspect-Orientation in Designing Security Systems Shu Gao Florida International University Center for Advanced Distributed Systems Engineering.
Aspect Security - RaviShekhar Gopalan - Prof. Lieberherr Software Security (CSG379)
Introduction to Yan Cui Aspect Oriented Programming by
R R R A Brief Introduction to Aspect-Oriented Programming.
Introduction to Aspect- Oriented Programming CS 3360 Gregor Kiczales, et. al. Getting started with AspectJ, CACM, 44(10):59-65, October Spring 2012.
Aspect-Oriented Software Development (AOSD)
Implementing Distribution and Persistence Aspects with AspectJ WAS CLASS.
L’origine dei mali: le dipendenze tra componenti Stefano Leli 14° Workshop DotNetMarche Venerdì 16 aprile
PPL 2004, Gamagori, AICHI1 Remote Pointcut - A Language Construct for Distributed AOP Muga Nishizawa (Tokyo Tech, Japan) Shigeru Chiba (Tokyo Tech, Japan)
Aspect-Oriented Programming with the Eclipse AspectJ plug-in
Discussion with Gregor Kiczales at UBC
Demeter Aspects Who We Are Aspectual Collaborations
AspectAda Aspect-Oriented Programming for Ada95
Refactoring the Aspectizable Interfaces: An Empirical Assessment
Presentation transcript:

Structuring Adaptive Applications using AspectJ and AOM Ayla Dantas and Paulo Borba {add, phmb}@cin.ufpe.br Centro de Informática - UFPE

Motivation “A program is called adaptive if it changes its behavior automatically according to its context.” WAAS’95 “The shift toward ubiquitous computing poses multiple novel technical, social, and organizational challenges, which include analyzing new families of nonfunctional requirements (such as configurability and adaptability).” CACM Dec 02 Centro de Informática - UFPE

Centro de Informática - UFPE Problems… Adaptability may involve many system elements… … and several aspects Centro de Informática - UFPE

Centro de Informática - UFPE Dictionary Example Basic Functionalities Centro de Informática - UFPE

Adaptability use cases Centro de Informática - UFPE

Code scattering and tangling … Centro de Informática - UFPE

Centro de Informática - UFPE How? How can we structure adaptive applications separating concerns and with a high degree of flexibility? Using AOP and AOM Centro de Informática - UFPE

Centro de Informática - UFPE Using AOP AOP is a technology intended to provide clear separation of concerns Particular execution points (join points) can be identified using AOP Actions can be taken at those points, and may be defined in a modular unit of crosscutting implementation (aspect) Centro de Informática - UFPE

AspectJ Language pointcut showingScreen(): execution (public void showScreen(byte)) ; before(): showingScreen(){ System.out.println( "A screen will be shown"); } public static final byte A. REGISTRATION_SCREEN=-3; Advice Inter-type declarations Centro de Informática - UFPE

Adaptive behavior with AspectJ Centro de Informática - UFPE

Customizing using Aspects Centro de Informática - UFPE

And for the dynamic adaptations… Use Adaptive Object Models Centro de Informática - UFPE

Centro de Informática - UFPE AOM Use Application Metadata Application behavior or characteristic represented as instances of EntityTypes, Entities, PropertyTypes, Properties and StrategyObject Centro de Informática - UFPE

Providing Dynamic Adaptability Obtain AOM information, interpret it into application new behavior and change the application using Aspects Prepare metadata (e.g. XML) representing dynamic application behavior Make this information available Centro de Informática - UFPE

AdapPE Pattern Overview Core Application functionalities Crosscut the application changing its behavior Monitors the context Adaptability implementation to be plugged to the application Provides data for dynamic adaptations Centro de Informática - UFPE

AdapPE Dynamics: Scenario I Centro de Informática - UFPE

Centro de Informática - UFPE Scenario II Centro de Informática - UFPE

AdapPE Example: J2ME Dictionary Centro de Informática - UFPE

Centro de Informática - UFPE Adaptability Aspects Customization Screens Internationalization Resources Monitoring Centro de Informática - UFPE

Interaction Between Pattern Elements Centro de Informática - UFPE

And what about AOM and patterns? Most AspectJ actions can be replaced by the Decorator(Wrapper) or the Adapter patterns Sometimes, a lot of refactoring is necessary in order to compose concerns A pure OO solution can lead to redudancy if we want flexibility As the number of adaptive concerns increase, in order to combine concerns, the system complexity will increase The code size (LOC) is bigger than for an AspectJ solution Centro de Informática - UFPE

Centro de Informática - UFPE However… The use of AOP requires learning a new language, but in the case of AspectJ, just some new constructions as it is an extension for Java. In our experiment, the solution using aspects generates an executable file which is 16% bigger than a pure OO solution using GoF patterns. The execution time is sometimes bigger too (12.53% for the most used method) Centro de Informática - UFPE

Centro de Informática - UFPE Conclusions We have good modularization with AspectJ Pure OO solutions generally require more changes, and can lead to complex systems AspectJ increases the bytecode size, but it is an acceptable increase Flexibility x Code Size The use of auxiliary classes is important Centro de Informática - UFPE

Centro de Informática - UFPE Conclusions The necessity of refactoring still exists Aspects reuse can be explored AOM helps in providing dynamic adaptations J2ME and AspectJ Applicability for other platforms Centro de Informática - UFPE

Structuring Adaptive Applications using AspectJ and AOM Ayla Dantas and Paulo Borba {add, phmb}@cin.ufpe.br Centro de Informática - UFPE