Introduction to Aspect Oriented Programming Presented By: Kotaiah Choudary. Ravipati M.Tech IInd Year. School of Info. Tech.

Slides:



Advertisements
Similar presentations
A Brief Introduction to Aspect-Oriented Programming Zhenxiao Yang.
Advertisements

Aspect Oriented Programming. AOP Contents 1 Overview 2 Terminology 3 The Problem 4 The Solution 4 Join point models 5 Implementation 6 Terminology Review.
Copyright © 2002 W. A. Tucker1 Chapter 1 Lecture Notes Bill Tucker Austin Community College COSC 1315.
An Aspect-Oriented Approach For Web Application Access Control Presented by: Mohamed Hassan Carleton University Carleton University
ASTA Aspect Software Testing Assistant Juha Gustafsson, Juha Taina, Jukka Viljamaa University of Helsinki.
Aspect Oriented Programming - AspectJ Radhika Rajput.
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.
Aspect-Oriented Programming In Eclipse ® Aspect-Oriented Programming in Eclipse with AspectJ Dr Helen Hawkins and Sian January.
An Untyped Calculus of Aspect- Oriented Programs Radha Jagadeesan Alan Jeffrey James Riely DEPAUL UNIVERSITY, CHICAGO.
Slides prepared by Rose Williams, Binghamton University Chapter 1 Getting Started 1.1 Introduction to Java.
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.
Chapter 1 - Introduction. Ch 1Goals To understand the activity of programming To learn about the architecture of computers To learn about machine code.
Introduction to Aspect- Oriented Programming CS 3360 Gregor Kiczales, et. al. Getting started with AspectJ, CACM, 44(10):59-65, October Fall 2012.
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)
VERIFICATION OF ASPECT ORIENTED MODELS BY DON MARTIN JAYASHREE VENKIPURAM PATHANGI PIYUSH SRIVASTAVA REFERENCES F. Mostefaoui and J. Vachon,” Design level.
Aspect Oriented Programming Scott Nykl CSSE 411 Senior Seminar.
1 Module Objective & Outline Module Objective: After completing this Module, you will be able to, appreciate java as a programming language, write java.
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.
Modularizing Web Services Management with AOP María Agustina Cibrán, Bart Verheecke { Maria.Cibran, System and Software Engineering.
Aspect Oriented Programming Sumathie Sundaresan CS590 :: Summer 2007 June 30, 2007.
Aspect-Oriented Refactoring of the Apache Cocoon Shared-Object Resource Allocation System Jeff Dalton February 28th, 2003 Advisor: David G. Hannay Client:
CHAPTER 3 GC Java Fundamentals. 2 BASICS OF JAVA ENVIRONMENT  The environment  The language  Java applications programming Interface API  Various.
Aspect Oriented Programming Gülşah KARADUMAN.
Lecture 1 Introduction Figures from Lewis, “C# Software Solutions”, Addison Wesley Richard Gesick.
Methodology: The AOP Refactoring Process Aspect-Oriented Refactoring of the Apache Cocoon Shared-Object Resource Allocation System Jeff Dalton Advisor:
AOSD1 Aspect-Oriented Software Design Karl Lieberherr Theo Skotiniotis.
AOP-1 Aspect Oriented Programming. AOP-2 Aspects of AOP and Related Tools Limitation of OO Separation of Concerns Aspect Oriented programming AspectJ.
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.
Aspect-Oriented Action Semantics Descriptions Luis Menezes University of Pernambuco
AspectJ – AOP for Java Tom Janofsky. Instructor at Penn State Abington Consultant with Chariot Solutions JUG Member.
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University IWPSE 2003 Program.
Alloy-based Lightweight Verification for Aspect-oriented Architecture Naoyasu Ubayashi(Kyushu Institute of Technology) Yuki Sato(Kyushu Institute of Technology)
Aspect Oriented Programming Adlux Consultancy Services Pvt Ltd
Kansas City Java User’s Group Jason W. Bedell July 12, 2006
问题 Code scattering Blocks of duplicated code Blocks of complementary code, and different modules implementing complementary parts of the concern Code.
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.
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.
CSC450 Software Engineering Devon M. Simmonds University of North Carolina, Wilmington 1.
Aspect-Oriented Software Development (AOSD)
1 An AOP Implementation Framework for Extending Join Point Models Naoyasu Ubayashi(Kyushu Institute of Technology, Japan) Hidehiko Masuhara(University.
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)
Leveraging ColdSpring to build a robust Flex applications Chris Scott, Cynergy Systems.
Sung-Dong Kim, Dept. of Computer Engineering, Hansung University Java - Introduction.
Software Engineering Lecture 7
Chengyu Sun California State University, Los Angeles
Aspect-Oriented Programming with the Eclipse AspectJ plug-in
Discussion with Gregor Kiczales at UBC
Demeter Aspects Who We Are Aspectual Collaborations
Aspect-Oriented Programming
Aspect-Oriented Programming
Chengyu Sun California State University, Los Angeles
A Brief Introduction to Aspect-Oriented Programming
Structuring Adaptive Applications using AspectJ and AOM
CS520 Web Programming Spring – Aspect Oriented Programming
Aspect Oriented Software Design
Aspect Oriented Programming
Refactoring the Aspectizable Interfaces: An Empirical Assessment
Presentation transcript:

Introduction to Aspect Oriented Programming Presented By: Kotaiah Choudary. Ravipati M.Tech IInd Year. School of Info. Tech.

19 August 2005Aspect Oriented Programming2 Contents Introduction AOP Methodology AOP Languages AspectJ

19 August 2005Aspect Oriented Programming3 Programming Methodologies m/c Programming Assembly Programming Procedural Programming OO Programming AO Programming Programming Methodologies Evaluation Concern Abstraction Function Abstractio n Object Abstraction Introduction

19 August 2005Aspect Oriented Programming4 Present Design Problem The architect’s dilemma –How much design is too much? Introduction

19 August 2005Aspect Oriented Programming5 Terminology Concern – A specific requirement or consideration that must be addressed in order to satisfy the overall system goal –E.g. Banking system: Customer and Account management, Interbanking transactions, ATM transactions, Persistence of all entities, Transaction integrity, Authorization of access to various services, Logging, Security, Error checking, Policy enforcement Introduction

19 August 2005Aspect Oriented Programming6 Terminology cont Core concerns –Central functionality of a Business logic (single module) –Customer and Account management, Interbanking transactions, ATM transactions Crosscut concerns –System-level, peripheral requirements (multiple modules) –Persistence of all entities, Transaction integrity, Authorization of access to various services, logging, Security, Error checking, Policy enforcement Introduction

19 August 2005Aspect Oriented Programming7 Typical Application Accounting ATM Database System Introduction Persistence Logging Business Logic Concern Persistence Logging Implementation modules Accounting ATM Database System Persistence Logging

19 August 2005Aspect Oriented Programming8 Implementation by Traditional Languages Accounting Module ATM Module Database Module Logging Module API invocations Introduction

19 August 2005Aspect Oriented Programming9 Implementation by AOP Accounting Module ATM Module Database Module Logging Module Logging Aspect API Invocation Automatically Weaving Invocations Aspect: A modular unit of crosscutting concern implementation Introduction

19 August 2005Aspect Oriented Programming10 AOP Methodology The idea behind AOP is “Separation of concern” AOP builds upon Existing Methodologies (OOP, Procedural programming), augmenting them with concepts and constructs in order to modularize crosscutting concerns. Now, concern consists of what? AOP Methodology

19 August 2005Aspect Oriented Programming11 AOP Development Stages AOP Methodology Business Logic Security Logging Persistence Identify concerns Integrating all concerns

19 August 2005Aspect Oriented Programming12 AOP Languages AOP Language Specification –Describes the language constructs and syntax –Specification for implementing the individual concerns and rules for weaving different concerns AOP Languages

19 August 2005Aspect Oriented Programming13 AOP Languages cont AOP language implementation –Verifies the code and translates the code into an executable form –Implementation done by two steps Combining individual concerns using the weaving rules - Weaving Then converting result into executable code. Some AOP Languages –AspectJ, Aspect#, AspectC++, PHPaspect. AOP Languages

19 August 2005Aspect Oriented Programming14 AspectJ Aspect-oriented extension to Java language Language Specification Language Implementation –Concern by Java Language –Weaving rules by extension Tools Crosscutting in AspectJ –Implementation of the weaving rules by the compiler –2 Types: Dynamic Crosscutting –Weaving of new Behavior into execution of program Static Crosscutting –weaving of modifications into the static structure, to support the Dynamic Crosscutting AspectJ

19 August 2005Aspect Oriented Programming15 AspectJ cont Crosscutting Elements –Join Point Well-defined points in the execution of a program –Pointcut A means of referring to collections of join points and certain values at those join points –Advice Method-like constructs to define additional behavior at join points –Introduction Instruction that changes to the classes, interfaces of the system –Compile time Declaration Instruction for adding compile time warnings and errors to the system –Aspect Unit of modular crosscutting implementation AspectJ

19 August 2005Aspect Oriented Programming16 Example Public class Logging{//class public void check( ) { System.out.println("Inside Logging Class Method"); }} public class ATM { //class public void foo(int number, String name) { System.out.println("Inside foo Method"); } public static void main(String[] args) { MyClass myObject = new MyClass( ); myObject.foo(1, “SIT"); } } public aspect Log { //Aspect pointcut callPointcut( ) : call(void ATM.foo(int, String)); //Pointcut before( ) : callPointcut( ) { //Advice System.out.println( “I am from Log aspect"); Logging logg= new Logging(); logg.check(); } } AspectJ Name of Pointcut before after around

19 August 2005Aspect Oriented Programming17 Example cont Compile –ajc ATM.java Log. java –output: ATM.class Log.class Run –java ATM –Output: I am from Log aspect Inside foo Method Here let us assume Logging class already compiled AspectJ

19 August 2005Aspect Oriented Programming18 References AspectJ Cookbook, O'Reilly, December 2004 Aspectj In Action - Practical Aspect-Oriented Programming, Erik Putrycz, Guy Bernard, IEEE 2002, Using Aspect Oriented Programming to build a portable load balancing service