An Aspect-to-Class Advising Architecture Based on XML in Aspect Oriented Programming

Size: px
Start display at page:

Download "An Aspect-to-Class Advising Architecture Based on XML in Aspect Oriented Programming"

Transcription

1 An Aspect-to-Class Advising Architecture Based on XML in Aspect Oriented Programming T. Hussain, M. M. Awais, S. Shamail, M. A. Adnan Department of Computer Science Lahore University of Management Sciences, DHA, Lahore, Pakistan Abstract In aspect oriented programming, cross-cutting concerns are represented as aspects. These aspects can advise classes as well as other aspects. This paper defines an XML schema to express aspect information for the aspects advising classes. Defining such schema provides a platform that is implementation independent and can be used for further research like aspect weaver development. In aspect weaving, conflicts amongst aspects may arise while advising classes. This paper proposes a solution that resolves aspect conflicts related to pre-compilation weaving. Two weaving algorithms based upon the proposed solution are also developed and explained. 1. Introduction Any problem domain consists of different concerns. These concerns may be physical, logical and functional entities. Physical and logical entities are known as concepts in object-oriented paradigm and lead to the specification of classes. Functionality-related concerns are distributed amongst different classes, with particular functions assigned to a distinct class. However, there are some functionality-related concerns that cannot be associated with a distinct class; and thus have a systemwide range. Such concerns are known as cross-cutting concerns and are discussed in [1, 2, 3]. Aspect-oriented programming techniques involve separation of these cross-cutting concerns from classes into groupings called aspects. There are defined certain points in program s execution where aspects can specify the desired actions to be taken. This is achieved through an advice that is the code that runs at a predetermined point when certain conditions are met. The program related to cross-cutting concerns (aspect code) is woven into the class code (core code) before execution of the main program. This process is known as weaving and is defined by a set of weaving rules. Weaving aspects are discussed in [4]. Aspect oriented extensions to object oriented compilers have been suggested in the literature as in [5, 6]. Figure 1 gives an overview of aspect-oriented software development process differentiating pre-compile weaving and postcompile weaving techniques. Aspects are typically identified when functionality is being assigned to the classes related to a problem domain under consideration. Aspects can be defined to advise classes or other aspects. Generally speaking there are two categories of advices: Aspect-To-Aspect (ATA) advising and Aspect-To-Class (ATC) advising. This paper primarily discusses ATC. Schonger et al observes Although AOP seems to become useful in solving real-world problems, the situation is not perfect from a research point of view as well as for some practical applications: there is no strong theoretical basis yet, the existing prototypes are always bound to a particular base language and the user usually has no support to extend the language [7]. Therefore, in this paper, we first present an XML schema that can appropriately represent necessary information related to aspects. It provides a very compact and an implementation independent framework that can be effectively utilized for further research. Once an XML schema is developed, all aspects can be expressed in the form of XML documents and a validating XML parser can be used to check whether the XML description of an aspect follows the rules specified in the schema. This paper also studies the resolution of aspect conflicts that may arise when two or more aspects advise a class. The order in which these aspects advise a class can affect the final results. A solution suggesting priorities is presented and the original XML schema is modified accordingly. Two different algorithms for this implementation are also proposed. 2. Basic XML Schema for Aspects XML is used for description of aspects because of the ease with which it allows any information to be expressed according to any given structuring rules. Conformance to these structuring rules can be easily checked with a validating XML parser. XML also simplifies the task of

2 implementing a weaver because all aspect information can be picked from the XML document by an XML parser. The XML schema given in Figure 2 defines information about aspects. Important issues regarding this definition are discussed as follows. 2.1 Identifying Aspects The XML document may contain more than one aspect. So each aspect should be uniquely identified. This can be achieved using a unique numbering scheme or a unique name allocation scheme. 2.2 Class Advice and Other Class Information Code to be woven into the core code is contained in the "advice" part of an aspect. The advice part is divided into segments on the basis of the locations at which the advice code is to be placed inside the core code. The XML schema defines the location of the core code along with class names to be advised. 2.3 Join Points Join points are well defined locations in the core code where aspect code can be weaved. Only two join points are used for methods - before the start of the core code and after the end of the core code. Advice code added before the start of the core code is referred to as before code, while advice code added after the core code is known as after code. The XML schema defines segments for before code and after code. 2.4 Weaving Granularity and Interface Width Weaving granularity with the above specification of join points is quite coarse. A finer weaving granularity is required, for example, specifying join points in terms of statements. This means that advice code can be woven before or after a statement of the core code. A finer weaving granularity may not be recommended because it can impose more restrictions on data variables and on statements in the core and aspect code. Increasing these restrictions means that the core-aspect interface width is increased and freedom in designing classes and aspects independent of each other is decreased. In other words orthogonality and modularity are decreased [8]. Problem Domain Concerns Classes Aspects Code for Classes Code for Aspects Class Compiler Aspect Compiler Pre-compile - Weaver Post - Compile Weaver Class Compiler Final executable/interpretable program Final executable/interpretable program P ost - compile Weaving Pre - compile Weaving Figure 1: An Overview of Aspect-Oriented Software Development and Programming

3 <!-- XML Schema for Aspects --> <Schema xmlns = "urn:schemas-microsoft-com:xml-data"> <ElementType name = "AspectList" model = "closed" content = "eltonly" order = "many"> <description>only Aspect elements contained</description> <element type = "Aspect"/> <ElementType name = "Aspect" model = "closed" <description>details of an Aspect</description> <element type = "Extends" minoccurs = "0" maxoccurs = "1"/> <element type = "Implements" minoccurs = "0" maxoccurs = "*"/> <element type = "AdvisedClass" minoccurs = "0" maxoccurs = "*"/> <element type = "Introduced" minoccurs = "0" maxoccurs = "1"/> <element type = "Before" minoccurs = "0" maxoccurs = "1"/> <element type = "After" minoccurs = "0" maxoccurs = "1"/> <ElementType name = "Extends" model = "closed" <description>name of class extended</description> <ElementType name = "Implements" model = "closed" <description>name of interface implemented</description> <ElementType name = "AdvisedClass" model = "closed" <element type = "ClassId" minoccurs = "1" maxoccurs = "1"/> <element type = "MethodId" minoccurs = "0" maxoccurs = "*"/> <element type = "Location" minoccurs = "1" maxoccurs = "1"/> <ElementType name = "ClassId" model = "closed" <description>name of class advised</description> <ElementType name = "MethodId" model = "closed" <element type = "MethodName" minoccurs = "1" maxoccurs = "1"/> <element type = "MethodSignature" minoccurs = "1" maxoccurs = "1"/> <ElementType name = "MethodName" model = "closed" <description>name of method advised</description> <ElementType name = "MethodSignature" model = "closed" <description>signature of method advised </description> <ElementType name = "Location" model = "closed" <description>location of core code source</description> <ElementType name = "Implements" model = "closed" <description>name of interface implemented</description> <ElementType name = "Introduced" model = "closed" <description>code introduced into class</description> <ElementType name = "Before" model = "closed" <description>before part of advice to method</description> <ElementType name = "After" model = "closed" <description>after part of advice to method</description> </Schema> Figure 2: XML Schema to Represent Aspects in ATC Advising

