How To Write A Program In Ptolemy

Size: px
Start display at page:

Download "How To Write A Program In Ptolemy"

Transcription

1 A Preliminary Study of Quantified, Typed Events Robert Dyer 1, Mehdi Bagherzadeh 1, Hridesh Rajan 1 and Yuanfang Cai 2 1 Iowa State University 2 Drexel University {rdyer,mbagherz,hridesh}@cs.iastate.edu yfcai@cs.drexel.edu March 16, 2010

2 Ptolemy: What, Why? Background An Example in AspectJ An Example in Ptolemy Ptolemy 1 adds quantified, typed events to OO languages 1 Well-defined interfaces between base & crosscutting code 2 Separate type-checking, modular reasoning Combines aspect-oriented (AO) and implicit invocation (II) Solves problems with AO and II: AO: quantification failure, fragile pointcuts, limited context information II: coupling of observers, no replacement of event code, no quantification 1 Rajan and Leavens - ECOOP 08 Dyer, Bagherzadeh, Rajan and Cai 2 Preliminary Study of Quantified, Typed Events

3 Background An Example in AspectJ An Example in Ptolemy This Paper: Why, How, and What? Motivation: Why use Quantified, Typed Events 2? Approach: MobileMedia case study 3 : Change impact and Design value analysis Software engineering metrics: makes implicit coupling in AO explicit and decreases change impact NOV analysis: Ptolemy needs ITDs (so we added it) 2 Rajan and Leavens - ECOOP 08 3 Figueiredo et al - ICSE 08 Dyer, Bagherzadeh, Rajan and Cai 3 Preliminary Study of Quantified, Typed Events

4 Running Example : Figure Editor Background An Example in AspectJ An Example in Ptolemy Elements of drawing Points, Lines, etc All such elements are of type FElement Challenge: Modularize display update policy Whenever an element of drawing changes Update the display Dyer, Bagherzadeh, Rajan and Cai 4 Preliminary Study of Quantified, Typed Events

5 Point and its two Events Background An Example in AspectJ An Example in Ptolemy class Point implements FElement { int x; int y; void setx(int x) { this.x = x; }.. void makeequal(point other) { if(!other.equals(this)) { other.x = this.x; other.y = this.y; }}} Changing FElement is different for two cases. Actual abstract event inside makeequal is the true branch. Dyer, Bagherzadeh, Rajan and Cai 5 Preliminary Study of Quantified, Typed Events

6 Background An Example in AspectJ An Example in Ptolemy Aspect Modularizing Display Updating aspect Update { around(felement fe) : execution(point.set*(..)) && this(fe) (execution(point.make*(..)) && args(fe) if(!fe.equals(this(fe)))) { proceed(fe); Display.update(); }} Enumeration required of two different joinpoints. Had to use if pointcut to get to the real event. Alternative is to refactor makeequal (refactoring doesn t always creates meaningful abstractions). Dyer, Bagherzadeh, Rajan and Cai 6 Preliminary Study of Quantified, Typed Events

7 Ptolemy: Declaring Event Types Background An Example in AspectJ An Example in Ptolemy void event FEChanged { FElement changedfe; } Event type is an abstraction (design this first). Declares context available at the concrete events. Interface, so allows design by contract (DBC) methodology. Dyer, Bagherzadeh, Rajan and Cai 7 Preliminary Study of Quantified, Typed Events

8 Ptolemy: Announcing Events Background An Example in AspectJ An Example in Ptolemy class Point implements FElement { int x; int y; void setx(int x) { announce FEChanged(this) { this.x = x; }} void makeequal(point other) { if(!other.equals(this)) { announce FEChanged(other) { other.x = this.x; other.y = this.y; }}}} Explicit, declarative, typed event announcement. Provides flexibility, e.g. see makeequal. Dyer, Bagherzadeh, Rajan and Cai 8 Preliminary Study of Quantified, Typed Events

