Developing Adaptive J2ME Applications Using AspectJ Ayla Débora and Paulo Borba {add, Centro de Informática - UFPE.

Slides:



Advertisements
Similar presentations
Rodrigo Bonifácio Paulo Borba Informatics Center Federal University of Pernambuco Brazil Sérgio Soares Department of Computing.
Advertisements

Towards a Standard Interface for Runtime Inspection in AOP Environments OOPSLA Workshop on Tool for AOSD, Seattle, November 2002 Katharina Mehner and Awais.
A Brief Introduction to Aspect-Oriented Programming Zhenxiao Yang.
AspectJ Based Implementation of Dynamically Pluggable Filter Objects in Distributed Environment Rushikesh K. Joshi, Neeraj Agrawal Department of Computer.
Secure Systems Research Group - FAU Aspect Oriented Programming Carlos Oviedo Secure Systems Research Group.
University of British Columbia Software Practices Lab Fluid AOP Join Point Models Terry Hon Gregor Kiczales.
University of British Columbia Software Practices Lab 2005 CASCON A Fluid AOP Editor Terry Hon Gregor Kiczales.
Quality Assurance and Testing of J2ME Programs for Mobiles Phones.
Aspect-Oriented Programming: An Overview Brandon Wirick Feb
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.
Adaptive Database Application Modeling API Final Project Report SOURENA NASIRIAMINI CS 491 6/2/2005.
Aspect Oriented Programming Written by Michael Beder.
More on AspectJ. aspect MoveTracking { private static boolean _flag = false; public static boolean testAndClear() { boolean result = _flag; _flag = false;
XFindBugs: eXtended FindBugs for AspectJ Haihao Shen, Sai Zhang, Jianjun Zhao, Jianhong Fang, Shiyuan Yao Software Theory and Practice Group (STAP) Shanghai.
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 Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University 1 Debugging Support.
Aspects in the Real World Applying AOSD techniques in large systems.
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.
Spring core v3.x Prepared by: Nhan Le. History v3.0 Spring Expression Language Java based bean metadata v3.1 Cache Abstraction Bean Definition Profile.
Aspect Oriented Programming Razieh Asadi University of Science & Technology Mazandran Babol Aspect Component Based Software Engineering (ACBSE)
Change Impact Analysis for AspectJ Programs Sai Zhang, Zhongxian Gu, Yu Lin and Jianjun Zhao Shanghai Jiao Tong University.
Aspect Oriented Programming Scott Nykl CSSE 411 Senior Seminar.
Adding Trace Matching with Free Variables to AspectJ Chris Allan, Pavel Avgustinov, Sascha Kuzins, Oege de Moor, Damien Sereni, Ganesh Sittampalam and.
©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.
POSL (Principles of Software Languages) Gr. Kyushu Institute of Technology, Japan Pointcut-based Architectural Interface.
Aspect Oriented Programming Gülşah KARADUMAN.
Methodology: The AOP Refactoring Process Aspect-Oriented Refactoring of the Apache Cocoon Shared-Object Resource Allocation System Jeff Dalton Advisor:
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.
1 Proving aspect-oriented programming laws Leonardo Cole Paulo Borba Alexandre Mota Informatics Center Federal University of.
AspectWrapper CHALFOUN Pierre et BUIST Éric. Overview Introduction – what and why In a nutshell – main components Our approach – how we did it Demo –
Virtual Support for Dynamic Join Points C. Bockisch, M. Haupt, M. Mezini, K. Ostermann Presented by Itai Sharon
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.
Region Pointcut for AspectJ Shumpei Akai Shigeru Chiba Muga Nishizawa.
Inter-Type Declarations in AspectJ Awais Rashid Steffen Zschaler © Awais Rashid, Steffen Zschaler 2009.
AspectJ – AOP for Java Tom Janofsky. Instructor at Penn State Abington Consultant with Chariot Solutions JUG Member.
Course Progress Lecture 1 –Java data binding: Basket example: UML class diagram -> class dictionary without tokens-> language design -> class dictionary.
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University IWPSE 2003 Program.
Topics for exam in AOSD Basic concepts: tangling, scattering, joinpoint, advice, cross-cutting, weaving AspectJ: syntax, pointcut notations, around, proceed,
Aspect Oriented Development Alex Beatty.  Purpose  Cross-cutting Concerns  Join Points, Pointcuts, and Advices  Weaving  Invasive vs. Non-Invasive.
AOP-Driven Variability in Software Product Lines Vander Alves, Ayla Dantas, and Paulo Borba Informatics Center – UFPE – Brazil
1 Deriving Refactorings for AspectJ Leonardo Cole Paulo Borba Informatics Center Federal University of Pernambuco Brazil.
Comparison of Different AOP Approaches Presented by: Xiaojing Wang.
AOSD'04, Lancaster, UK 1 Remote Pointcut - A Language Construct for Distributed AOP Muga Nishizawa (Tokyo Tech) Shigeru Chiba (Tokyo Tech) Michiaki Tatsubori.
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.
Executive Overview. Software modeling is essential, because it is the map that guides your developers. Additionally: Modeling Software  Visual information.
SCoPE: an AspectJ Compiler for Supporting User-Defined Analysis-Based Pointcuts Tomoyuki Aotani Hidehiko Masuhara
Aspect-Oriented Software Development (AOSD)
Implementing Distribution and Persistence Aspects with AspectJ WAS CLASS.
PPL 2004, Gamagori, AICHI1 Remote Pointcut - A Language Construct for Distributed AOP Muga Nishizawa (Tokyo Tech, Japan) Shigeru Chiba (Tokyo Tech, Japan)
 Is a programming paradigm  Extends OOP  Enables modularization of cross cutting concerns.
Caching: An Optimization Aspect. Class Diagram for Base Item +name : String +check() : int Simple +weight : int +check() : int Container +capacity : int.
Design Patterns: Brief Examples
<Student’s name>
State pattern – A logical ‘Finite State Machine’
Aspect-Oriented Programming with the Eclipse AspectJ plug-in
Inheritance Anomalies
A Brief Introduction to Aspect-Oriented Programming
Structuring Adaptive Applications using AspectJ and AOM
Aspect Oriented Programming
FRAMEWORKS AND REUSE What is “Framework”?
Presentation transcript:

Developing Adaptive J2ME Applications Using AspectJ Ayla Débora and Paulo Borba {add, Centro de Informática - UFPE

2 Summary Introduction and Motivation  Goals  The Application  AspectJ Adaptive Concerns  Customization  Screens  Caching  Internationalization Conclusions

Centro de Informática - UFPE 3 Introduction and Motivation Goals:  Evaluate AspectJ as a way to provide adaptive behaviors for J2ME applications  Identify advantages and drawbacks of using AspectJ for this purpose  Develop several adaptive concerns in an existent J2ME application and identify possible patterns  Compare AspectJ solutions to pure Java solutions using Design Patterns

Centro de Informática - UFPE 4 Introduction Adaptability  Adaptable x Adaptive  Adaptability x Ubiquity  Why J2ME? The Application  J2ME Dictionary  Possible adaptive behaviors

Centro de Informática - UFPE 5 The Dictionary Application

Centro de Informática - UFPE 6 AspectJ Language public aspect Screens { } 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; Pointcut Advice Introductio n

Centro de Informática - UFPE 7 Adaptive Concerns Customization Screens Caching Internationalization

Centro de Informática - UFPE 8 Customization Concern Configuring the adaptation Comparing with design patterns Reusability Comparing with a pure Java implementation

Centro de Informática - UFPE 9 Customization Concern pointcut MIDletStart(MIDlet midlet):execution(void startApp())&&target(midlet); before(MIDlet midlet): MIDletStart(midlet){ adaptBefore(midlet); } void around (MIDlet midlet) : MIDletStart(midlet){ boolean shouldProceed = adaptAround(midlet); if (shouldProceed) proceed(midlet); } after(MIDlet midlet): MIDletStart(midlet){ adaptAfter(midlet); }

Centro de Informática - UFPE 10 Screen Concern Using Introduction Changing screens

Centro de Informática - UFPE 11 Caching Concern Avoids server connections Transparency

Centro de Informática - UFPE 12 Internationalization Concern The need for refactoring The use of auxiliary classes Interference between aspects

Centro de Informática - UFPE 13 Internationalization Concern pointcut internationalizing(Object key): execution(public static String DictionaryConstants.getStringValue(Object))&&args(key); String around(Object key): internationalizing(key){ return internationalization.getStringValue(key); } pointcut internationalizingNewScreens (Internationalization in): initialization(public Internationalization.new()) && target(in);

Centro de Informática - UFPE 14 Conclusions AspectJ and the implementation of adaptive concerns Pure OO solutions generally require more changes The use of J2ME and the identification of join points The use of auxiliary classes The necessity of refactoring

Centro de Informática - UFPE 15 Conclusions Interference between aspects Reusing aspects Dynamic adaptations Problems in J2ME while using AspectJ Applicability for other platforms

Developing Adaptive J2ME Applications Using AspectJ Ayla Débora and Paulo Borba {add, Centro de Informática - UFPE