4 2.5 Method Identification In the XML schema, aspect code for methods of a class is specified by the method name and arguments list for the method. The arguments list allows method overloading to work. 3. Aspect Conflicts A conflict between two or more aspects advising a class method can result only if the aspects codes share a variable or object and at least one of the aspects codes writes to the shared variable or object. A method of ensuring correct weaving using assertions is described in [9]. Another method based on priorities is presented below. 3.1 Aspect Priorities In the case of conflicting aspects, the weaver needs to be informed about the correct order of weaving respective aspects in the code for a class method. This can be done by assigning priorities to conflicting aspects. 3.2 XML Schema with Priorities XML schema given in Figure 2 is modified as follows. Priorities for before code and after code are added to the MethodId element of Figure 2 as BeforePriority and AfterPriority elements respectively. The modified code segment, printed in bold, is given in Figure Weaving Algorithms Two algorithms defined as class-by-class weaving and aspect-by-aspect weaving are presented here Class-by-Class Weaving Algorithm In this algorithm the process of weaving takes place in a class-wise sequence. All aspects advising a class are examined before moving on to another class. An array is maintained to record the introduce advice relevant to the class being considered from every aspect examined. Before code and after code of an aspect can be applied to multiple methods of the class. Also multiple aspects can advise each method. Two arrays (for the before and after advice) are maintained for each method of the class. Introduce advice does not have priorities and can be woven in the order it was collected (or any other order, as long as code from different aspects is not mixed). However before and after advice has to be sorted in order of priority before it is woven. For describing this algorithm, called ClasswiseWeaver, some additional notation is shown in Table 1. Algorithm ClasswiseWeaver for (every Class in ClassesCollection) create and initialize IntroducedArray to empty; for (every Method in Class) create and initialize Method.BeforeArray to empty; create and initialize Method.AfterArray to empty; while (unexamined aspects exist in AspectsCollection) find next aspect Relevant that advises Class; create object Introduced from information in Relevant; add Introduced to IntroducedArray; for (every Method of Class advised by Relevant) create object Before from information in Relevant; add Before to Method.BeforeArray; create object After from information in Relevant; add After to Method.AfterArray; apply code from IntroducedArray to class; for (every Method of Class ) sort Method.BeforeArray according to priorities; apply code from Method.BeforeArray to Method; sort Method.AfterArray according to priorities; apply code from Method.AfterArray to Method; <ElementType name = "MethodId" model = "closed" <element type = "MethodName" minoccurs = "1" maxoccurs = "1"/> <element type = "MethodSignature" minoccurs = "1" maxoccurs = "1"/> <element type = "BeforePriority" minoccurs = "0" maxoccurs = "1"/> <element type = "AfterPriority" minoccurs = "0" maxoccurs = "1"/> <ElementType name = "BeforePriority" model = "closed" content = "textonly" dt:type = "int"> <ElementType name = "AfterPriority" model = "closed" content = "textonly" dt:type = "int"> Figure 3: XML Schema with Priorities

5 Aspect-by-Aspect Weaving Algorithm In this algorithm, called AspectwiseWeaver, each aspect is examined and all its advice applied to the relevant classes after searching for them. An intermediate data structure is created for collecting before and after advice relevant to all methods of all classes. This data structure can be in the form of a multidimensional array where first dimension is the classes, the second dimension is the methods of a particular class, and the third dimension contains the Method.BeforeArray and Method.AfterArray objects (described in the previous section) for a particular method. Other notations used for describing this algorithm also have the same definitions as given in the previous section. Searching for classes is done in this data structure. Search operations can be speeded up if a tree like data structure is used. To keep the weaving algorithm independent of the data structure implementation, the data structure will be wrapped up in an abstraction called ClassStore. ClassStore has the operations defined as shown in Table 2. Algorithm AspectwiseWeaver for (every Aspect in AspectsCollection) for (every Class advised by Aspect) // not all methods are advised for (every advised Method of Class) create Before object; InsertBeforeObject(Class, Method, Before); create After object; InsertAfterObject(Class, Method, After); SortArrays( ); // Apply advice to core code for (every Class in ClassesCollection) for (every Method of Class) AdviceCollection = GiveBeforeAdvice(Class, Method); Apply advice in AdviceCollection to Method; AdviceCollection = GiveAfterAdvice(Class, Method); Apply advice in AdviceCollection to Method; AspectsCollection ClassesCollection Class Relevant Introduced IntroducedArray Before After Method.BeforeArray and Method.AfterArray InsertBeforeObject(Cl ass, Method, Before) InsertAfterObject(Cla ss, Method, After) SortArrays( ) GiveBeforeAdvice(Clas s, Method) GiveAfterAdvice(Class, Method) AdviceCollection Table 1: Terms Used in ClasswiseWeaver Algorithm An XML document containing all the aspects. A collection of code for all the classes A class in ClassesCollection. An aspect in AspectsCollection that advises a particular class in Classes. Method is a uniquely identified method of Class. Uniquely identified means that its identity consists of method name and arguments signature. An object containing advice introduced by an aspect into a class. An array of Introduced objects. An object containing before advice from a particular aspect and priority for a particular Method. An object containing after advice from a particular aspect and priority for a particular Method. Arrays of Before and After objects containing advice for a particular Class.Method. Table 2: Operations Defined by ClassStore Inserts the specified Before object into the Method.BeforeArray of the specified Method of the specified Class. Inserts the specified After object into the Method.AfterArray of the specified Method of the specified Class. Sorts, according to priorities, every Method.BeforeArray and Method.BeforeArray in ClassStore. Returns sorted before advice for the specified Method of the specified Class. Returns sorted after advice for the specified Method of the specified Class. the final ordered collection of all before or after advice from all aspects that is to be woven into the core code.