9 Ptolemy: Binding to Events Background An Example in AspectJ An Example in Ptolemy class Update { when FEChanged do update; void update (FEChanged next) { invoke(next); //Like AspectJ proceed Display.update(); } public Update() { register(this); //Allows dynamic deployment }} Dyer, Bagherzadeh, Rajan and Cai 9 Preliminary Study of Quantified, Typed Events

10 Research Questions Motivation Background An Example in AspectJ An Example in Ptolemy How do these two designs compare? When do we see benefits of AO? When do we see benefits of Ptolemy? Dyer, Bagherzadeh, Rajan and Cai 10 Preliminary Study of Quantified, Typed Events

11 Benefits of Aspect-oriented Designs Benefits of Quantified, Typed Events Observed Benefits of Aspect-oriented Designs Static crosscutting features are very useful Inter-type declarations (ITDs) Declare Parents Softened Exceptions Dyer, Bagherzadeh, Rajan and Cai 11 Preliminary Study of Quantified, Typed Events

12 Inter-type declarations (ITDs) Benefits of Aspect-oriented Designs Benefits of Quantified, Typed Events Had to be emulated in Ptolemy 4 AspectJ: public T C.field; Ptolemy emulation strategy: static Hashtable fieldmap; public static T getfield(c); public static void setfield(c, T); 4 Ptolemy now supports AspectJ-style ITDs Dyer, Bagherzadeh, Rajan and Cai 12 Preliminary Study of Quantified, Typed Events

13 Declare Parents Motivation Benefits of Aspect-oriented Designs Benefits of Quantified, Typed Events Affects the type hierarchy Only used in revision 8 Effects modeled similar to ITDs Dyer, Bagherzadeh, Rajan and Cai 13 Preliminary Study of Quantified, Typed Events

14 Softened Exceptions Motivation Benefits of Aspect-oriented Designs Benefits of Quantified, Typed Events Aspects handle certain exceptions Softened exceptions don t need declared thrown in the base code Con: Ptolemy version still must declare those exceptions are thrown Pro: Ptolemy s exception handling code is (un)pluggable Dyer, Bagherzadeh, Rajan and Cai 14 Preliminary Study of Quantified, Typed Events

15 Softened Exceptions Motivation Benefits of Aspect-oriented Designs Benefits of Quantified, Typed Events AspectJ version: declare soft: RecordStoreEx : execution(public void ImageAccessor.addImageData(..)); public void addimagedata(..) throws InvalidImageDataEx, PersistenceMechanismEx { Without the aspect, the base code won t compile! Dyer, Bagherzadeh, Rajan and Cai 15 Preliminary Study of Quantified, Typed Events

16 Softened Exceptions Motivation Benefits of Aspect-oriented Designs Benefits of Quantified, Typed Events Ptolemy version: public void addimagedata(..) throws InvalidImageDataEx, PersistenceMechanismEx, RecordStoreEx { Even though RecordStoreEx isn t thrown by the body, it still must be declared! Dyer, Bagherzadeh, Rajan and Cai 16 Preliminary Study of Quantified, Typed Events

17 Benefits of Aspect-oriented Designs Benefits of Quantified, Typed Events Observed Benefits of Quantified, Typed Events No Quantification Failure No Fragile Pointcuts Can easily advise other advice (due to symmetry) Dyer, Bagherzadeh, Rajan and Cai 17 Preliminary Study of Quantified, Typed Events

18 Benefits of Aspect-oriented Designs Benefits of Quantified, Typed Events Solves Quantification Failure Problem In revision 2, the AspectJ version had to expose a while loop (by refactoring of course) Similar problems in other revisions Ptolemy versions did not need to refactor those points to expose to the aspects Dyer, Bagherzadeh, Rajan and Cai 18 Preliminary Study of Quantified, Typed Events

19 Benefits of Aspect-oriented Designs Benefits of Quantified, Typed Events Example of Quantification Failure in AO OO version:.. while (is.read(b)) {.. }.. AspectJ version:.. internalreadimage(..);.. private void internalreadimage(..) { while (is.read(b)) {.. } } Dyer, Bagherzadeh, Rajan and Cai 19 Preliminary Study of Quantified, Typed Events

20 No Quantification Failure Benefits of Aspect-oriented Designs Benefits of Quantified, Typed Events OO version:.. while (is.read(b)) {.. }.. Ptolemy version:.. announce ReadInternalImageAsByteArrayEvent() { while (is.read(b)) {.. } }.. Dyer, Bagherzadeh, Rajan and Cai 20 Preliminary Study of Quantified, Typed Events

21 No Fragile Pointcuts Motivation Benefits of Aspect-oriented Designs Benefits of Quantified, Typed Events Aspects implicitly match the base code Quantified, typed events make this coupling explicit Changes to the base code (e.g., renaming a method) can propogate to the aspects AspectJ: execution(* DeletePhoto(..)) Ptolemy: when DeletePhotoEvent do Handler What if DeletePhoto is renamed to RemovePhoto? Dyer, Bagherzadeh, Rajan and Cai 21 Preliminary Study of Quantified, Typed Events

22 Can easily advise other advice Benefits of Aspect-oriented Designs Benefits of Quantified, Typed Events AspectJ allows you to advise all advice, not specific advice bodies Exception handling modularity was not maintained in later revisions for AspectJ versions Ex: revision 8, aspect lancs.midp.mobilephoto.alternative.music.musicaspect Dyer, Bagherzadeh, Rajan and Cai 22 Preliminary Study of Quantified, Typed Events

23 Benefits of Aspect-oriented Designs Benefits of Quantified, Typed Events after() : addnewmediatoalbum() { try { /* advice body */ } catch (InvalidImageDataException e) {.. } } public void handler(addmediatoalbumevent next){ announce AddNewMediaToAlbumHandlerEvent() { /* advice body */ } } Dyer, Bagherzadeh, Rajan and Cai 23 Preliminary Study of Quantified, Typed Events

24 Software Engineering Metrics Net Options Value Analysis Overview of Change Impact AO vs. Ptolemy Ptolemy design limited change propagation Only had to change 13 event types in revision 7 AO revisions required changing 50 pointcuts in revision 7 No other Ptolemy revision required changing event types 28 pointcuts changed across 4 other AO revisions Dyer, Bagherzadeh, Rajan and Cai 24 Preliminary Study of Quantified, Typed Events

25 Software Engineering Metrics Net Options Value Analysis Net Options Value Analysis AO vs. Ptolemy 5 4 OO AO PTL R1 R2 R3 R4 R5 R6 R7 R8 Dyer, Bagherzadeh, Rajan and Cai 25 Preliminary Study of Quantified, Typed Events

26 Software Engineering Metrics Net Options Value Analysis Net Options Value Analysis AO vs. Ptolemy 5 4 OO AO PTL R1 R2 R3 R4 R5 R6 R7 R8 Ptolemy: higher NOV values for R2-R6 AO: higher value in R6 (Ptolemy doesn t have ITDs) Revisions adding ITDs: R3-R8 Dyer, Bagherzadeh, Rajan and Cai 26 Preliminary Study of Quantified, Typed Events

27 of Study and Future Work Explicit Coupling increases from OO AO Ptolemy Despite more coupling in Ptolemy, lower change impact Net options value increases from OO AO Ptolemy Future Work: Repeat the study with Ptolemy + ITDs Compare to other AO interface features Dyer, Bagherzadeh, Rajan and Cai 27 Preliminary Study of Quantified, Typed Events

28 Questions? ptolemy/ Dyer, Bagherzadeh, Rajan and Cai 28 Preliminary Study of Quantified, Typed Events

29

30 Mobile Media Metrics Tables Citations Releases Table Release Description Type of Change R1 MobilePhoto core R2 Exception handling included Non-functional concern R3 Added photo sorting Optional feature Added editing photo labels Mandatory feature R4 Added favorites Optional feature R5 Allow users to keep multiple copies of photos Optional feature R6 Added send photo to other users by SMS Optional feature R7 Photo management made into two alternatives: photo or music One mandatory feature into two alternatives R8 Add video management Alternative feature Dyer, Bagherzadeh, Rajan and Cai 30 Preliminary Study of Quantified, Typed Events

31 Mobile Media Metrics Tables Citations Change Propagation Coupling and Cohesion Size Metrics Components PCs Event Types R2 R3 R4 R5 R6 R7 R8 OO Added AO PTL OO Removed AO PTL OO Changed AO PTL Added AO Removed AO Changed AO Added PTL Removed PTL Changed PTL Dyer, Bagherzadeh, Rajan and Cai 31 Preliminary Study of Quantified, Typed Events

32 Mobile Media Metrics Tables Citations Change Propagation Coupling and Cohesion Size Metrics LCOO CBC Average Max Average Max R2 R3 R4 R5 R6 R7 R8 OO AO PTL OO AO PTL OO AO PTL OO AO PTL Dyer, Bagherzadeh, Rajan and Cai 32 Preliminary Study of Quantified, Typed Events

33 Mobile Media Metrics Tables Citations Change Propagation Coupling and Cohesion Size Metrics NOO NOA NOC LOC R2 R3 R4 R5 R6 R7 R8 OO AO PTL OO AO PTL OO AO PTL OO AO PTL Dyer, Bagherzadeh, Rajan and Cai 33 Preliminary Study of Quantified, Typed Events

34 Mobile Media Metrics Tables Citations 1 Eduardo Figueiredo, Nelio Cacho, Claudio Sant Anna, Mario Monteiro, Uira Kulesza, Alessandro Garcia, Sergio Soares, Fabiano Ferrari, Safoora Khan, Fernando Castor Filho and Francisco Dantas. Evolving software product lines with aspects: an empirical study on design stability. In ICSE Hridesh Rajan and Gary T. Leavens. Ptolemy: a language with quantified, typed events. In ECOOP Kevin J. Sullivan, William G. Griswold, Yuanfang Cai, and Ben Hallen. The structure and value of modularity in software design. In ESEC/FSE 01. Dyer, Bagherzadeh, Rajan and Cai 34 Preliminary Study of Quantified, Typed Events

Aspect-Oriented Programming

Aspect-Oriented Programming Aspect-Oriented Programming An Introduction to Aspect-Oriented Programming and AspectJ Niklas Påhlsson Department of Technology University of Kalmar S 391 82 Kalmar SWEDEN Topic Report for Software Engineering

More information

Coordinated Visualization of Aspect-Oriented Programs

Coordinated Visualization of Aspect-Oriented Programs Coordinated Visualization of Aspect-Oriented Programs Álvaro F. d Arce 1, Rogério E. Garcia 1, Ronaldo C. M. Correia 1 1 Faculdade de Ciências e Tecnologia Universidade Estadual Paulista Júlio de Mesquita

More information

Fabiano Cutigi Ferrari (CV)

Fabiano Cutigi Ferrari (CV) Fabiano Cutigi Ferrari (CV) Last update: 12/jan/2015 Professional Address: Departamento Computação Universidade Federal de São Carlos (UFSCar) Rodovia Washington Luis, Km 235 13565-905 - São Carlos, SP

More information

Combining Static and Dynamic Impact Analysis for Large-scale Enterprise Systems

Combining Static and Dynamic Impact Analysis for Large-scale Enterprise Systems Combining Static and Dynamic Impact Analysis for Large-scale Enterprise Systems The 15th International Conference on Product-Focused Software Process Improvement, Helsinki, Finland. Wen Chen, Alan Wassyng,

More information

Aspect Oriented Programming. with. Spring

Aspect Oriented Programming. with. Spring Aspect Oriented Programming with Spring Problem area How to modularize concerns that span multiple classes and layers? Examples of cross-cutting concerns: Transaction management Logging Profiling Security

More information

Remote Pointcut - A Language Construct for Distributed AOP

Remote Pointcut - A Language Construct for Distributed AOP Remote Pointcut - A Language Construct for Distributed AOP Muga Nishizawa (Tokyo Tech) Shigeru Chiba (Tokyo Tech) Michiaki Tatsubori (IBM) 1 Pointcut-advice model Joinpoints Program execution is modeled

More information

OASIS: Organic Aspects for System Infrastructure Software Easing Evolution and Adaptation through Natural Decomposition

OASIS: Organic Aspects for System Infrastructure Software Easing Evolution and Adaptation through Natural Decomposition OASIS: Organic Aspects for System Infrastructure Software Easing Evolution and Adaptation through Natural Decomposition Celina Gibbs and Yvonne Coady University of Victoria Abstract It is becoming increasingly

More information

A Joint Point Interfaces for Safe and Flexible Decoupling of Aspects

A Joint Point Interfaces for Safe and Flexible Decoupling of Aspects A Joint Point Interfaces for Safe and Flexible Decoupling of Aspects Eric Bodden, Technische Universität Darmstadt Éric Tanter, University of Chile Milton Inostroza, University of Chile In current aspect-oriented

More information

Specifying and Dynamically Monitoring the Exception Handling Policy

Specifying and Dynamically Monitoring the Exception Handling Policy Specifying and Dynamically Monitoring the Exception Handling Policy Joilson Abrantes Dep. of Informatics and Applied Mathematics Federal University of Rio Grande do Norte Brazil joilson@ppgsc.ufrn.br Roberta

More information

Progress Report Aspect Oriented Programming meets Design Patterns. Academic Programme MSc in Advanced Computer Science. Guillermo Antonio Toro Bayona

Progress Report Aspect Oriented Programming meets Design Patterns. Academic Programme MSc in Advanced Computer Science. Guillermo Antonio Toro Bayona Progress Report Aspect Oriented Programming meets Design Patterns Academic Programme MSc in Advanced Computer Science Guillermo Antonio Toro Bayona Supervisor Dr. John Sargeant The University of Manchester

More information

OOAspectZ and aspect-oriented UML class diagrams for Aspect-oriented software modelling (AOSM)

OOAspectZ and aspect-oriented UML class diagrams for Aspect-oriented software modelling (AOSM) INGENIERÍA E INVESTIGACIÓN VOL. 33 No. 3, DECEMBER - 2013 (66-71) OOAspectZ and aspect-oriented UML class diagrams for Aspect-oriented software modelling (AOSM) OOAspectZ y diagramas de clase orientados

More information

APPLE: Advanced Procedural Programming Language Elements

APPLE: Advanced Procedural Programming Language Elements APPLE: Advanced Procedural Programming Language Elements Christian Heinlein Dept. of Computer Structures, University of Ulm, Germany heinlein@informatik.uni ulm.de Abstract. Today s programming languages

More information

Generating Aspect Code from UML Models

Generating Aspect Code from UML Models Generating Aspect Code from UML Models Iris Groher Siemens AG, CT SE 2 Otto-Hahn-Ring 6 81739 Munich, Germany Iris.Groher@fh-hagenberg.at Stefan Schulze Siemens AG, CT SE 2 Otto-Hahn-Ring 6 81739 Munich,

More information

The Application Monitor Aspect Pattern

The Application Monitor Aspect Pattern The Application Monitor Aspect Pattern Roberta Coelho 1 Ayla Dantas 2 Uirá Kulesza 1 Walfredo Cirne 2 Arndt von Staa 1 Carlos Lucena 1 1 Computer Science Department Pontifical Catholic University of Rio

More information

Aspect-Oriented Composition of Design Patterns: A Quantitative Assessment

Aspect-Oriented Composition of Design Patterns: A Quantitative Assessment ISSN 13-9741 Monografias em Ciência da Computação n 34/ Aspect-Oriented Composition of Design Patterns: A Quantitative Assessment Nélio Alessandro Azevedo Cacho Eduardo Magno Lages Figueiredo Cláudio Nogueira

More information

Integration of Application Business Logic and Business Rules with DSL and AOP

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

Integration of Application Business Logic and Business Rules with DSL and AOP

Integration of Application Business Logic and Business Rules with DSL and AOP e-informatica Software Engineering Journal, Volume 4, Issue, 200 Integration of Application Business Logic and Business Rules with DSL and AOP Bogumiła Hnatkowska, Krzysztof Kasprzyk Faculty of Computer

More information

Chapter 5 Aspect Oriented Programming

Chapter 5 Aspect Oriented Programming 2I1AC3 : Génie logiciel et Patrons de conception Chapter 5 Aspect Oriented Programming J'ai toujours rêvé d'un ordinateur qui soit aussi facile à utiliser qu'un téléphone. Mon rêve s'est réalisé. Je ne

More information

Why Do Developers Neglect Exception Handling?

Why Do Developers Neglect Exception Handling? Why Do Developers Neglect Exception Handling? Hina Shah, Carsten Görg, Mary Jean Harrold College of Computing, Georgia Institute of Technology, Atlanta, Georgia, U.S.A. {hinashah,goerg,harrold}@cc.gatech.edu

More information

Component-Based Software Development with Aspect-Oriented Programming

Component-Based Software Development with Aspect-Oriented Programming Vol. 4, No. 3 Special issue: GPCE Young Researchers Workshop 2004 Component-Based Software Development with Aspect-Oriented Programming Michael Eichberg, Departement of Computer Science, Darmstadt University

More information

Harmless Advice. Daniel S Dantas Princeton University. with David Walker

Harmless Advice. Daniel S Dantas Princeton University. with David Walker Harmless Advice Daniel S Dantas Princeton University with David Walker Aspect Oriented Programming Aspect Oriented Programming IBM - 2004 IBM reports positive results in aspect-oriented programming experiments

More information

Program Comprehension of Feature-Oriented Software Development

Program Comprehension of Feature-Oriented Software Development Program Comprehension of Feature-Oriented Software Development Janet Feigenspan University of Magdeburg, Germany feigensp@ovgu.de Abstract Feature-oriented software development is a promising paradigm

More information

Modularizing Communication Middleware Concerns Using Aspects

Modularizing Communication Middleware Concerns Using Aspects Modularizing Communication Middleware Concerns Using Aspects Cristiano Amaral Maffort and Marco Tulio de PUC Minas, Institute of Informatics Anel Rodoviï rio Km 23,5 - Rua Walter Ianni, 255 31980-110 -

More information

Learn Java - The Application Monitor Aspect Pattern

Learn Java - The Application Monitor Aspect Pattern The Application Monitor Aspect Pattern Roberta Coelho Pontifical Catholic University of Rio de Janeiro (PUC-Rio) Rio de Janeiro, Brazil roberta@inf.puc-rio.br Ayla Dantas Universidade Federal de Campina

More information

Aspects for Testing Aspects?

Aspects for Testing Aspects? Aspects for Testing Aspects? Dehla Sokenou, Stephan Herrmann Technische Universität Berlin Software Engineering Group Sekr. FR 5-6, Franklinstr. 28/29, D-10587 Berlin [dsokenou stephan]@cs.tu-berlin.de

More information

On the Evaluation of an Open Software Engineering Course

On the Evaluation of an Open Software Engineering Course On the Evaluation of an Open Software Engineering Course Eduardo Figueiredo, Juliana Alves Pereira, Lucas Garcia, Luciana Lourdes Software Engineering Lab (LabSoft) - Department of Computer Science (DCC)

More information

AOSD - Enhancing SoC. 07.05.2007 :: INF5120 :: Mansur Ali Abbasi. AOSD :: Aspect Oriented Software Development SoC :: Separation of Concerns

AOSD - Enhancing SoC. 07.05.2007 :: INF5120 :: Mansur Ali Abbasi. AOSD :: Aspect Oriented Software Development SoC :: Separation of Concerns 07.05.2007 :: INF5120 :: Mansur Ali Abbasi AOSD - Enhancing SoC AOSD :: Aspect Oriented Software Development SoC :: Separation of Concerns 1 NB! This lecture leans on conciseness rather than completeness

More information

Change Impact Analysis for AspectJ Programs

Change Impact Analysis for AspectJ Programs Change Impact Analysis for AspectJ Programs Sai Zhang, Zhongxian Gu, Yu Lin, Jianjun Zhao School of Software Shanghai Jiao Tong University 8 Dongchuan Road, Shanghai, China {saizhang, ausgoo, linyu198,

More information

AIPLE-IS: An Approach to Develop Product Lines for Information Systems Using Aspects

AIPLE-IS: An Approach to Develop Product Lines for Information Systems Using Aspects SBCARS 2007 AIPLE-IS: An Approach to Develop Product Lines for Information Systems Using Aspects Rosana T. Vaccare Braga, Fernão S. Rodrigues Germano, Stanley F. Pacios, Paulo C. Masiero Instituto de Ciências

More information

Analyzing Software Updates: Should You Build a Dynamic Updating Infrastructure?

Analyzing Software Updates: Should You Build a Dynamic Updating Infrastructure? Analyzing Software Updates: Should You Build a Dynamic Updating Infrastructure? Bashar Gharaibeh, Hridesh Rajan, and J. Morris Chang Iowa State University Abstract. The ability to adapt software systems

More information

Evolution of Web Applications with Aspect-Oriented Design Patterns

Evolution of Web Applications with Aspect-Oriented Design Patterns Evolution of Web Applications with Aspect-Oriented Design Patterns Michal Bebjak 1, Valentino Vranić 1, and Peter Dolog 2 1 Institute of Informatics and Software Engineering Faculty of Informatics and

More information

Enterprise 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 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 10 Copyright 2010 Manning Publications

More information

Aspect-Oriented Multi-Client Chat Application

Aspect-Oriented Multi-Client Chat Application Aspect-Oriented Multi-Client Chat Application Duygu Ceylan, Gizem Gürcüoğlu, Sare G. Sevil Department of Computer Engineering, Bilkent University Ankara, Turkey 06800 dceylan, gizem, sareg @cs.bilkent.edu.tr

More information

Service Oriented Architectures

Service Oriented Architectures 8 Service Oriented Architectures Gustavo Alonso Computer Science Department Swiss Federal Institute of Technology (ETHZ) alonso@inf.ethz.ch http://www.iks.inf.ethz.ch/ The context for SOA A bit of history

More information

Identifying Code Smells with Multiple Concern Views

Identifying Code Smells with Multiple Concern Views 2010 Brazilian Symposium on Software Engineering Identifying Code Smells with Multiple Concern Views Glauco de F. Carneiro 1, Marcos Silva 2, Leandra Mara 2, Eduardo Figueiredo 3, Claudio Sant Anna 1,

More information

DEPENDENCE FLOW GRAPH FOR ANALYSIS OF ASPECT- ORIENTED PROGRAMS

DEPENDENCE FLOW GRAPH FOR ANALYSIS OF ASPECT- ORIENTED PROGRAMS DEPENDENCE FLOW GRAPH FOR ANALYSIS OF ASPECT- ORIENTED PROGRAMS Syarbaini Ahmad 1, Abdul Azim A. Ghani 2,Fazlida Mohd Sani 3 1 Faculty of Science & Info Technology, International Islamic University College

More information

Software Engineering Process. Kevin Cathey

Software Engineering Process. Kevin Cathey Software Engineering Process Kevin Cathey Where are we going? Last Week iphone Application Technologies Workshop This Week Software Engineering Process Thanksgiving Break Write some code, yo 2 Dec Options:

More information

Using an Aspect Oriented Layer in SOA for Enterprise Application Integration

Using an Aspect Oriented Layer in SOA for Enterprise Application Integration 19 Using an Aspect Oriented Layer in SOA for Enterprise Application Integration Chinthaka D. Induruwana School of Computer Science, University of Manchester, Kilburn Building, Oxford Road M13 9PL induruwc@cs.man.ac.uk

More information

Designing with Exceptions. CSE219, Computer Science III Stony Brook University http://www.cs.stonybrook.edu/~cse219

Designing with Exceptions. CSE219, Computer Science III Stony Brook University http://www.cs.stonybrook.edu/~cse219 Designing with Exceptions CSE219, Computer Science III Stony Brook University http://www.cs.stonybrook.edu/~cse219 Testing vs. Debugging Testing Coding Does the code work properly YES NO 2 Debugging Testing

More information

Computing Concepts with Java Essentials

Computing Concepts with Java Essentials 2008 AGI-Information Management Consultants May be used for personal purporses only or by libraries associated to dandelon.com network. Computing Concepts with Java Essentials 3rd Edition Cay Horstmann

More information

Refactoring and AOP under Scrutiny

Refactoring and AOP under Scrutiny Computer Science and Engineering 2014, 4(1): 7-16 DOI: 10.5923/j.computer.20140401.02 Refactoring and AOP under Scrutiny Sandra Casas *, Cecilia Fuentes Zamorano GISP, Instituto de Tecnología Aplicada,

More information

Automated Data Collection for Usability Evaluation in Early Stages of Application Development

Automated Data Collection for Usability Evaluation in Early Stages of Application Development Automated Data Collection for Usability Evaluation in Early Stages of Application Development YONGLEI TAO School of Computing and Information Systems Grand Valley State University Allendale, MI 49401 USA

More information

Percerons: A web-service suite that enhance software development process

Percerons: A web-service suite that enhance software development process Percerons: A web-service suite that enhance software development process Percerons is a list of web services, see http://www.percerons.com, that helps software developers to adopt established software

More information

Perspectives on Automated Testing of Aspect-Oriented Programs

Perspectives on Automated Testing of Aspect-Oriented Programs Perspectives on Automated Testing of Aspect-Oriented Programs ABSTRACT Tao Xie Department of Computer Science North Carolina State University Raleigh, NC 27695 xie@csc.ncsu.edu Aspect-oriented software

More information

Distributed Systems Development: Can we Enhance Evolution by using AspectJ?

Distributed Systems Development: Can we Enhance Evolution by using AspectJ? Distributed Systems Development: Can we Enhance Evolution by using AspectJ? Cormac Driver Siobhán Clarke Distributed Systems Group, Computer Science Department, Trinity College Dublin, Ireland {Cormac.Driver,

More information

XPoints: Extension Interfaces for Multilayered Applications

XPoints: Extension Interfaces for Multilayered Applications XPoints: Extension Interfaces for Multilayered Applications Mohamed Aly, Anis Charfi, Sebastian Erdweg, and Mira Mezini Applied Research, SAP AG firstname.lastname@sap.com Software Technology Group, TU

More information

Aspect Refactoring Verifier

Aspect Refactoring Verifier Aspect Refactoring Verifier Charles Zhang and Julie Waterhouse Hans-Arno Jacobsen Centers for Advanced Studies Department of Electrical and IBM Toronto Lab Computer Engineering juliew@ca.ibm.com and Department

More information

Dart a modern web language

Dart a modern web language Dart a modern web language or why web programmers need more structure Kasper Lund & Lars Bak Software engineers, Google Inc. Object-oriented language experience: 26 + 12 years The Web Is Fantastic The

More information

A Classification Framework for Pointcut Languages in Runtime Monitoring

A Classification Framework for Pointcut Languages in Runtime Monitoring A Classification Framework for Pointcut Languages in Runtime Monitoring Karl Klose and Klaus Ostermann University of Aarhus, Denmark {klose,ko}@cs.au.dk Abstract. In runtime monitoring and aspect-oriented

More information

A Review of Aspect Maps, Java

A Review of Aspect Maps, Java AspectMaps: A Scalable Visualization of Join Point Shadows Johan Fabry PLEIAD Laboratory Computer Science Department (DCC) University of Chile http://pleiad.cl Andy Kellens Software Languages Lab Vrije

More information

Representing Change by Aspect

Representing Change by Aspect Representing Change by Aspect Peter Dolog, Valentino Vranić and Mária Bieliková Dept. of Computer Science and Engineering Faculty of Electrical Engineering and Information Technology Slovak University

More information

Aspectual Mixin Layers

Aspectual Mixin Layers Aspectual Mixin Layers Sven Apel, Thomas Leich, and Gunter Saake Department of Computer Science University of Magdeburg, Germany email: {apel,leich,saake}@iti.cs.uni-magdeburg.de Abstract. Feature-Oriented

More information

The Concern-Oriented Software Architecture Analysis Method

The Concern-Oriented Software Architecture Analysis Method The Concern-Oriented Software Architecture Analysis Method Author: E-mail: Student number: Supervisor: Graduation committee members: Frank Scholten f.b.scholten@cs.utwente.nl s0002550 Dr. ir. Bedir Tekinerdoǧan

More information

Android Security. Giovanni Russello g.russello@auckland.ac.nz

Android Security. Giovanni Russello g.russello@auckland.ac.nz Android Security Giovanni Russello g.russello@auckland.ac.nz N-Degree of Separation Applications can be thought as composed by Main Functionality Several Non-functional Concerns Security is a non-functional

More information

A COMPARISON OF AOP BASED MONITORING TOOLS

A COMPARISON OF AOP BASED MONITORING TOOLS STUDIA UNIV. BABEŞ BOLYAI, INFORMATICA, Volume LVI, Number 3, 2011 A COMPARISON OF AOP BASED MONITORING TOOLS GRIGORETA S. COJOCAR AND DAN COJOCAR Abstract. The performance requirements of a software system

More information

Composing Concerns with a Framework Approach

Composing Concerns with a Framework Approach Composing Concerns with a Framework Approach Constantinos A. Constantinides 1,2 and Tzilla Elrad 2 1 Mathematical and Computer Sciences Department Loyola University Chicago cac@cs.luc.edu 2 Concurrent

More information

Aspect-Oriented Software Development

Aspect-Oriented Software Development Aspect-Oriented Software Development Dr. Awais Rashid Computing Department Lancaster University, UK Awais Rashid, 2005. Fundamental to Next Generation Software AOSD is vital to our [IBM Software Group

More information

Code Contracts User Manual

Code Contracts User Manual Code Contracts User Manual Microsoft Corporation August 14, 2013 What s New? We fixed the debug information generated by the rewriter for async and iterator methods so that locals now appear again when

More information

Topics in Software Reliability

Topics in Software Reliability Dependable Software Systems Topics in Software Reliability Material drawn from [Somerville, Mancoridis] What is Software Reliability? A Formal Definition: Reliability is the probability of failure-free

More information

Rigorous Software Development CSCI-GA 3033-009

Rigorous Software Development CSCI-GA 3033-009 Rigorous Software Development CSCI-GA 3033-009 Instructor: Thomas Wies Spring 2013 Lecture 5 Disclaimer. These notes are derived from notes originally developed by Joseph Kiniry, Gary Leavens, Erik Poll,

More information

The Service Revolution software engineering without programming languages

The Service Revolution software engineering without programming languages The Service Revolution software engineering without programming languages Gustavo Alonso Institute for Pervasive Computing Department of Computer Science Swiss Federal Institute of Technology (ETH Zurich)

More information

CS 451 Software Engineering Winter 2009

CS 451 Software Engineering Winter 2009 CS 451 Software Engineering Winter 2009 Yuanfang Cai Room 104, University Crossings 215.895.0298 yfcai@cs.drexel.edu 1 Testing Process Testing Testing only reveals the presence of defects Does not identify

More information

TOOLS FOR TEAM DEVELOPMENT: WHY VENDORS ARE FINALLY GETTING IT RIGHT

TOOLS FOR TEAM DEVELOPMENT: WHY VENDORS ARE FINALLY GETTING IT RIGHT TOOLS FOR TEAM DEVELOPMENT: WHY VENDORS ARE FINALLY GETTING IT RIGHT DAVID CHAPPELL DECEMBER 2008 SPONSORED BY MICROSOFT CORPORATION COPYRIGHT 2008 CHAPPELL & ASSOCIATES Most software development is done

More information

CSC 408F/CSC2105F Lecture Notes

CSC 408F/CSC2105F Lecture Notes CSC 408F/CSC2105F Lecture Notes These lecture notes are provided for the personal use of students taking CSC 408H/CSC 2105H in the Fall term 2004/2005 at the University of Toronto. Copying for purposes

More information

Aspect-oriented Refactoring of a J2EE Framework for Security and Validation Concerns

Aspect-oriented Refactoring of a J2EE Framework for Security and Validation Concerns Aspect-oriented Refactoring of a J2EE Framework for Security and Validation Concerns CS 586 Aspect-Oriented Software Development Project Group Members : Başak Çakar, Elif Demirli, Şadiye Kaptanoğlu Bilkent

More information

Automated Test Generation for AspectJ Programs

Automated Test Generation for AspectJ Programs Automated Test Generation for AspectJ Programs Tao Xie 1 Jianjun Zhao 2 Darko Marinov 3 David Notkin 1 1 Department of Computer Science & Engineering, University of Washington, USA 2 Department of Computer

More information

An Aspect-Oriented Programming Language for Agile Software Development

An Aspect-Oriented Programming Language for Agile Software Development A Dissertation Submitted to Department of Mathematical and Computing Sciences, Graduate School of Information Science and Engineering, Tokyo Institute of Technology In Partial Fulfillment of the Requirements

More information

On Type Restriction of Around Advice and Aspect Interference

On Type Restriction of Around Advice and Aspect Interference On Type Restriction of Around Advice and Aspect Interference Hidehiko Masuhara Graduate School of Arts and Sciences, University of Tokyo masuhara@acm.org Abstract. Statically typed AOP languages restrict

More information

An Aspect-Oriented Product Line Framework to Support the Development of Software Product Lines of Web Applications

An Aspect-Oriented Product Line Framework to Support the Development of Software Product Lines of Web Applications An Aspect-Oriented Product Line Framework to Support the Development of Software Product Lines of Web Applications Germán Harvey Alférez Salinas Department of Computer Information Systems, Mission College,

More information

Encapsulating Crosscutting Concerns in System Software

Encapsulating Crosscutting Concerns in System Software Encapsulating Crosscutting Concerns in System Software Christa Schwanninger, Egon Wuchner, Michael Kircher Siemens AG Otto-Hahn-Ring 6 81739 Munich Germany {christa.schwanninger,egon.wuchner,michael.kircher}@siemens.com

More information

Remote Method Invocation

Remote Method Invocation Remote Method Invocation The network is the computer Consider the following program organization: method call SomeClass AnotherClass returned object computer 1 computer 2 If the network is the computer,

More information

Monitoring Goals With Aspects

Monitoring Goals With Aspects Monitoring Goals With Aspects Andrew Dingwall-Smith Department of Computer Science University College London Gower Street London, WC1E 6BT, UK A.Dingwall-Smith@cs.ucl.ac.uk Anthony Finkelstein Department

More information

Extending an Open-Source BPEL Engine with Aspect-Oriented Programming

Extending an Open-Source BPEL Engine with Aspect-Oriented Programming Extending an Open-Source BPEL Engine with Aspect-Oriented Programming Alejandro Houspanossian and Mariano Cilia UNICEN, Faculty of Sciences Campus Universitario Tandil, Argentina. {ahouspan,mcilia}@exa.unicen.edu.ar

More information

Aspect-Oriented Web Development in PHP

Aspect-Oriented Web Development in PHP Aspect-Oriented Web Development in PHP Jorge Esparteiro Garcia Faculdade de Engenharia da Universidade do Porto jorge.garcia@fe.up.pt Abstract. Aspect-Oriented Programming (AOP) provides another way of

More information

Table of Contents. Background and Goal... 3. Crafting a Plan for SDN... 4. Define SDN... 4. Identify the Primary Opportunities...

Table of Contents. Background and Goal... 3. Crafting a Plan for SDN... 4. Define SDN... 4. Identify the Primary Opportunities... How to Plan for SDN Table of Contents Background and Goal... 3 Crafting a Plan for SDN... 4 Define SDN... 4 Identify the Primary Opportunities... 4 Identify the Key Metrics... 4 Define the Scope of Possible

More information

An Android-based Instant Message Application

An Android-based Instant Message Application An Android-based Instant Message Application Qi Lai, Mao Zheng and Tom Gendreau Department of Computer Science University of Wisconsin - La Crosse La Crosse, WI 54601 mzheng@uwlax.edu Abstract One of the

More information

Product Overview and Examples

Product Overview and Examples Product Overview and Examples Advanced SQL Procedure Example Example Scenario Calculate the daily sale for each customer. This is a recalculation, the entries may already exist and then only the values

More information

Object Oriented Design

Object Oriented Design Object Oriented Design Kenneth M. Anderson Lecture 20 CSCI 5828: Foundations of Software Engineering OO Design 1 Object-Oriented Design Traditional procedural systems separate data and procedures, and

More information

Compose*: Language-Independent Aspects for.net

Compose*: Language-Independent Aspects for.net Compose*: Language-Independent Aspects for.net Lodewijk M.J. Bergmans [lbergmans@acm.org] TRESE group,, The Netherlands [] 1 Intro: Aspect-Orientation Aspect-Oriented Software Development (AOSD): Improve

More information

The Sun Certified Associate for the Java Platform, Standard Edition, Exam Version 1.0

The Sun Certified Associate for the Java Platform, Standard Edition, Exam Version 1.0 The following applies to all exams: Once exam vouchers are purchased you have up to one year from the date of purchase to use it. Each voucher is valid for one exam and may only be used at an Authorized

More information

Evaluating the Use of AOP and MDA in Web Service Development

Evaluating the Use of AOP and MDA in Web Service Development Evaluating the Use of AOP and MDA in Web Service Development Guadalupe Ortiz Quercus Software Engineering Group Centro Universitario de Mérida, UEX Mérida, Spain gobellot@unex.es Behzad Bordbar School

More information

Run-Time Assertion Checking with Énfasis Verificación de Aseveraciones a Tiempo de Ejecución con Énfasis

Run-Time Assertion Checking with Énfasis Verificación de Aseveraciones a Tiempo de Ejecución con Énfasis Run-Time Assertion Checking with Énfasis Verificación de Aseveraciones a Tiempo de Ejecución con Énfasis José Oscar Olmedo Aguirre and Ulises Juárez Martínez Department of Electrical Engineering, CINVESTAV

More information

CONTRASTING ASPECTUAL DECOMPOSITIONS WITH OBJECT- ORIENTED DESIGNS IN CONTEXT-AWARE MOBILE APPLICATIONS

CONTRASTING ASPECTUAL DECOMPOSITIONS WITH OBJECT- ORIENTED DESIGNS IN CONTEXT-AWARE MOBILE APPLICATIONS Desarrollo de Software Orientado a Aspectos, DSOA 2006 Asociado a XV Jornadas de Ingeniería del Software y Bases de Datos J. Araújo, J. Hernández, E. Navarro y M. Pinto (Eds) Sitges (Barcelona), Octubre

More information

2/9/2010. Standard Approach to Distribution. Remote Procedure Calls (RPC) Example: Music Jukebox in the Cloud

2/9/2010. Standard Approach to Distribution. Remote Procedure Calls (RPC) Example: Music Jukebox in the Cloud Remote Batch Invocation for Compositional Object Services CPS 296.1 9 th Feb 2010 Vamsidhar Thummala Content borrowed from William R Cook Standard Approach to Distribution Step I: Design a language Clean

More information

Keywords Aspect-Oriented Modeling, Rule-based graph transformations, Aspect, pointcuts, crosscutting concerns.

Keywords Aspect-Oriented Modeling, Rule-based graph transformations, Aspect, pointcuts, crosscutting concerns. Volume 4, Issue 5, May 2014 ISSN: 2277 128X International Journal of Advanced Research in Computer Science and Software Engineering Research Paper Available online at: www.ijarcsse.com Functional and Non-Functional

More information

Chap 4. Using Metrics To Manage Software Risks

Chap 4. Using Metrics To Manage Software Risks Chap 4. Using Metrics To Manage Software Risks. Introduction 2. Software Measurement Concepts 3. Case Study: Measuring Maintainability 4. Metrics and Quality . Introduction Definition Measurement is the

More information

Concern Impact Analysis in Configurable System Software The AUTOSAR OS Case

Concern Impact Analysis in Configurable System Software The AUTOSAR OS Case Concern Impact Analysis in Configurable System Software The AUTOSAR OS Case Wanja Hofer, Daniel Lohmann, Wolfgang Schröder-Preikschat Department of Computer Science 4 Friedrich-Alexander University Erlangen-Nuremberg

More information

Software Metrics. Lord Kelvin, a physicist. George Miller, a psychologist

Software Metrics. Lord Kelvin, a physicist. George Miller, a psychologist Software Metrics 1. Lord Kelvin, a physicist 2. George Miller, a psychologist Software Metrics Product vs. process Most metrics are indirect: No way to measure property directly or Final product does not

More information

Aspect-Oriented Change Realization Based on Multi-Paradigm Design with Feature Modeling

Aspect-Oriented Change Realization Based on Multi-Paradigm Design with Feature Modeling Aspect-Oriented Change Realization Based on Multi-Paradigm Design with Feature Modeling Radoslav Menkyna and Valentino Vranić Institute of Informatics and Software Engineering Faculty of Informatics and

More information

Unification of AOP and FOP in Model Driven Development

Unification of AOP and FOP in Model Driven Development Chapter 5 Unification of AOP and FOP in Model Driven Development I n this chapter, AOP and FOP have been explored to analyze the similar and different characteristics. The main objective is to justify

More information

Technion - Computer Science Department - Ph.D. Thesis PHD-2010-05 - 2010 Using Aspects to Support the Software Process.

Technion - Computer Science Department - Ph.D. Thesis PHD-2010-05 - 2010 Using Aspects to Support the Software Process. Using Aspects to Support the Software Process Oren Mishali Using Aspects to Support the Software Process Research Thesis Submitted in partial fulfillment of the requirements for the degree of Doctor of

More information

Fundamentals of Java Programming

Fundamentals of Java Programming Fundamentals of Java Programming This document is exclusive property of Cisco Systems, Inc. Permission is granted to print and copy this document for non-commercial distribution and exclusive use by instructors

More information

An Exception Monitoring System for Java

An Exception Monitoring System for Java An Exception Monitoring System for Java Heejung Ohe and Byeong-Mo Chang Department of Computer Science, Sookmyung Women s University, Seoul 140-742, Korea {lutino, chang@sookmyung.ac.kr Abstract. Exception

More information

Java with Eclipse: Setup & Getting Started

Java with Eclipse: Setup & Getting Started Java with Eclipse: Setup & Getting Started Originals of slides and source code for examples: http://courses.coreservlets.com/course-materials/java.html Also see Java 8 tutorial: http://www.coreservlets.com/java-8-tutorial/

More information

Service-Oriented Architectures

Service-Oriented Architectures Architectures Computing & 2009-11-06 Architectures Computing & SERVICE-ORIENTED COMPUTING (SOC) A new computing paradigm revolving around the concept of software as a service Assumes that entire systems

More information

Using Object Teams for State-Based Class Testing

Using Object Teams for State-Based Class Testing Using Object Teams for State-Based Class Testing Bericht-Nr. 2004/10 Dehla Sokenou, Stephan Herrmann ISSN 1436-9915 Using Object Teams for State-Based Class Testing Dehla Sokenou, Stephan Herrmann Abstract

More information

A common framework for aspect mining based on crosscutting concern sorts

A common framework for aspect mining based on crosscutting concern sorts A common framework for aspect mining based on crosscutting concern sorts Marius Marin Delft University of Technology The Netherlands A.M.Marin@tudelft.nl Leon Moonen Delft Univ. of Technology & CWI The

More information

Adaptable Access Control for Electronic Medical Records

Adaptable Access Control for Electronic Medical Records Adaptable Access Control for Electronic Medical Records Kung Chen a, Yuan-Chun Chang a, and Da-Wei Wang b a Department of Computer Science, National Chengchi University b Institute of Information Science,

More information

e ag u g an L g ter lvin v E ram Neal G g ro va P Ja

e ag u g an L g ter lvin v E ram Neal G g ro va P Ja Evolving the Java Programming Language Neal Gafter Overview The Challenge of Evolving a Language Design Principles Design Goals JDK7 and JDK8 Challenge: Evolving a Language What is it like trying to extend

More information