SCALA AND ASPECTJ. Approaching Modularizing of Crosscutting. Ramnivas Laddad. Concerns. ramnivas
|
|
- James Warner
- 6 years ago
- Views:
Transcription
1 SCALA AND ASPECTJ Approaching Modularizing of Crosscutting Concerns Ramnivas Laddad ramnivas Copyright Ramnivas Laddad. All rights reserved.
2 @ramnivas Spring framework committer Cloud Foundry committer Main interests Aspect-oriented programming Cloud computing Scala and functional programming Author of books and articles AspectJ in Action (1 st and 2 nd edition) Speaker at many professional conferences JavaOne, JavaPolis, SpringOne, Software Development, No Fluff Just Stuff, EclipseCon, O Reilly OSCON etc. Active involvement in AspectJ since its early form
3 AspectJ and Scala connection Both statically typed
4 AspectJ and Scala connection Both compiled to JVM-compatible byte code
5 AspectJ and Scala connection AspectJ advice shares some characteristics of higher order functions
6 AspectJ and Scala connection AspectJ static crosscutting shares some characteristics of traits
7 AspectJ and Scala connection AspectJ weaving used in Scala IDE
8 A QUICK INTRO TO AOP Copyright Ramnivas Laddad. All rights reserved.
9 Crosscutting concern Functionality whose implementation spans multiple modules Many examples Logging and tracing Transaction management Concurrency control Security Error handling Business rules Auditing Performance monitoring!
10 Dealing with crosscutting concerns AOP A programming methodology AspectJ A prominent language to support AOP for Java
11 Core AOP concepts Join point An identifiable point in the execution of a program. Central, distinguishing concept in AOP Pointcut Program construct that selects join points and collects context at those points. Advice Code to be executed at a join point that has been selected by a pointcut Inter-type declaration Additional data or method to existing types, implementing new interfaces
12 AspectJ weaving Java and aspect source files (.java/.aj) Weaver Java and aspect byte-code files (.jar/.class) Compiler, linker, or load-time Woven system (.class files or.jar file)
13 ASPECTJ IN PRACTICE Lessons learned over years Copyright Ramnivas Laddad. All rights reserved.
14 Aspects come in all sizes Locally scoped concerns Cross-unit concerns Widely applied concerns Caching, read-write lock, retry failures Transaction, security Monitoring, auditing, policy enforcement, concurrency control*
15 AOP and annotations Annotation use very pervasive " Annotations as marker for advice here Obliviousness not considered critical " Explicit annotations not frowned upon
16 Pervasive annotations Object around() public class OrderService public void process()
17 Scala way of addressing crosscutting functionality Implement higher order function encapsulating the crosscutting logic Apply the function to all places that need the functionality
18 Higher order functions def retry[t](maxretry: Int)(thunk: => T) = { def retry(thunk: => T, attempt: Int): T = { try { thunk catch { case ex if (attempt < maxretry) => retry(thunk, attempt + 1) def process() : Unit = { retry(5) {
19 LOCALLY APPLIED FUNCTIONALITY Copyright Ramnivas Laddad. All rights reserved.
20 Caching using keyscript="#stock.ticker + ':' + #days") public byte[] getquotegraph(stock stock, int days) { Expensive calculation External language
21 Caching aspect public aspect CacheAspect { public pointcut cached(cachable cachable) : execution(@cachable * *(..)) Object around(cachable cachable) : cached(cachable) { String key = evaluate(cachable.keyscript(), thisjoinpoint); if (cache.containskey(key)) { return cache.get(key) else { Object value = proceed(cacheble); cache.put(key, value); return value;
22 Caching using Scala def getquotegraph(stock: Stock,!! days: Int) : Array[Byte] = { cached("chart", stock.ticker + ":" + days) { Expensive calculation!
23 Caching higher-order function abstract class Caching(val cachemanager: CacheManager) { def cached[t](region: String, key: Any) val cache = (thunk: => T): T = { if (cache.containskey(key)) { cache.get(key).asinstanceof[t] else { val thunkval: T = thunk cache.put(key, thunkval) thunkval
24 Comparing caching solutions AspectJ Scala Every cached element needs an annotation Every cached element needs wrapping in the HOF Uses external language (dynamically typed) Use the native language
25 Thought! Is retry or caching even a crosscutting functionality?
26 CROSS-UNIT CROSSCUTTING FUNCTIONALITY Copyright Ramnivas Laddad. All rights reserved.
27 Annotating for transaction management public class OrderServiceImpl implements OrderService public Order findorder(long orderid) public void updateorder(order order) public void addproduct(order order, Product product, int quantity) public void removeproduct(order order, Product product, int quantity) public void cancelorder(order order) {
28 Transaction management with Scala class OrderServiceImpl extends OrderService { def findorder(orderid: Long) : Order = { transactional(readonly=true) { def updateorder(order: Order) { transactional() { def addproduct(order: Order, product: Product, quantity: Int) { transactional() { def removeproduct(order: Order, product: Product, quantity: Int) { transactional() { def cancelorder(order: Order) { transactional() {
29 Transaction management aspect public aspect TransactionManagementAspect { private TransactionManager txmanager; pointcut transactionalop() : Object around() : transactionalop() { TransactionAttribute ta = TransactionStatus ts = txmanager.gettransaction(ta); try { Object ret = proceed(); transactionmanager.commit(ts); return ret; catch (Throwable ex) { rollback throw ex;
30 Transaction management function def transactional[t](propgation: Propagation = Propagation.REQUIRED, isolation: Isolation = Isolation.DEFAULT, readonly: Boolean = false, timeout: Int =TransactionDefinition.TIMEOUT_DEFAULT, rollbackfor: List[Throwable] = List(), norollbackfor: List[Throwable] = List()) (thunk: => T) : T
31 Transaction management implementation abstract class TransactionManagement(val txmanager: PlatformTransactionManager) { def transactional[t]()(thunk: => T) : T = { val txattribute = new TransactionAttributeWithRollbackRules() val status = txmanager.gettransaction(txattribute) try { val ret = thunk txmanager.commit(status) ret catch { case ex => { if (txattribute.rollbackon(ex)) { txmanager.rollback(status) else { txmanager.commit(status) throw ex
32 But! Transaction management often applies to all methods of a class Often with generic selection: public methods only " Class-level annotation suffices Transaction management often applies to all classes of certain * Special attributes can be derived using convention over configuration * (@Transactional *).find*(..)
33 Class-level public class OrderServiceImpl implements OrderService public Order findorder(long orderid) { public void updateorder(order order) { public void addproduct(order order, Product product, int quantity) { public void removeproduct(order order, Product product, int quantity) { public void cancelorder(order order) {
34 However! Scala can apply transaction management to smaller unit than the whole method Little practical value, since refactoring to extract method that need transaction is a good idea anyway
35 Comparing transaction management solutions! AspectJ Scala Not every element needs a marker (annotation) Every transactional logic wrapped in HOF Method-level granularity Any desired granularity possible
36 WIDELY APPLIED CROSSCUTTING Copyright Ramnivas Laddad. All rights reserved.
37 Classic crosscutting concerns Monitoring Tracing Profiling First failure data capture Policy enforcement Concurrency control Swing, SWT, Android Auditing
38 FFDC: Base aspect public abstract aspect FFDC { public abstract pointcut ffdcop(); after() throwing(exception ex) : ffdcop() { Signature sig = thisjoinpointstaticpart.getsignature(); logffdc(sig.getdeclaringtype().getname(), sig.getname(), ex, thisjoinpoint.getthis(), thisjoinpoint.getargs()); public void logffdc(string classname, String methodname, Exception ex, Object thiz, Object[] args) {
39 FFDC: Derived aspect public aspect DaoFFDC extends FFDC { public pointcut ffdcop() : execution(* com.acme..dao.*.*(..)); No annotation or other marker in advised code
40 FFDC through Scala Possible through higher-order function But! Tedious to wrap every function There are just too many of those Error prone Missed functions diminishing value in data captured Hard to reason at system level All classic crosscutting symptoms
41 Solution for Scala programs: Use AspectJ Compile Scala program as usual Weave aspects using binary weaving (build-time or load-time)
42 Conclusion With every element carrying a marker annotation, higherorder function offer a simpler and powerful solution Often not really crosscutting concerns to begin with Annotation used as a crutch to have aspects apply HOF Cross-unit crosscutting functionality Aspects have an edge Not all lost by staying with Scala-only Wide crosscutting concerns AspectJ is only game in town You can apply aspects to Scala-compiled code
43 Q&A Ramnivas Laddad ramnivas
Advances in Aspect-oriented Programming
Advances in Aspect-oriented Programming Ramnivas Laddad Principal, Interface21 Author, AspectJ in Action ramnivas.laddad@interface21.com About Speaker Principal at Interface21 Specializing in aspect-oriented
More informationAJDT: Getting started with Aspect-Oriented Programming in Eclipse
AJDT: Getting started with Aspect-Oriented Programming in Eclipse Matt Chapman IBM Java Technology Hursley, UK AJDT Committer Andy Clement IBM Java Technology Hursley, UK AJDT & AspectJ Committer Mik Kersten
More informationAOP 101: Intro to Aspect Oriented Programming. Ernest Hill
AOP 101: Intro to Aspect Oriented Programming ernesthill@earthlink.net AOP 101-1 AOP 101: Aspect Oriented Programming Goal of Software History of Programming Methodology Remaining Problem AOP to the Rescue
More informationProgramming AspectJ with Eclipse and AJDT, By Example. Chien-Tsun Chen Sep. 21, 2003
Programming AspectJ with Eclipse and AJDT, By Example Chien-Tsun Chen Sep. 21, 2003 ctchen@ctchen.idv.tw References R. Laddad, I want my AOP!, Part 1-Part3, JavaWorld, 2002. R. Laddad, AspectJ in Action,
More informationJML and Aspects: The Benefits of
JML and Aspects: The Benefits of Instrumenting JML Features with AspectJ Henrique Rebêlo Sérgio Soares Ricardo Lima Paulo Borba Márcio Cornélio Java Modeling Language Formal specification language for
More informationCourse 6 7 November Adrian Iftene
Course 6 7 November 2016 Adrian Iftene adiftene@info.uaic.ro 1 Recapitulation course 5 BPMN AOP AOP Cross cutting concerns pointcuts advice AspectJ Examples In C#: NKalore 2 BPMN Elements Examples AOP
More informationIntroduction to. Bruno Harbulot. ESNW, the University of Manchester.
Introduction to Aspect-Oriented Software Development Bruno Harbulot ESNW, the University of Manchester http://www.cs.man.ac.uk/~harbulob/ ELF Developers' Forum Manchester - October 2005 1/24 Presentation
More informationInformation systems modeling. Tomasz Kubik
Information systems modeling Tomasz Kubik Aspect-oriented programming, AOP Systems are composed of several components, each responsible for a specific piece of functionality. But often these components
More informationUsing Aspect-Oriented Programming to extend Protégé. Henrik Eriksson Linköping University
Using Aspect-Oriented Programming to extend Protégé Henrik Eriksson Linköping University Questions about MOP and Protégé Original goal: Extending the JessTab plug-in What is the class precedence in Protégé?
More informationChapitre 6 Programmation orientée aspect (AOP)
6 Programmation orientée aspect (AOP) 2I1AC3 : Génie logiciel et Patrons de conception Régis Clouard, ENSICAEN - GREYC «L'homme est le meilleur ordinateur que l'on puisse embarquer dans un engin spatial...
More informationEnterprise AOP with Spring Applications IN ACTION SAMPLE CHAPTER. Ramnivas Laddad FOREWORD BY ROD JOHNSON MANNING
Enterprise AOP with Spring Applications IN ACTION SAMPLE CHAPTER Ramnivas Laddad FOREWORD BY ROD JOHNSON MANNING AspectJ in Action Second Edition by Ramnivas Laddad Chapter 1 Copyright 2010 Manning Publications
More informationIntroduction to Aspect-Oriented Programming
Introduction to Aspect-Oriented Programming Martin Giese Chalmers University of Technology Göteborg, Sweden AOP Course 2003 p.1/33 AspectJ Idioms and Patterns AOP Course 2003 p.2/33 Sources These idioms
More informationWhat is AOP? Business Logic Requirements Concern Identifier Security Logging (Laddad, 2003, p. 9) What is AOP? Non-AOP implementation of crosscutting
Aspect Oriented Programming Todd A. Whittaker Franklin University whittakt@franklin.edu What is AOP? Addresses crosscutting concerns Requirements analysis leads to identification of concerns in a software
More informationSo, What is an Aspect?
Introduction to AspectJ Aspect-oriented paradigm AspectJ constructs Types of Join Points Primitive Lexical designators Type designators Control flow Types of Advice Before After Around Receptions Join
More informationAspect-Oriented Programming
Aspect-Oriented Programming Based on the Example of AspectJ Prof. Harald Gall University of Zurich, Switzerland software evolution & architecture lab AOP is kind of a complicated one for me ( ) the idea
More informationAn Aspect-Oriented Approach. Henrique Rebêlo Informatics Center
An Aspect-Oriented Approach to implement JML Features Henrique Rebêlo Informatics Center Federal University of Pernambuco Summary jmlc problems bigger code, slower code, no suppport for Java ME, and bad
More informationManchester University Transactions for Scala
Manchester University Transactions for Scala Salman Khan salman.khan@cs.man.ac.uk MMNet 2011 Transactional Memory Alternative to locks for handling concurrency Locks Prevent all other threads from accessing
More informationRon Bodkin. New Aspects of Software Colorado Software Summit: October 22 27, 2006
Using the Spring Framework for Aspect-Oriented Programming Ron Bodkin New Aspects of Software rbodkin@newaspects.com Rod Bodkin Using the Spring Framework for Aspect-Oriented Programming Page 1 This Talk
More informationAspect-Oriented Programming and Aspect-J
Aspect-Oriented Programming and Aspect-J TDDD05 Ola Leifer Most slides courtesy of Jens Gustafsson and Mikhail Chalabine Outline: Aspect-Oriented Programming New concepts introduced Crosscutting concern
More informationLanguage Oriented Modularity: From Theory to Practice
Language Oriented Modularity: From Theory to Practice Arik Hadas Dept. of Mathematics and Computer Science The Open University of Israel Joint Work With: David H. Lorenz Language Oriented Modularity (LOM)
More informationA short introduction to INF329. Spring AOP
A short introduction to INF329 Spring AOP Introduction to AOP AOP is an abbreviation for aspectoriented programming Aspect-oriented programming is a new paradigm in programming, seperating functionality
More informationIntroduction to Programming Using Java (98-388)
Introduction to Programming Using Java (98-388) Understand Java fundamentals Describe the use of main in a Java application Signature of main, why it is static; how to consume an instance of your own class;
More informationAspect Oriented Programming
1 Aspect Oriented Programming Programming Languages Seminar Presenter: Barış Aktemur University of Illinois 18 Feb. 2004 Mostly taken from Bedir Tekinerdogan s slides Outline Introduction Problems Terminology
More informationEnterprise Informatization LECTURE
Enterprise Informatization LECTURE Piotr Zabawa, PhD. Eng. IBM/Rational Certified Consultant e-mail: pzabawa@pk.edu.pl www: http://www.pk.edu.pl/~pzabawa/en 07.10.2011 Lecture 7 Aspect-Oriented Programming
More informationJava AOP in Spring 2.0 Rob Harrop, Interface21 Ltd.
Java AOP in Spring 2.0 Rob Harrop, Interface21 Ltd. Agenda What's new in Spring 2.0 Simplifying transaction configuration @AspectJ Aspects Writing pointcuts with AspectJ Using AspectJ aspects Aspects and
More informationAspect-Oriented Programming
Aspect-Oriented Programming Johan Östlund johano@dsv.su.se Why should you care? AOP sets out to manage complexity ~ Modularizing software AOP is being accepted/adopted in ever increasing numbers both in
More informationAspect Oriented Java RMI Server
Aspect Oriented Java RMI Server Inderjit Singh Dhanoa BIS College of Engineering & Tech., Moga inderp10@yahoo.co.in Er.Dalwinder Singh Salaria Lovely Professional University ds_salaria@yahoo.co.in ABSTRACT
More informationMotivation. Ability is what you're capable of doing. Motivation determines what you do. Attitude determines how well you do it.
Aspects in AspectJ Motivation Aspect Oriented Programming: a brief introduction to terminology Installation Experimentation AspectJ some details AspectJ things you should know about but we dont have time
More informationAOP Tutorial. Written By: Muhammad Asif. Department of Computer Science, Virtual University of Pakistan
AOP Tutorial Written By: Muhammad Asif. Department of Computer Science, Virtual University of Pakistan Table of Contents 1.0 INTRODUCTION... 3 2.0 SCOPE AND OBJECTIVE... 4 3.0 MOTIVATION... 5 4.0 HISTORY...
More informationAspect-Oriented Programming and AspectJ
What is Aspect-Oriented Programming? Many possible answers: a fad Aspect-Oriented Programming and AspectJ Aspect-oriented programming is a common buzzword lately Papers from ECOOP 1997 (early overview
More informationA Brief Introduction to Aspect-Oriented Programming. Historical View Of Languages. Procedural language Functional language Object-Oriented language
A Brief Introduction to Aspect-Oriented Programming Historical View Of Languages Procedural language Functional language Object-Oriented language 1 Acknowledgements Zhenxiao Yang Gregor Kiczales Procedural
More informationA Brief Introduction to Aspect-Oriented Programming" Historical View Of Languages"
A Brief Introduction to Aspect-Oriented Programming" Historical View Of Languages" Procedural language" Functional language" Object-Oriented language" 1 Acknowledgements" Zhenxiao Yang" Gregor Kiczales"
More informationIntroduction to Aspect-Oriented Programming
Introduction to Aspect-Oriented Programming Martin Giese Chalmers University of Technology Göteborg, Sweden AOP Course 2003 p.1/44 AspectJ Quick Tour AOP Course 2003 p.2/44 Reminder: Join Points A join
More informationAPTE: Automated Pointcut Testing for AspectJ Programs
APTE: Automated Pointcut Testing for AspectJ Programs Prasanth Anbalagan Department of Computer Science North Carolina State University Raleigh, NC 27695 panbala@ncsu.edu Tao Xie Department of Computer
More informationDYNAMIC PROXY AND CLASSIC SPRING AOP
Module 8 DYNAMIC PROXY AND CLASSIC SPRING AOP Aspect-oriented programming (AOP) > Aspect-oriented programming (AOP) is a new methodology to complement traditional object-oriented programming (OOP). > The
More informationTake Control with AspectJ
Hermod Opstvedt Chief Architect DnB NOR ITUD Common components Hermod Opstvedt Slide 1 What is AspectJ? Aspect-oriented programming (AOP) is a technique for improving separation of concerns. Crosscutting
More informationImproving Software Modularity using AOP
B Vasundhara 1 & KV Chalapati Rao 2 1 Dept. of Computer Science, AMS School of Informatics, Hyderabad, India 2 CVR College of Engineering, Ibrahimpatnam, India E-mail : vasu_venki@yahoo.com 1, chalapatiraokv@gmail.com
More informationA Model for Software Plans
A Model for Software Plans Robert R. Painter and David Coppit Department of Computer Science The College of William and Mary private static Vector readdata() { BufferedReader stdin = new BufferedReader(
More informationCourse 7 25 November Adrian Iftene
Course 7 25 November 2013 Adrian Iftene adiftene@info.uaic.ro 1 Recapitulation course 6 AOP AOP Profiler Tracing Pooling PostSharp Spring Framework Runtime Verification Model Checking MOP Java MOP 2 Concern
More informationSeparation of Concerns. AspectJ. What if the concerns are Cross-Cutting? SoC: Programming Paradigms. Key theme: Modularity and Encapsulation
Separation of Concerns and AspectJ EEC 625 Lecture #16 April 3, 2006 EEC 625: Software Design & Architecture Separation of Concerns Breaking a program into pieces that overlap in functionality as little
More informationAspect-Oriented Programming with C++ and AspectC++
Aspect-Oriented Programming with C++ and AspectC++ AOSD 2007 Tutorial University of Erlangen-Nuremberg Computer Science 4 Presenters Daniel Lohmann dl@aspectc.org University of Erlangen-Nuremberg, Germany
More informationLanguage support for AOP
Language support for AOP AspectJ and beyond Mario Südholt www.emn.fr/sudholt INRIA and École des Mines de Nantes OBASCO project, Nantes, France Language support for AOP ; Mario Südholt; INRIA/EMN; March
More informationCS/B.TECH/CSE(New)/SEM-5/CS-504D/ OBJECT ORIENTED PROGRAMMING. Time Allotted : 3 Hours Full Marks : 70 GROUP A. (Multiple Choice Type Question)
CS/B.TECH/CSE(New)/SEM-5/CS-504D/2013-14 2013 OBJECT ORIENTED PROGRAMMING Time Allotted : 3 Hours Full Marks : 70 The figures in the margin indicate full marks. Candidates are required to give their answers
More informationBugdel: An Aspect-Oriented Debugging System
Bugdel: An Aspect-Oriented Debugging System Yoshiyuki Usui and Shigeru Chiba Dept. of Mathematical and Computing Sciences Tokyo Institute of Technology 2-12-1-W8-50 Ohkayama, Meguro-ku Tokyo 152-8552,
More informationAspects and Soar: A Behavior Development Model. Jacob Crossman
Aspects and Soar: A Behavior Development Model Jacob Crossman jcrossman@soartech.com Motivation: Why is Soar Useful? Soar Systems are often complex Often require multiple processes Are built of hundreds/thousands
More informationAspect Oriented Programming with AspectJ. Ted Leung Sauria Associates, LLC
Aspect Oriented Programming with AspectJ Ted Leung Sauria Associates, LLC twl@sauria.com Overview Why do we need AOP? What is AOP AspectJ Why do we need AOP? Modular designs are not cut and dried Responsibilities
More informationAdapting applications to exploit virtualization management knowledge
Adapting applications to exploit virtualization management knowledge DMTF SVM 2013 Outline Motivation Applications running on virtualized infrastructure suffer! 1 Example of suffering, by experiment 2
More informationAn Advice for Advice Composition in AspectJ
An Advice for Advice Composition in AspectJ Fuminobu Takeyama Shigeru Chiba Tokyo Institute of Technology, Japan 2010/07/01 Fuminobu Takeyama, Shigeru Chiba, An Advice for Advice Composition in AspectJ,
More informationDetecting Redundant Unit Tests for AspectJ Programs
Detecting Redundant Unit Tests for AspectJ Programs Tao Xie 1 Jianjun Zhao 2 Darko Marinov 3 David Notkin 4 1 North Carolina State University 2 Shanghai Jiaotong University 3 University of Illinois at
More informationDynamic Weaving for Building Reconfigurable Software Systems
Dynamic Weaving for Building Reconfigurable Software Systems JAGDISH LAKHANI lakhjag@iitedu Computer Science Dept Illinois Institute of Technology Chicago, IL 60616 FAISAL AKKAWI akkawif@iitedu Computer
More informationMethod Slots: Supporting Methods, Events, and Advices by a Single Language Construct
Method Slots: Supporting Methods, Events, and Advices by a Single Language Construct YungYu Zhuang and Shigeru Chiba The University of Tokyo More and more paradigms are supported by dedicated constructs
More informationAOP Framed! Informatics Center Federal University of Pernambuco
AOP Framed! Henrique Rebêlo Informatics Center Federal University of Pernambuco Henrique Rebêlo 2009 Contacting Me Ph.D. student Henrique Rebêlo Specialist on AOSD, DbC, Static Metrics, JML Software Architecture,
More informationProfiler Instrumentation Using Metaprogramming Techniques
Profiler Instrumentation Using Metaprogramming Techniques Ritu Arora, Yu Sun, Zekai Demirezen, Jeff Gray University of Alabama at Birmingham Department of Computer and Information Sciences Birmingham,
More informationAspect-oriented programming with AspectJ
www.ijcsi.org 212 Aspect-oriented programming with AspectJ Daniela Gotseva 1 and Mario Pavlov 2 1 Computer Systems Department, Technical University of Sofia Sofia, Bulgaria 2 Computer Systems Department,
More informationWhat is Transaction? Why Transaction Management Required? JDBC Transaction Management in Java with Example. JDBC Transaction Management Example
JDBC Transaction Management in Java with Example Here you will learn to implement JDBC transaction management in java. By default database is in auto commit mode. That means for any insert, update or delete
More informationChapter 4 Defining Classes I
Chapter 4 Defining Classes I This chapter introduces the idea that students can create their own classes and therefore their own objects. Introduced is the idea of methods and instance variables as the
More informationA Unit Testing Framework for Aspects without Weaving
A Unit Testing Framework for Aspects without Weaving Yudai Yamazaki l01104@sic.shibaura-it.ac.jp Kouhei Sakurai sakurai@komiya.ise.shibaura-it.ac.jp Saeko Matsuura matsuura@se.shibaura-it.ac.jp Hidehiko
More informationGenUTest: An Automatic Unit Test & Mock Aspect Generation Tool
Tel Aviv University The Raymond and Beverly Sackler Faculty of Exact Sciences GenUTest: An Automatic Unit Test & Mock Aspect Generation Tool Thesis submitted in partial fulfillment of the requirements
More informationLanguage Features for Software Evolution and Aspect-Oriented Interfaces: An Exploratory Study
Computer Science Publications Computer Science 2013 Language Features for Software Evolution and Aspect-Oriented Interfaces: An Exploratory Study Robert Dyer Iowa State University Hridesh Rajan Iowa State
More informationAdvanced Web Systems 10- Spring and AOP Transactions Ajax Introduction. A. Venturini
Advanced Web Systems 10- Spring and AOP Transactions Ajax Introduction A. Venturini Spring Architecture The seven modules of the Spring framework 2 Intro to Spring AOP In Spring, aspects are woven into
More informationCorso di Sviluppo di applicazioni Web
Corso di Sviluppo di applicazioni Web Docente: Giovanni Grasso - Transazionalità in Spring Pluggable Transaction Strategy Spring PlatformTransactionManager Transaction management provided by implemenation
More informationThis tutorial will take you through simple and practical approaches while learning AOP framework provided by Spring.
About the Tutorial One of the key components of Spring Framework is the Aspect Oriented Programming (AOP) framework. Aspect Oriented Programming entails breaking down program logic into distinct parts
More informationImproving Incremental Development in AspectJ by Bounding Quantification
Improving Incremental Development in AspectJ by Bounding Quantification Roberto E. Lopez-Herrejon and Don Batory Department of Computer Sciences University of Texas at Austin Austin, Texas, 78712 U.S.A.
More informationThe New Java Technology Memory Model
The New Java Technology Memory Model java.sun.com/javaone/sf Jeremy Manson and William Pugh http://www.cs.umd.edu/~pugh 1 Audience Assume you are familiar with basics of Java technology-based threads (
More informationAspect-Oriented Programming
Aspect-Oriented Programming Johan Östlund johano@dsv.su.se Why AOP on this Course? AOP sets out to manage complexity ~ Modularizing software AOP is being accepted/adopted in ever increasing numbers both
More informationIntegration of Application Business Logic and Business Rules with DSL and AOP
Integration of Application Business Logic and Business Rules with DSL and AOP Bogumiła Hnatkowska and Krzysztof Kasprzyk Wroclaw University of Technology, Wyb. Wyspianskiego 27 50-370 Wroclaw, Poland Bogumila.Hnatkowska@pwr.wroc.pl
More informationChapter 32. Aspect-Oriented Software Development (AOSD) Ian Sommerville 2006 Software Engineering. Chapter 32 Slide 1
Chapter 32 Aspect-Oriented Software Development (AOSD) Ian Sommerville 2006 Software Engineering. Chapter 32 Slide 1 Objectives To explain the principle of separation of concerns in software development
More informationProblems in Aspect Oriented Design: Facts and Thoughts
552 Problems in Aspect Oriented Design: Facts and Thoughts Md. Asraful Haque Department of Computer Engineering, Aligarh Muslim University Aligarh,U.P.-202002,India Abstract: The classic challenge in writing
More informationMeta-Program and Meta-Programming
Meta-Program and Meta-Programming What is a Meta-Programming? The creation of procedures and programs that automatically construct the definitions of other procedures and programs. First example the Turing
More informationRefactoring Aspect Oriented Software
Refactoring Aspect Oriented Software Jochem Rutgers rutgers@ewi.utwente.nl ABSTRACT Existing refactoring methods are able to rewrite object-oriented code to better object-oriented code or to aspect-oriented
More informationCopyright IBM Corporation 2004.All rights reserved.
Copyright IBM Corporation 2004.All rights reserved. http://www-106.ibm.com/developerworks/rational/library/2782.html Search help A look at aspect-oriented programming Gary Pollice Worcester Polytechnic
More informationChapter 7. Modular Refactoring. 7.1 Introduction to Modular Refactoring
Chapter 7 Modular Refactoring I n this chapter, the role of Unified Modeling Language (UML) diagrams and Object Constraint Language (OCL) expressions in modular refactoring have been explained. It has
More informationMapping Features to Aspects
Mapping Features to Aspects The Road from Crosscutting to Product Lines (Work in Progress) Roberto E. Lopez-Herrejon Computing Laboratory Oxford University 1 Motivation Features Feature Informally: A characteristic
More informationOS Customization versus OS Code Modularity
OS Customization versus OS Code Modularity ECE 344 Fall 2006 Hans-Arno Jacobsen Thanks to Michael Gong, Vinod Muthusamy, and Charles Zhang for helping to find interesting examples et al. Possibly a Debugging
More informationReactive Behavior in Object-oriented Applications: An Analysis and a Research Roadmap
Reactive Behavior in Object-oriented Applications: An Analysis and a Research Roadmap Guido Salvaneschi Mira Mezini Software Technology Group, University of Darmstadt Outline Design space of OO reactive
More informationProblems with Concurrency. February 19, 2014
with Concurrency February 19, 2014 s with concurrency interleavings race conditions dead GUI source of s non-determinism deterministic execution model 2 / 30 General ideas Shared variable Access interleavings
More informationA Design Discipline and Language Features for Formal Modular Reasoning in Aspect-Oriented Programs
Computer Science Technical Reports Computer Science 12-2005 A Design Discipline and Language Features for Formal Modular Reasoning in Aspect-Oriented Programs Curtis Clifton Iowa State University Gary
More informationAn Exploratory Study of the Design Impact of Language Features for Aspect-oriented Interfaces
An Exploratory Study of the Design Impact of Language Features for Aspect-oriented Interfaces Robert Dyer Hridesh Rajan Iowa State University {rdyer,hridesh}@iastate.edu Yuanfang Cai Drexel University
More informationHomework 5: Aspect-Oriented Programming and AspectJ
Com S 541 Programming Languages 1 November 30, 2005 Homework 5: Aspect-Oriented Programming and AspectJ Due: Tuesday, December 6, 2005. This homework should all be done individually. Its purpose is to
More informationB2.52-R3: INTRODUCTION TO OBJECT ORIENTATED PROGRAMMING THROUGH JAVA
B2.52-R3: INTRODUCTION TO OBJECT ORIENTATED PROGRAMMING THROUGH JAVA NOTE: 1. There are TWO PARTS in this Module/Paper. PART ONE contains FOUR questions and PART TWO contains FIVE questions. 2. PART ONE
More informationUsing Aspect-Oriented Programming to Streamline Mobile Application Development
Allen Lau TS-5363 Using Aspect-Oriented Programming to Streamline Mobile Application Development CTO and Co-Founder Tira Wireless tirawireless.com 2007 JavaOne SM Conference Session TS-5363 Goal of This
More informationApplying Aspect Oriented Programming on Security
Original Article Applying Aspect Oriented Programming on Security Mohammad Khalid Pandit* 1, Azra Nazir 1 and Arutselvan M 2 1 Department of computer Science and engineering, National institute of technology
More informationinjection, objects and aspects
Improving code with dependency injection, objects and aspects Chris Richardson Chris Richardson Consulting, Inc http://www.chrisrichardson.net h h 9/21/2007 Copyright (c) 2007 Chris Richardson. All rights
More informationUsing and Extending AspectJ for Separating Concerns in Parallel Java Code
Using and Extending AspectJ for Separating Concerns in Parallel Java Code Bruno Harbulot and John Gurd The University of Manchester POOSC 2005 Glasgow, July 2005 1/26 Presentation Outline Problem and Approach
More informationUnit-Testing Aspectual Behavior
Unit-Testing Aspectual Behavior [Position Paper] Cristina Videira Lopes and Trung Chi Ngo Donald Bren School of Information and Computer Sciences University of California, Irvine Irvine, CA 92697 {lopes,trungcn}@ics.uci.edu
More informationLearning objectives. The Java Environment. Java timeline (cont d) Java timeline. Understand the basic features of Java
Learning objectives The Java Environment Understand the basic features of Java What are portability and robustness? Understand the concepts of bytecode and interpreter What is the JVM? Learn few coding
More informationExploring Possibilities for Symmetric Implementation of Aspect-Oriented Design Patterns in Scala
Exploring Possibilities for Symmetric Implementation of Aspect-Oriented Design Patterns in Scala Pavol PIDANIČ Slovak University of Technology in Bratislava Faculty of Informatics and Information Technologies
More informationDependency Injection and Aspect- Oi Oriented Programming
Improving Your Code with Dependency Injection and Aspect- Oi Oriented Programming Chris Richardson Author of POJOs in Action Chris Richardson Consulting, Inc http://www.chrisrichardson.net Slide 1 Overall
More informationGetting started with Java
Getting started with Java by Vlad Costel Ungureanu for Learn Stuff Programming Languages A programming language is a formal constructed language designed to communicate instructions to a machine, particularly
More informationMobile and Context-aware Interactive Systems
Mobile and Context-aware Interactive Systems Gaëlle Calvary Grenoble INP Laboratoire d Informatique de Grenoble (LIG) Core concepts Principles Terminology For more information, see Sara Bouchenak s M1
More informationOn the relationship between weavers and the build system
On the relationship between weavers and the build system Bram Adams GH-SEL, Ghent University Kris De Schutter PROG, VUB 1 Everything has a Makefile! 2 How do you bring AOP into your build system? 3 How
More informationBIT Java Programming. Sem 1 Session 2011/12. Chapter 2 JAVA. basic
BIT 3383 Java Programming Sem 1 Session 2011/12 Chapter 2 JAVA basic Objective: After this lesson, you should be able to: declare, initialize and use variables according to Java programming language guidelines
More informationSoftware Development & Education Center. Java Platform, Standard Edition 7 (JSE 7)
Software Development & Education Center Java Platform, Standard Edition 7 (JSE 7) Detailed Curriculum Getting Started What Is the Java Technology? Primary Goals of the Java Technology The Java Virtual
More informationAdministration. Exceptions. Leftovers. Agenda. When Things Go Wrong. Handling Errors. CS 99 Summer 2000 Michael Clarkson Lecture 11
Administration Exceptions CS 99 Summer 2000 Michael Clarkson Lecture 11 Lab 10 due tomorrow No lab tomorrow Work on final projects Remaining office hours Rick: today 2-3 Michael: Thursday 10-noon, Monday
More informationProgramming Paradigms, Fall 06
Programming Paradigms, Fall 06 Multiple Choice Exam January 29, 2007, 10:00 11:15 ID Name Each of the following questions has exactly one correct answer. For each question, you may select one or more answers
More informationCSCI 111 Midterm Spring 2014
CSCI 111 Midterm Spring 2014 Question Number Point Value 1 40 2 20 3 15 4 25 Total 100 Points Awarded Name Student Id Lab Section 50 Minutes If I can t read your handwriting I have to count it wrong Keep
More informationA Novel Approach to Unit Testing: The Aspect-Oriented Way
A Novel Approach to Unit Testing: The Aspect-Oriented Way Guoqing Xu and Zongyuan Yang Software Engineering Lab, Department of Computer Science East China Normal University 3663, North Zhongshan Rd., Shanghai
More informationWhat is it? CMSC 433 Programming Language Technologies and Paradigms Spring Approach 1. Disadvantage of Approach 1
CMSC 433 Programming Language Technologies and Paradigms Spring 2007 Singleton Pattern Mar. 13, 2007 What is it? If you need to make sure that there can be one and only one instance of a class. For example,
More informationShmuel Ur Shady Copty Software and Verification Technologies
Multi Threaded Testing with AOP is Easy And it Finds Bugs! Shmuel Ur (ur@il.ibm.com) Shady Copty (shady@il.ibm.com) Software and Verification Technologies IBM Labs in Haifa 2004 IBM Corporation Outline
More information(800) Toll Free (804) Fax Introduction to Java and Enterprise Java using Eclipse IDE Duration: 5 days
Course Description This course introduces the Java programming language and how to develop Java applications using Eclipse 3.0. Students learn the syntax of the Java programming language, object-oriented
More information