6 4. Conclusions and Future Work The descriptive power of XML has been illustrated in the domain of aspect description. The flexibility and extensibility of basic XML schema has been demonstrated to easily incorporate new concepts like the solution presented for resolving aspect conflicts. The XML-based architecture developed focuses on multi-aspect advising. A schema can be developed on similar lines for aspect-toaspect advising and combined multi-aspect and aspect-to-aspect advising. These capabilities will allow for the capture of more issues from a problem domain for more flexible aspectoriented design. The most obvious direction of any future work on the topics covered in this paper is the development and implementation of a complete weaver. However if aspect-oriented programming is considered in general there are many promising areas (especially since aspectoriented programming is still in its infancy): Aspect-oriented programming can be studied in the context of the structured programming paradigm. This area has been largely neglected because most of the people currently working on aspect-oriented programming have backgrounds in object-oriented software development and they have looked at aspects from the point of view of classes. The idea of aspects may have originated from classes but this does not imply that aspect-oriented programming cannot be used to enhance the structured programming paradigm. Work can be carried out on application of formal methods to aspect-oriented programming. For example, the correct advising issues discussed in this thesis can be studied using a formal methods approach. 5. References [1] G. Kiczales, J. Lamping, A. Medhakar, C. Maeda, C. Lopes,J. Loingtier, J. Irwin, "Aspect-Oriented Programming", Proceedings of the European Conference on Object Oriented Programming, number 1241 in Lecture Notes in Computer Science, Springer Verlag, June [2] T. Highley, M. Lack, P. Myers, "Aspect- Oriented Programming: A Critical Analysis of a New Programming Paradigm", University of Virginia, Department of Computer Science Technical Report CS-99-29, May [3] L. Carver, W. Griswold, " Sorting out Concerns", First Workshop on Multi- Dimensional Separation of Concerns in Object-Oriented Systems, Denver, Colorado, November [4] K. Bollert, "On Weaving Aspects", ECOOP 99 International Workshop on Aspect- Oriented Programming, [5] G. Kiczales, E. Hilsdale, J. Hugunin, M. Kersten, J. Palm, W. Griswold, "An Overview of AspectJ", Proceedings of the European Conference on Object-Oriented Programming, [6] O. Spinczyk, A. Gal, W. Schroder- Preikschat, "AspectC++: An Aspect- Oriented Extension to C++", International Conference on Technology of Object- Oriented Languages and Systems, Sydney, Australia, 2002 [7] S.Schonger, E.Pulvermuller and S.Sarstedt, "Aspect-Oriented Programming and Component Weaving:Using XML Representations of Abstract Syntax Trees", Second German AOSD Workshop, Bonn, Germany, [8] R.J. Walker, E.L.A. Baniassad, G.C. Murphy, "An Initial Assessment of Aspect- Oriented Programming, Proceedings of the 21st International Conference on Software Engineering, ACM Press, 1999, pp [9] H. Klaeren, E. Pulvermuller, A. Rashid, A. Speck, "Aspect Composition applying the Design by Contract Principle", Second International Symposium on Generative and Component-Based Software Engineering, GCSE 2000, Erfurt, Germany, October 2000.

A Unit Testing Framework for Aspects without Weaving

A 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 information

On Aspect-Orientation in Distributed Real-time Dependable Systems

On Aspect-Orientation in Distributed Real-time Dependable Systems On Aspect-Orientation in Distributed Real-time Dependable Systems Andreas Gal, Wolfgang Schröder-Preikschat, and Olaf Spinczyk University of Magdeburg Universitätsplatz 2 39106 Magdeburg, Germany gal,wosch,olaf

More information

Bugdel: An Aspect-Oriented Debugging System

Bugdel: 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 information

UML Aspect Specification Using Role Models

UML Aspect Specification Using Role Models UML Aspect Specification Using Role Models Geri Georg Agilent Laboratories, Agilent Technologies, Fort Collins, USA geri_georg@agilent.com Robert France Department of Computer Science, Colorado State University

More information

Modeling the Evolution of Aspect Configurations using Model Transformations

Modeling the Evolution of Aspect Configurations using Model Transformations Modeling the Evolution of Aspect Configurations using Model Transformations Uwe Zdun, Mark Strembeck Institute of Information Systems, New Media Lab Vienna University of Economics, Austria {uwe.zdun mark.strembeck}@wu-wien.ac.at

More information

Aspect-Based Workflow Evolution

Aspect-Based Workflow Evolution Aspect-Based Workflow Evolution Boris Bachmendo and Rainer Unland Department of Mathematics and Computer Science University of Essen, D - 45117 Essen {bachmendo, unlandr}@cs.uni-essen.de Abstract. In this

More information

On Aspect-Orientation in Distributed Real-time Dependable Systems

On Aspect-Orientation in Distributed Real-time Dependable Systems On Aspect-Orientation in Distributed Real-time Dependable Systems Andreas Gal, Olaf Spinczyk, and Wolfgang Schröder-Preikschat University of California, 552 Engineering Tower, Irvine, CA 92697, USA University

More information

Study of Perfective Maintainability for Component-based software systems using Aspect-Oriented-Programming Techniques

Study of Perfective Maintainability for Component-based software systems using Aspect-Oriented-Programming Techniques Study of Perfective Maintainability for Component-based software systems using Aspect-Oriented-Programming Techniques JyothiRandDr.V.K. Agrawal Abstract As Maintainability plays a very important role in

More information

An Aspect-Based Approach to Modeling Security Concerns

An Aspect-Based Approach to Modeling Security Concerns An Aspect-Based Approach to Modeling Security Concerns Geri Georg Agilent Laboratories, Agilent Technologies, Fort Collins, USA geri_georg@agilent.com Robert France, Indrakshi Ray Department of Computer

More information

Using Aspects to Make Adaptive Object-Models Adaptable

Using Aspects to Make Adaptive Object-Models Adaptable Using Aspects to Make Adaptive Object-Models Adaptable Ayla Dantas 1, Joseph Yoder 2, Paulo Borba 1, Ralph Johnson 2 1 Software Productivity Group Informatics Center Federal University of Pernambuco Recife,

