Aspect-Oriented Programming using Phoenix Marc Eaddy MSR Intern Columbia University.

Slides:



Advertisements
Similar presentations
Objects and Classes David Walker CS 320. Advanced Languages advanced programming features –ML data types, exceptions, modules, objects, concurrency,...
Advertisements

CSE341: Programming Languages Lecture 16 Datatype-Style Programming With Lists or Structs Dan Grossman Winter 2013.
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.
Wicca v2 demo Dynamic weaving using the.NET 2.0 Debugging APIs Marc Eaddy Columbia University.
NCSoft China PD Dept. training - Session 4 -- Lance Zhang
Secure Systems Research Group - FAU Aspect Oriented Programming Carlos Oviedo Secure Systems Research Group.
Aspect-Oriented Programming In Eclipse ® Aspect-Oriented Programming in Eclipse with AspectJ Dr Helen Hawkins and Sian January.
October - December 2013CSC5021: The Problem With Aspects (J P Gibson)1 The Problem With Aspects (AOP) A style of programming that attempts to abstract.
Phx.Morph Why hasn’t Microsoft adopted Aspect-Oriented Programming? Marc Eaddy Columbia University.
ASPECT ORIENTED SOFTWARE DEVELOPMENT Prepared By: Ebru Doğan.
OOP in Java Nelson Padua-Perez Chau-Wen Tseng Department of Computer Science University of Maryland, College Park.
Slides prepared by Rose Williams, Binghamton University Chapter 13 Interfaces and Inner Classes.
Harmless Advice Daniel S Dantas Princeton University with Prof. David Walker.
Demo 9: Phx.Morph Byte code weaving using Microsoft’s Phoenix compiler Marc Eaddy Columbia University.
Compiling and Linking. Compiling is quite the same as creating an executable file! Instead, creating an executable is a multistage process divided into.
A Formal Model of Modularity in Aspect-Oriented Programming Jonathan Aldrich : Objects and Aspects Carnegie Mellon University.
Java versus C# An introduction to C# and Visual Studio.
1 Aspects and Modularity: The Hope and the Challenge Jonathan Aldrich Institute for Software Research International School of Computer Science Carnegie.
Taming Obliviousness in Aspects with Data-flow Analysis and Design by Contract Tim Molderez and Dirk Janssens Ansymo Antwerp Systems and Software Modelling.
Introduction to AOP.
Introduction to Aspect Oriented Programming Presented By: Kotaiah Choudary. Ravipati M.Tech IInd Year. School of Info. Tech.
Todd Snyder Development Team Lead Infragistics Experience Design Group.
Aspect Oriented Programming Scott Nykl CSSE 411 Senior Seminar.
Phx.Morph: Aspect-Oriented Programming using Phoenix Can AOP solve Microsoft’s growing software problem? Marc Eaddy MSR Intern Columbia University.
CSE 331 SOFTWARE DESIGN & IMPLEMENTATION MIDTERM REVIEW Autumn 2011.
Aspect-Oriented Refactoring of the Apache Cocoon Shared-Object Resource Allocation System Jeff Dalton February 28th, 2003 Advisor: David G. Hannay Client:
CSE 341 Programming Languages Racket Datatype Style Programming Zach Tatlock Spring 2014.
Aspect Oriented Programming Gülşah KARADUMAN.
CS 350 – Software Design The Strategy Pattern – Chapter 9 Changes to software, like other things in life, often focus on the immediate concerns and ignore.
Cohesion and Coupling CS 4311
Methodology: The AOP Refactoring Process Aspect-Oriented Refactoring of the Apache Cocoon Shared-Object Resource Allocation System Jeff Dalton Advisor:
Architectural Patterns Support Lecture. Software Architecture l Architecture is OVERLOADED System architecture Application architecture l Architecture.
AOP-1 Aspect Oriented Programming. AOP-2 Aspects of AOP and Related Tools Limitation of OO Separation of Concerns Aspect Oriented programming AspectJ.
OO as a language for acm l OO phrase l Mental model of key concepts.
1 An Aspect-Oriented Implementation Method Sérgio Soares CIn – UFPE Orientador: Paulo Borba.
Towards Multi-Paradigm Software Development Valentino Vranić Department of Computer Science and Engineering Faculty of Electrical Engineering.
Simple Classes. ADTs A specification for a real world data item –defines types and valid ranges –defines valid operations on the data. Specification is.
Chapter 8: Aspect Oriented Programming Omar Meqdadi SE 3860 Lecture 8 Department of Computer Science and Software Engineering University of Wisconsin-Platteville.
Methods of Software Development Karl Lieberherr Spring 2007.
Separation Of Concerns: Mixins + Variability Models + Aspects in Umple CSER – June 2013 – Montreal Timothy C. Lethbridge, University of Ottawa
Aspect Oriented Security Tim Hollebeek, Ph.D.
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.
Introduction to Aspect- Oriented Programming CS 3360 Gregor Kiczales, et. al. Getting started with AspectJ, CACM, 44(10):59-65, October Spring 2012.
Phx.Morph Can Aspect-Oriented Programming solve Microsoft’s growing software problem? Marc Eaddy Columbia University.
L’origine dei mali: le dipendenze tra componenti Stefano Leli 14° Workshop DotNetMarche Venerdì 16 aprile
ECE 750 Topic 8 Meta-programming languages, systems, and applications Automatic Program Specialization for J ava – U. P. Schultz, J. L. Lawall, C. Consel.
شناخت مراجعه کننده و چگونگی گرفتن شرح حال باروری سالم.
CSC 520 – Advanced Object Oriented Programming, Fall, 2010 Thursday, September 30 Week 5, Generics and Inheritance Techniques, Meyer Ch. 10 & 16.
Software Engineering Lecture 7
CS 350 – Software Design The Strategy Pattern – Chapter 9
Programming Languages Dan Grossman 2013
Aspect-Oriented Programming with the Eclipse AspectJ plug-in
CSE341: Programming Languages Lecture 16 Datatype-Style Programming With Lists or Structs Dan Grossman Spring 2013.
CSE341: Programming Languages Lecture 16 Datatype-Style Programming With Lists or Structs Zach Tatlock Winter 2018.
CSE341: Programming Languages Lecture 16 Datatype-Style Programming With Lists or Structs Dan Grossman Spring 2017.
lecture 08, OO Design Principle
CSE341: Programming Languages Lecture 16 Datatype-Style Programming With Lists or Structs Dan Grossman Autumn 2018.
Set Up Agreements Labelset
Objects and Aspects: What we’ve seen so far
IMPORTANT NOTICE TO STUDENTS:
CSE341: Programming Languages Lecture 16 Datatype-Style Programming With Lists or Structs Dan Grossman Autumn 2017.
Adapter Design Pattern
CSE341: Programming Languages Lecture 16 Datatype-Style Programming With Lists or Structs Dan Grossman Spring 2016.
Aspect Oriented Programming
Inheritance Lakshmish Ramaswamy.
CSE341: Programming Languages Lecture 16 Datatype-Style Programming With Lists or Structs Dan Grossman Spring 2019.
Presentation transcript:

Aspect-Oriented Programming using Phoenix Marc Eaddy MSR Intern Columbia University

Motivation Limitations of traditional OO –inheritance –aggregation Some concerns not separated well concerns I don’t know about yet coupling issues with multiple clients “operational” requirements AOP = Open Classes + Advice –Promise of greater separation of concerns –Satisfies specific business needs of the Phoenix team

Open Classes Ability to split a class definition into separate modules Similar to Partial Classes in C# except –post-compile time –works on assemblies; no source req’d –can extend a class at any time –language agnostic DEMO: Adding foreach-style syntactic sugar DEMO: Adding Visitor pattern

Advice Ability to inject code at specific points in a program Examples: –profiling –logging/tracing –log call sites for a particular function –log field get/set –dirty bit (persistence/synchronization) –caching –error checking/handling –DEMO: enforce field invariants (non-null, const, data flow)