More information

Using Aspects to Make Adaptive Object-Models Adaptable

Using Aspects to Make Adaptive Object-Models Adaptable Using Aspects to Make Adaptive Object-Models Adaptable Ayla Dantas 1, Joseph Yoder 2, Paulo Borba, and Ralph Johnson 1 Software Productivity Group Informatics Center Federal University of Pernambuco Recife,

More information

Learning from Components: Fitting AOP for System Software

Learning from Components: Fitting AOP for System Software Learning from Components: Fitting AOP for System Software Andreas Gal, Michael Franz Department of Computer Science University of California, Irvine Irvine, CA 92697-3425, USA {gal,franz@uci.edu Danilo

More information

Martin P. Robillard and Gail C. Murphy. University of British Columbia. November, 1999

Martin P. Robillard and Gail C. Murphy. University of British Columbia. November, 1999 Migrating a Static Analysis Tool to AspectJ TM Martin P. Robillard and Gail C. Murphy Department of Computer Science University of British Columbia 201-2366 Main Mall Vancouver BC Canada V6T 1Z4 fmrobilla,murphyg@cs.ubc.ca

More information

Object-Oriented Web-Based Courses Development through XML

Object-Oriented Web-Based Courses Development through XML Object-Oriented Web-Based Courses Development through XML Shyi-Shiou Wu 1, Sin-Min Tsai 2, Shya-Shiow Sun 3, Po-Ching Yang 4 1 Department of Electronic Engineering, National Taiwan University of Science

More information

AspectJTamer: The Controlled Weaving of Independently Developed Aspects

AspectJTamer: The Controlled Weaving of Independently Developed Aspects AspectJTamer: The Controlled Weaving of Independently Developed Aspects Constantin Serban Applied Research Telcordia Technologies One Telcordia Drive Piscataway, NJ 08854 USA serban@research.telcordia.com

More information

Aspect-Orientation from Design to Code

Aspect-Orientation from Design to Code Aspect-Orientation from Design to Code Iris Groher Siemens AG, CT SE 2 Otto-Hahn-Ring 6 81739 Munich, Germany groher@informatik.tu-darmstadt.de Thomas Baumgarth Siemens AG, CT SE 2 Otto-Hahn-Ring 6 81739

More information

Analysing the navigational aspect

Analysing the navigational aspect A. M. Reina Dpto. Lenguajes y Sistemas Informáticos Universidad de Sevilla. e-mail: reinaqu@lsi.us.es Analysing the navigational aspect J. Torres Dpto. Lenguajes y Sistemas Informáticos Universidad de

More information

Reusability of Concerns

Reusability of Concerns Reusability of Concerns Andreas Speck 1 Elke Pulvermüller 1 Mira Mezini 2 1 Wilhelm-Schickard-Institute for Computer Science University of Tübingen 72076 Tübingen, Germany fspeckjpulvermug@informatik.uni-tuebingen.de

More information

Dynamic Weaving for Building Reconfigurable Software Systems

Dynamic Weaving for Building Reconfigurable Software Systems Dynamic Weaving for Building Reconfigurable Software Systems FAISAL AKKAWI Akkawi@cs.iit.edu Computer Science Dept. Illinois Institute of Technology Chicago, IL 60616 ATEF BADER abader@lucent.com Lucent

More information

Quick Adaptation of Web-Based Information Systems with Aspect-Oriented Features

Quick Adaptation of Web-Based Information Systems with Aspect-Oriented Features Journal of Computing and Information Technology - CIT 12, 2004, 2, 103 109 103 Quick Adaptation of Web-Based Information Systems with Aspect-Oriented Features Sašo Greiner, Simon Tutek, Janez Brest and

More information

On the Impact of Aspect-Oriented Programming on Object-Oriented Metrics

On the Impact of Aspect-Oriented Programming on Object-Oriented Metrics On the Impact of Aspect-Oriented Programming on Object-Oriented Metrics Jean-Yves Guyomarc h and Yann-Gaël Guéhéneuc GEODES - Group of Open and Distributed Systems, Experimental Software Engineering Department

More information

A Theory of Aspects for Aspect-Oriented Software Development

A Theory of Aspects for Aspect-Oriented Software Development A Theory of Aspects for Aspect-Oriented Software Development Christina von Flach G. Chavez 1,2 Carlos J. P. de Lucena 2 1 UFBA, Computer Science Department Av. Adhemar de Barros, s/n 40170-110, Salvador,

More information

Program Instrumentation for Debugging and Monitoring with AspectC++

Program Instrumentation for Debugging and Monitoring with AspectC++ Program Instrumentation for Debugging and Monitoring with AspectC++ Daniel Mahrenholz, Olaf Spinczyk, and Wolfgang Schröder-Preikschat University of Magdeburg Universitätsplatz 2 D-39106 Magdeburg, Germany

More information

A State-Based Approach to Testing Aspect-Oriented Programs

A State-Based Approach to Testing Aspect-Oriented Programs A State-Based Approach to Testing Aspect-Oriented Programs Dianxiang Xu, Weifeng Xu, and Kendall Nygard Department of Computer Science North Dakota State University Fargo, ND 58105, USA {dianxiang.xu,

More information

AOSA - Betriebssystemkomponenten und der Aspektmoderatoransatz

AOSA - Betriebssystemkomponenten und der Aspektmoderatoransatz AOSA - Betriebssystemkomponenten und der Aspektmoderatoransatz Results obtained by researchers in the aspect-oriented programming are promoting the aim to export these ideas to whole software development

More information

Aspect-Oriented Generation of the API Documentation for AspectJ

Aspect-Oriented Generation of the API Documentation for AspectJ Aspect-Oriented Generation of the API Documentation for AspectJ Michihiro Horie Tokyo Institute of Technology 2-12-1 Ohkayama, Meguro-ku, Tokyo 152-8552, Japan www.csg.is.titech.ac.jp/ horie Shigeru Chiba

More information

Creating Security Mechanism Aspect Models from Abstract Security Aspect Models

Creating Security Mechanism Aspect Models from Abstract Security Aspect Models Creating Security Mechanism Aspect Models from Abstract Security Aspect Models Geri Georg, Robert France, and Indrakshi Ray Department of Computer Science Colorado State University, Fort Collins, CO 80523

More information

Roles From an Aspect-Oriented Perspective

Roles From an Aspect-Oriented Perspective Roles From an Aspect-Oriented Perspective Stefan Hanenberg Dominik Stein Rainer Unland University of Duisburg-Essen Essen, Germany {shanenbe, dstein, unlandr}@cs.uni-essen.de Abstract. Roles and aspects

More information

Pattern Transformation for Two-Dimensional Separation of Concerns

Pattern Transformation for Two-Dimensional Separation of Concerns Transformation for Two-Dimensional Separation of Concerns Xiaoqing Wu, Barrett R. Bryant and Jeff Gray Department of Computer and Information Sciences The University of Alabama at Birmingham Birmingham,

More information

STRUCTURING CRITERIA FOR THE DESIGN OF COMPONENT-BASED REAL-TIME SYSTEMS

STRUCTURING CRITERIA FOR THE DESIGN OF COMPONENT-BASED REAL-TIME SYSTEMS STRUCTURING CRITERIA FOR THE DESIGN OF COMPONENT-BASED REAL-TIME SYSTEMS Aleksandra Tešanović and Jörgen Hansson Department of Computer Science, Linköping University, Sweden {alete,jorha}@ida.liu.se ABSTRACT

More information

Multi-Dimensional Separation of Concerns and IBM Hyper/J

Multi-Dimensional Separation of Concerns and IBM Hyper/J Multi-Dimensional Separation of Concerns and IBM Hyper/J Technical Research Report Barry R. Pekilis Bell Canada Software Reliability Laboratory Electrical and Computer Engineering University of Waterloo

More information

Implementing Producers/Consumers Problem Using Aspect-Oriented Framework

Implementing Producers/Consumers Problem Using Aspect-Oriented Framework Implementing Producers/Consumers Problem Using Aspect-Oriented Framework 1 Computer Science Department School of Science Bangkok University Bangkok, Thailand netipan@iit.edu Paniti Netinant 1, 2 and Tzilla

More information

A Flexible Approach for Instance Adaptation during Class Versioning

A Flexible Approach for Instance Adaptation during Class Versioning A Flexible Approach for Instance during Class Versioning Awais Rashid 1, Peter Sawyer 1, Elke Pulvermueller 2 1 Computing Department, Lancaster University, Lancaster LA1 4YR, UK {marash sawyer} @comp.lancs.ac.uk

More information

APPLYING OBJECT-ORIENTATION AND ASPECT-ORIENTATION IN TEACHING DOMAIN-SPECIFIC LANGUAGE IMPLEMENTATION *

APPLYING OBJECT-ORIENTATION AND ASPECT-ORIENTATION IN TEACHING DOMAIN-SPECIFIC LANGUAGE IMPLEMENTATION * APPLYING OBJECT-ORIENTATION AND ASPECT-ORIENTATION IN TEACHING DOMAIN-SPECIFIC LANGUAGE IMPLEMENTATION * Xiaoqing Wu, Barrett Bryant and Jeff Gray Department of Computer and Information Sciences The University

More information

Compilation Semantics of Aspect-Oriented Programs

Compilation Semantics of Aspect-Oriented Programs Compilation Semantics of Aspect-Oriented Programs Hidehiko Masuhara Graduate School of Arts and Sciences University of Tokyo masuhara@acm.org Gregor Kiczales Department of Computer Science University of

More information

Design Patterns and Aspects Modular Designs with Seamless Run-Time Integration

Design Patterns and Aspects Modular Designs with Seamless Run-Time Integration Design Patterns and Aspects Modular Designs with Seamless Run-Time Integration Robert Hirschfeld *, Ralf Lämmel #, Matthias Wagner * * Future Networking Lab DoCoMo Communications Laboratories Europe Landsberger

More information

Aspect Design Pattern for Non Functional Requirements

Aspect Design Pattern for Non Functional Requirements Aspect Design Pattern for Non Functional Requirements FAZAL-E-AMIN¹, ANSAR SIDDIQ², HAFIZ FAROOQ AHMAD³ ¹ ²International Islamic University Islamabad, Pakistan ³NUST Institute of Information Technology,

More information

Josh. Java. AspectJ weave. 2 AspectJ. Josh Javassist[1] Javassist Java. AspectJ[3, 4] Java. AspectJ. weave. weave. weave. weave. weaver 1.

Josh. Java. AspectJ weave. 2 AspectJ. Josh Javassist[1] Javassist Java. AspectJ[3, 4] Java. AspectJ. weave. weave. weave. weave. weaver 1. Josh Java Aspect Weaver weaver 1 AspectJ Java AspectJ Java weave AspectJ weave Josh weave Javassist weave 1 weaver 1 AspectJ[3, 4] 1 Java AspectJ Java weave Java AspectJ weave Josh Josh Java weave weave

More information

University of Huddersfield Repository

University of Huddersfield Repository University of Huddersfield Repository Ghareb, Mazen and Allen, Gary Improving the Design and Implementation of Software Systems uses Aspect Oriented Programming Original Citation Ghareb, Mazen and Allen,

More information

UniAspect: A Language-Independent Aspect-Oriented Programming Framework

UniAspect: A Language-Independent Aspect-Oriented Programming Framework UniAspect: A Language-Independent Aspect-Oriented Programming Framework Akira Ohashi Kazunori Sakamoto Tomoyuki Kamiya Reisha Humaira Satoshi Arai Hironori Washizaki Yoshiaki Fukazawa Waseda University

More information

An Introduction to Aspect-Oriented Programming

An Introduction to Aspect-Oriented Programming An Introduction to Aspect-Oriented Programming By Ken Wing Kuen Lee Reading Assignment COMP 610E 2002 Spring Software Development of E-Business Applications The Hong Kong University of Science

More information

An Analysis of Aspect Composition Problems

An Analysis of Aspect Composition Problems An Analysis of Aspect Composition Problems Wilke Havinga havingaw@cs.utwente.nl Istvan Nagy nagyist@cs.utwente.nl TRESE/Software Engineering group University of Twente, The Netherlands Lodewijk Bergmans

More information

UML4COP: UML-based DSML for Context-Aware Systems

UML4COP: UML-based DSML for Context-Aware Systems UML4COP: UML-based DSML for Context-Aware Systems Naoyasu Ubayashi Kyushu University ubayashi@acm.org Yasutaka Kamei Kyushu University kamei@ait.kyushu-u.ac.jp Abstract Context-awareness plays an important

More information

Dynamic Instantiation-Checking Components

Dynamic Instantiation-Checking Components Dynamic Instantiation-Checking Components Nigamanth Sridhar Electrical and Computer Engineering Cleveland State University 318 Stilwell Hall, 2121 Euclid Ave Cleveland OH 44113 n.sridhar1@csuohio.edu ABSTRACT

More information

Safe Aspect Composition. When dierent aspects [4] are composed, one must ensure that the resulting

Safe Aspect Composition. When dierent aspects [4] are composed, one must ensure that the resulting Safe Composition Laurent Bussard 1, Lee Carver 2, Erik Ernst 3, Matthias Jung 4, Martin Robillard 5, and Andreas Speck 6 1 I3S { CNRS UPRESA 6070 { B^at ESSI, 06190 Sophia-Antipolis, France, bussard@essi.fr

More information

Semistructured Data Store Mapping with XML and Its Reconstruction

Semistructured Data Store Mapping with XML and Its Reconstruction Semistructured Data Store Mapping with XML and Its Reconstruction Enhong CHEN 1 Gongqing WU 1 Gabriela Lindemann 2 Mirjam Minor 2 1 Department of Computer Science University of Science and Technology of

More information

Applying Aspect Oriented Programming on Security

Applying 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 information

Preserving Separation of Concerns through Compilation

Preserving Separation of Concerns through Compilation Preserving Separation of Concerns through Compilation A Position Paper Hridesh Rajan Robert Dyer Youssef Hanna Dept. of Computer Science Harish Narayanappa Iowa State University Ames, IA 50010 {hridesh,

More information

Model-based Aspect Weaver Construction

Model-based Aspect Weaver Construction Model-based Aspect Weaver Construction Suman Roychoudhury 1, Frédéric Jouault 2,1, and Jeff Gray 1 1 University of Alabama at Birmingham, Birmingham, AL 35294 {roychous, gray@cis.uab.edu 2 ATLAS group

More information

Specifying languages using aspect-oriented approach: AspectLISA

Specifying languages using aspect-oriented approach: AspectLISA Specifying languages using aspect-oriented approach: AspectLISA Damijan Rebernak, Marjan Mernik University of Maribor, Faculty of Electrical Engineering and Computer Science Smetanova ulica 17, 2000 Maribor,

More information

ASPECTBOXES CONTROLLING THE VISIBILITY OF ASPECTS

ASPECTBOXES CONTROLLING THE VISIBILITY OF ASPECTS ASPECTBOXES CONTROLLING THE VISIBILITY OF ASPECTS Alexandre Bergel 1 Robert Hirschfeld 2 Siobhán Clarke 1 Pascal Costanza 3 1 Distributed Systems Group Trinity College Dublin, Ireland Alexandre.Bergel@cs.tcd.ie

More information

Towards a formal model of object-oriented hyperslices

Towards a formal model of object-oriented hyperslices Towards a formal model of object-oriented hyperslices Torsten Nelson, Donald Cowan, Paulo Alencar Computer Systems Group, University of Waterloo {torsten,dcowan,alencar}@csg.uwaterloo.ca Abstract This

More information

QSOUL/Aop. Aspect Oriented Software Development using Logic Meta Programming

QSOUL/Aop. Aspect Oriented Software Development using Logic Meta Programming QSOUL/Aop Aspect Oriented Software Development using Logic Meta Programming Johan Brichau, Programming Technology Lab, Vrije Universiteit Brussel, Brussel, Belgium 7/29/10 ESUG 2001, Essen 1 Overview Aspect

More information

A Novel Approach to Unit Testing: The Aspect-Oriented Way

A 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 information

The Essence of AspectJ

The Essence of AspectJ The Essence of AspectJ [Functional Pearl] Mark P. Jones Pacific Software Research Center Oregon Graduate Institute of Science & Technology 20000 NW Walker Road, Beaverton, Oregon 97006, USA mpj@cse.ogi.edu

More information

Separation of Navigation Routing Code in J2EE Web Applications

Separation of Navigation Routing Code in J2EE Web Applications Separation of Navigation Routing Code in J2EE Web Applications Minmin Han and Christine Hofmeister Computer Science and Engineering Dept, Lehigh University 19 Memorial Dr. W., Bethlehem, PA 18015, USA

More information

Profiler Instrumentation Using Metaprogramming Techniques

Profiler 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 information

Control-Flow-Graph-Based Aspect Mining

Control-Flow-Graph-Based Aspect Mining Control-Flow-Graph-Based Aspect Mining Jens Krinke FernUniversität in Hagen, Germany krinke@acm.org Silvia Breu NASA Ames Research Center, USA silvia.breu@gmail.com Abstract Aspect mining tries to identify

More information

extrinsic members RoleB RoleA

extrinsic members RoleB RoleA ASPECT- ORIENTED PROGRAMMING FOR ROLE MODELS Elizabeth A. Kendall Department of Computer Science, Royal Melbourne Institute of Technology GPO Box 2476V, Melbourne, VIC 3001, AUSTRALIA email: kendall@rmit.edu.au

More information

AspectC2C: a Symmetric Aspect Extension to the C Language

AspectC2C: a Symmetric Aspect Extension to the C Language AspectC2C: a Symmetric Aspect Extension to the C Language Danfeng Zhang, Yao Guo, Xiangqun Chen Key laboratory of High Confidence Software Technologies, Ministry of Education Institute of Software, School

More information

An Aspect-Oriented Approach to Modular Behavioral Specification

An Aspect-Oriented Approach to Modular Behavioral Specification Electronic Notes in Theoretical Computer Science 163 (2006) 45 56 www.elsevier.com/locate/entcs An Aspect-Oriented Approach to Modular Behavioral Specification Kiyoshi Yamada 1 Research Center for Information

More information

A Component Assembly Approach Based On Aspect-Oriented Generative Domain Modeling

A Component Assembly Approach Based On Aspect-Oriented Generative Domain Modeling Electronic Notes in Theoretical Computer Science 114 (2005) 119 136 www.elsevier.com/locate/entcs A Component Assembly Approach Based On Aspect-Oriented Generative Domain Modeling Fei Cao, Barrett R. Bryant,

More information

Designing Aspect-Oriented Crosscutting in UML

Designing Aspect-Oriented Crosscutting in UML Designing Aspect-Oriented Crosscutting in UML Dominik Stein, Stefan Hanenberg, and Rainer Unland Institute for Computer Science University of Essen, Germany {dstein shanenbe unlandr}@cs.uni-essen.de ABSTRACT

More information

Introduction to Aspect-Oriented Programming

Introduction to Aspect-Oriented Programming Introduction to Aspect-Oriented Programming LÁSZLÓ LENGYEL, TIHAMÉR LEVENDOVSZKY {lengyel, tihamer}@aut.bme.hu Reviewed Key words: aspect-oriented programming (AOP), crosscutting concerns Aspect-oriented

More information

Improving Software Modularity using AOP

Improving 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 information

Publication granted for ECOOP 2000 purposes

Publication granted for ECOOP 2000 purposes Position paper: Instrumentation aspects require symmetric join points Lutz Dominick Siemens AG, Corporate Technology, ZT SE 2 D-81730 Munich, Germany Lutz.Dominick@mchp.siemens.de March 2000 Publication

More information

Using AOP to build complex data centric component frameworks

Using AOP to build complex data centric component frameworks Using AOP to build complex data centric component frameworks Tom Mahieu, Bart Vanhaute, Karel De Vlaminck, Gerda Janssens, Wouter Joosen Katholieke Universiteit Leuven Computer Science Dept. - Distrinet

More information

Programming 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 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 information

Modularizing Web Services Management with AOP

Modularizing Web Services Management with AOP Modularizing Web Services Management with AOP María Agustina Cibrán, Bart Verheecke { Maria.Cibran, Bart.Verheecke@vub.ac.be System and Software Engineering Lab Vrije Universiteit Brussel 1. Introduction

More information

Characteristics of Runtime Program Evolution

Characteristics of Runtime Program Evolution Characteristics of Runtime Program Evolution Mario Pukall and Martin Kuhlemann School of Computer Science, University of Magdeburg, Germany {pukall, kuhlemann}@iti.cs.uni-magdeburg.de Abstract. Applying

More information

Model Composition Directives

Model Composition Directives Model Composition Directives Greg Straw, Geri Georg, Eunjee Song, Sudipto Ghosh, Robert France, and James M. Bieman Department of Computer Science Colorado State University, Fort Collins, CO, 80523 {straw,

More information

Using Reflective Logic Programming to Describe Domain Knowledge as an Aspect

Using Reflective Logic Programming to Describe Domain Knowledge as an Aspect Using Reflective Logic Programming to Describe Domain Knowledge as an Aspect Maja D Hondt 1, Wolfgang De Meuter 2, and Roel Wuyts 2 1 System and Software Engineering Laboratory 2 Programming Technology

More information

On Adaptable Middleware Product Lines

On Adaptable Middleware Product Lines 207 Middleware 2004 Companion On Adaptable Middleware Product Lines Wasif Gilani University of Erlangen-Nuremberg Erlangen Germany wasif@informatik.unierlangen.de Nabeel Hasan Naqvi Siemens CT, SE 5 Erlangen

More information

Speed vs. Memory Usage - An Approach to Deal with Contrary Aspects

Speed vs. Memory Usage - An Approach to Deal with Contrary Aspects Speed vs. Usage - An Approach to Deal with Contrary Aspects Wolfgang Schult and Andreas Polze Hasso-Plattner-Institute 14440 Potsdam, Germany wolfgang.schult andreas.polze@hpi.uni-potsdam.de ABSTRACT Besides

More information

c Copyright 2004, Vinicius Cardoso Garcia, Eduardo Kessler Piveta, Daniel Lucrédio, Alexandre Alvaro, Eduardo Santana de Almeida, Antonio Francisco

c Copyright 2004, Vinicius Cardoso Garcia, Eduardo Kessler Piveta, Daniel Lucrédio, Alexandre Alvaro, Eduardo Santana de Almeida, Antonio Francisco c Copyright 2004, Vinicius Cardoso Garcia, Eduardo Kessler Piveta, Daniel Lucrédio, Alexandre Alvaro, Eduardo Santana de Almeida, Antonio Francisco do Prado, Luiz Carlos Zancanella. Permission is granted

More information

Design-Based Pointcuts Robustness Against Software Evolution

Design-Based Pointcuts Robustness Against Software Evolution Design-Based Pointcuts Robustness Against Software Evolution Walter Cazzola 1, Sonia Pini 2, and Ancona Massimo 2 1 Department of Informatics and Communication, Università degli Studi di Milano, Italy

More information

Sort-based Refactoring of Crosscutting Concerns to Aspects

Sort-based Refactoring of Crosscutting Concerns to Aspects Sort-based Refactoring of Crosscutting Concerns to Aspects Robin van der Rijst Delft University of Technology rvdrijst@gmail.com Marius Marin Accenture Marius.Marin@accenture.com Arie van Deursen Delft

More information

SERG. Sort-based Refactoring of Crosscutting Concerns to Aspects

SERG. Sort-based Refactoring of Crosscutting Concerns to Aspects Delft University of Technology Software Engineering Research Group Technical Report Series Sort-based Refactoring of Crosscutting Concerns to Aspects Robin van der Rijst, Marius Marin, and Arie van Deursen

More information

Towards a Model-Driven Join Point Model (Extended Version)

Towards a Model-Driven Join Point Model (Extended Version) A Towards a Model-Driven Join Point Model (Extended Version) Walter Cazzola Dipartimento di Informatica e Comunicazione, Università degli Studi di Milano cazzola@dico.unimi.it Antonio Cicchetti, Alfonso

More information

Idioms for Building Software Frameworks in AspectJ

Idioms for Building Software Frameworks in AspectJ Idioms for Building Software Frameworks in AspectJ Stefan Hanenberg 1 and Arno Schmidmeier 2 1 Institute for Computer Science University of Essen, 45117 Essen, Germany shanenbe@cs.uni-essen.de 2 AspectSoft,

More information

Unplugging Components using Aspects

Unplugging Components using Aspects Unplugging Components using s Sergei Kojarski David H. Lorenz Northeastern University College of Computer & Information Science Boston, Massachusetts 02115 USA kojarski,lorenz @ccs.neu.edu ABSTRACT Normally,

More information

AOSD Explained: ASPECT-ORIENTED SYSTEM DEVELOPMENT

AOSD Explained: ASPECT-ORIENTED SYSTEM DEVELOPMENT Explained: ASPECT-ORIENTED SYSTEM DEVELOPMENT Background & Implications Professor Emeritus Birkbeck College 1 AOSD - Background AOSD - Aspect-Oriented Software Development, AOSD - Aspect-Oriented System

More information

Aspect-Oriented Programming On Lisp

Aspect-Oriented Programming On Lisp 6 th International Conference on Applied Informatics Eger, Hungary, January 27 31, 2004. Aspect-Oriented Programming On Lisp Miklós Espák Department of Information Technology, University of Debrecen e-mail:

More information

Information Hiding and Aspect-Oriented Modeling

Information Hiding and Aspect-Oriented Modeling Information Hiding and Aspect-Oriented Modeling Wisam Al Abed and Jörg Kienzle School of Computer Science, McGill University Montreal, QC H3A2A7, Canada Wisam.Alabed@mail.mcgill.ca, Joerg.Kienzle@mcgill.ca

More information

Course 6 7 November Adrian Iftene

Course 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 information

Separation of Distributed Real-Time Embedded Concerns with Theme/UML

Separation of Distributed Real-Time Embedded Concerns with Theme/UML Separation of Distributed Real-Time Embedded Concerns with Theme/UML Cormac Driver, Vinny Cahill and Siobhán Clarke Distributed Systems Group School of Computer Science and Statistics Trinity College Dublin

More information

Separation of Concerns

Separation of Concerns Separation of Concerns Erik Ernst Dept. of Computer Science, University of Aarhus, Denmark eernst@daimi.au.dk Abstract. Separation of concerns is a crucial concept in discussions about software engineering

More information

Deterministically Executing Concurrent Programs for Testing and Debugging

Deterministically Executing Concurrent Programs for Testing and Debugging Deterministically Executing Concurrent Programs for Testing and Debugging Steve MacDonald and Jun Chen David R. Cheriton School of Computer Science University of Waterloo, Waterloo, Ontario, Canada {stevem,

More information

On Aspect-Oriented Technology and Object-Oriented Design Patterns

On Aspect-Oriented Technology and Object-Oriented Design Patterns On Aspect-Oriented Technology and Object-Oriented Design Patterns Ouafa Hachani and Daniel Bardou Equipe SIGMA, LSR-IMAG BP 72 38402 Saint Martin d Hères Cedex, France {Ouafa.Hachani, Daniel.Bardou}@imag.fr

More information

Abstract. Introduction

Abstract. Introduction Aspect of Life-Cycle Control in a C++ Framework Lutz Dominick Siemens AG, Corporate Technology, ZT SE 1 D-81730 Munich, Germany Lutz.Dominick@mchp.siemens.de April 1999 Abstract This paper presents some

More information

Obliviousness, Modular Reasoning, and the Behavioral Subtyping Analogy

Obliviousness, Modular Reasoning, and the Behavioral Subtyping Analogy Obliviousness, Modular Reasoning, and the Behavioral Subtyping Analogy Curtis Clifton and Gary T. Leavens TR #03-01a January 2003, Revised March 2003 Keywords: Spectators, assistants, aspect-oriented programming,

More information

Evolvable Pattern Implementations need Generic Aspects

Evolvable Pattern Implementations need Generic Aspects Evolvable Pattern Implementations need Generic Aspects Günter Kniesel, Tobias Rho Dept. of Computer Science III, University of Bonn Römerstr. 164, D-53117 Bonn, Germany gk,rho@cs.uni-bonn.de Stefan Hanenberg

More information

Refactoring of Aspect-Oriented Software

Refactoring of Aspect-Oriented Software Refactoring of Aspect-Oriented Software Stefan Hanenberg, Christian Oberschulte, Rainer Unland University of Duisburg-Essen, Institute for Computer Science and Business Information Systems (ICB) 45127

More information

Dynamic Weaving for Building Reconfigurable Software Systems

Dynamic 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 information

Beyond Aspect-Oriented Programming: Toward Naturalistic Programming

Beyond Aspect-Oriented Programming: Toward Naturalistic Programming Beyond Aspect-Oriented Programming: Toward Naturalistic Programming Cristina Videira Lopes Institute for Software Research and University of California, Irvine Outline AOP and AspectJ The problem and the

More information

Employing Query Technologies for Crosscutting Concern Comprehension

Employing Query Technologies for Crosscutting Concern Comprehension Employing Query Technologies for Crosscutting Concern Comprehension Marius Marin Accenture The Netherlands Marius.Marin@accenture.com Abstract Common techniques for improving comprehensibility of software

More information

An Aspect-Oriented Language for Exception Handling

An Aspect-Oriented Language for Exception Handling Vol. 47 No. 4 Apr. 2006 GluonJ/R GluonJ/R block recover GluonJ/R An Aspect-Oriented Language for Exception Handling Natsuko Kumahara, Kenichi Kourai and Shigeru Chiba We must often handle exceptions raised

More information

INTRA-SERVICE ADAPTABILITY FOR ECA-CENTRIC WEB SERVICES USING CONTRACT AND ASPECT

INTRA-SERVICE ADAPTABILITY FOR ECA-CENTRIC WEB SERVICES USING CONTRACT AND ASPECT INTRA-SERVICE ADAPTABILITY FOR ECA-CENTRIC WEB SERVICES USING CONTRACT AND ASPECT Syed Saif ur Rahman*, Azeem Lodhi**, Nasreddine Aoumeur**, Claus Rautenstrauch**, Gunter Saake* *Database Research Group,

More information

A Distributed Dynamic Aspect Machine for Scientific Software Development

A Distributed Dynamic Aspect Machine for Scientific Software Development A Distributed Dynamic Aspect Machine for Scientific Software Development Chanwit Kaewkasi Centre for Novel Computing School of Computer Science University of Manchester John R. Gurd Centre for Novel Computing

More information

A Platform-Independent UML Profile for Aspect-Oriented Development

A Platform-Independent UML Profile for Aspect-Oriented Development A Platform-Independent UML Profile for Aspect-Oriented Development Joerg Evermann Memorial University of Newfoundland St. Johnʼs, NL, Canada jevermann@mun.ca Adrian Fiech Memorial University of Newfoundland

More information