Aspect Orientation for Your Language of Choice Florian Heidenreich, Jendrik Johannes, Steffen Zschaler Workshop on Aspect-Oriented Modelling 30 September,

Slides:



Advertisements
Similar presentations
Ernst Oberortner Vienna University of Technology.
Advertisements

Art Foundations Exam 1.What are the Elements of Art? List & write a COMPLETE definition; you may supplement your written definition with Illustrations.
Integrating OCL and Model Transformations in Fujaba Mirko Stölzel, Steffen Zschaler, and Leif Geiger OCLApps 2006, October 2, 2006.
Giancarlo Guizzardi Ontological Foundations for Structural Conceptual Models Kapitel 1–3, vorgestellt von Steffen Zschaler am
Fakultät für informatik informatik 12 technische universität dortmund Specifications and Modeling Peter Marwedel TU Dortmund, Informatik 12 Graphics: ©
Slide 1 Insert your own content. Slide 2 Insert your own content.
Design Patterns.
Introduction to Object Oriented Design
© 2005 by Prentice Hall Appendix 3 Object-Oriented Analysis and Design Modern Systems Analysis and Design Fourth Edition Jeffrey A. Hoffer Joey F. George.
Chapter 7 System Models.
Software Re-engineering
Language Specification using Metamodelling Joachim Fischer Humboldt University Berlin LAB Workshop Geneva
0 - 0.
Teacher Name Class / Subject Date A:B: Write an answer here #1 Write your question Here C:D: Write an answer here.
Fakultät Informatik Institut Software- und Multimediatechnik, Lehrstuhl Softwaretechnologie EMFText Meeting, Dresden, EMFText Code Completion.
Visual Model-based Software Development EUD-Net Workshop, Pisa, Italy September 23 rd, 2002 University of Paderborn Gregor Engels, Stefan Sauer University.
A Close Look at Composition Languages Florian Heidenreich, Jendrik Johannes, Steffen Zschaler, and Uwe Aßmann ACoMM 2008.
Profiles Construction Eclipse ECESIS Project Construction of Complex UML Profiles UPM ETSI Telecomunicación Ciudad Universitaria s/n Madrid 28040,
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 14 Slide 1 Object-oriented Design 1.
11 Contracts CS 4311 Wirfs Brock et al., Designing Object-Oriented Software, Prentice Hall, (Chapter 6)
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 31 Slide 1 Service-centric Software Engineering.
June, 2006 The 11th CAiSE06 International Workshop on Exploring Modeling Methods in Systems Analysis and Design (EMMSAD06), Luxembourg Ontological.
Use Case Diagrams.
Aligning Business and IT Models in Service-Oriented Architectures using BPMN and SoaML Brian Elvesæter, Dima Panfilenko, Sven Jacobi & Christian Hahn MDI2010.
# The Core Cadastre Domain Model Survey Package and Model Driven Architecture Master Thesis Project Approach The Core Cadastre Domain Model.
1 UML ++ Mohamed T IBRAHIM University of Greenwich -UK.
Component-Based Software Engineering Main issues: assemble systems out of (reusable) components compatibility of components.
Database System Concepts and Architecture
آزمایشگاه مهندسی نرم افزار
Chapter 2 Entity-Relationship Data Modeling: Tools and Techniques
Chapter 11 Component-Level Design
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 31 Slide 1 Service-centric Software Engineering 1.
Towards a Standard Interface for Runtime Inspection in AOP Environments OOPSLA Workshop on Tool for AOSD, Seattle, November 2002 Katharina Mehner and Awais.
Modeling Main issues: What do we want to build How do we write this down.
Aspect Oriented Programming. AOP Contents 1 Overview 2 Terminology 3 The Problem 4 The Solution 4 Join point models 5 Implementation 6 Terminology Review.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 32 Slide 1 Aspect-oriented Software Development.
OOP - Object Oriented Programming Object Oriented Programming is an approach to programming that was developed to make large programs easier to manage.
Automated Analysis and Code Generation for Domain-Specific Models George Edwards Center for Systems and Software Engineering University of Southern California.
ASPECT ORIENTED SOFTWARE DEVELOPMENT Prepared By: Ebru Doğan.
Making Courseware Reusable Institute for Program Structures and Data Organization Universität Karlsruhe Germany Khaldoun Ateyeh, Jutta Mülle
Generative Programming. Generic vs Generative Generic Programming focuses on representing families of domain concepts Generic Programming focuses on representing.
Visualization By: Simon Luangsisombath. Canonical Visualization  Architectural modeling notations are ways to organize information  Canonical notation.
1 Model Interface Implementation for Two-Way Obliviousness in Aspect-Oriented Modeling Presented by Wuliang Sun Department of Computer Science Baylor University.
Composing Models: Principles & Techniques © Copyright TUBS & TUD Composing Models: Principles & Techniques Steven Völkel & Jendrik Johannes.
Outline Introduction Problem Statement Object-Oriented Design Aspect-Oriented Design Conclusion Demo.
Xactium xDSLs Run Models Not Code Tony Clark
I. Pribela, M. Ivanović Neum, Content Automated assessment Testovid system Test generator Module generators Conclusion.
Alignment of ATL and QVT © 2006 ATLAS Nantes Alignment of ATL and QVT Ivan Kurtev ATLAS group, INRIA & University of Nantes, France
What is “model transformation”? Distinction between source and target Source may be same as target May be multiple sources, or targets Reaching a fixed.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 18 Slide 1 Software Reuse.
Aspect Oriented Programming Sumathie Sundaresan CS590 :: Summer 2007 June 30, 2007.
Aspect Oriented Programming Gülşah KARADUMAN.
Applications Of Model Weaving Techniques © 2008 INRIA & TUD Applications Of Model Weaving Techniques Hugo Bruneliere, Jendrik Johannes INRIA, TUD.
WP 3.3 © Copyright Xactium, TUBS & TUD How to build a set of DSLs: from Theory to Practise Xactium, TUBS, Jendrik Johannes (TUD)
Generative Programming. Automated Assembly Lines.
REWERSE WG I3: Composition Framework & Tool demo 5 December 2006.
Unified Modeling Language. Object Oriented Methods ► What are object-oriented (OO) methods?  OO methods provide a set of techniques for analyzing, decomposing,
Towards Multi-Paradigm Software Development Valentino Vranić Department of Computer Science and Engineering Faculty of Electrical Engineering.
© Siemens AG, CT SE 2 C O R P O R A T E T E C H N O L O G Y 1 Model-Driven Development for Pluggable Collaborations Iris Groher, Stephan Bleicher, Christa.
Reusable Specification of Non-functional Properties in DSLs Francisco Durán, Steffen Zschaler, and Javier Troya 28 September, 2012.
Weaving a Debugging Aspect into Domain-Specific Language Grammars SAC ’05 PSC Track Santa Fe, New Mexico USA March 17, 2005 Hui Wu, Jeff Gray, Marjan Mernik,
1 Software Design Lecture What’s Design It’s a representation of something that is to be built. i.e. design  implementation.
Advanced Software Development Karl Lieberherr CSG 260 Fall Semester
© Fraunhofer IESE Fraunhofer IESE Multi-Language Development of Embedded Systems Dr. Thomas Kuhn Tel.:
A Framework for Automated and Composable Testing of Component-based Services Miguel A. Jiménez, Ángela Villota, Norha M. Villegas, Gabriel Tamura, Laurence.
Object-Oriented Software Engineering Using UML, Patterns, and Java,
Implementing Language Extensions with Model Transformations
Ivan Kurtev, Klaas van den Berg Software Engineering Group
Implementing Language Extensions with Model Transformations
Modular Language Engineering
Presentation transcript:

Aspect Orientation for Your Language of Choice Florian Heidenreich, Jendrik Johannes, Steffen Zschaler Workshop on Aspect-Oriented Modelling 30 September, 2007

Fakultät Informatik, Institut für Software- und Multimediatechnik, Lehrstuhl Softwaretechnologie TU Dresden, (c) Steffen ZschalerFolie 2 von 14 Outline 1.Motivation 2.Invasive Software Composition 3.Reuseware – ISC for arbitrary languages 4.Aspect Orientation with Reuseware 5.Conclusions

Fakultät Informatik, Institut für Software- und Multimediatechnik, Lehrstuhl Softwaretechnologie TU Dresden, (c) Steffen ZschalerFolie 3 von 14 Motivation What do you look for when developing a domain-specific language? –Fitness for purpose Provision of appropriate concepts for the domain -Supportfor modular development? for components? for reuse? for cross-cutting concerns? Would be good, BUT difficult and time-consuming!

Fakultät Informatik, Institut für Software- und Multimediatechnik, Lehrstuhl Softwaretechnologie TU Dresden, (c) Steffen ZschalerFolie 4 von 14 Motivation (2) DSL embedded in Host Language Standalone DSL Domain-Specific Concepts Available General Engineering Concepts Available (Modules, Components…) Here in particular: Aspect Orientation Support Here in particular: Aspect Orientation Support

Fakultät Informatik, Institut für Software- und Multimediatechnik, Lehrstuhl Softwaretechnologie TU Dresden, (c) Steffen ZschalerFolie 5 von 14 taxComputation: Expression public class TaxPayer { private double income; public double deductTax() { return ; } public class TaxPayer { private double income; public double deductTax() { return ; } public class TaxPayer { private double income; public double deductTax() { return income * 0.4; } public class TaxPayer { private double income; public double deductTax() { return income * 0.4; } Invasive Software Composition Generic grey-box composition technique Based on manipulation of abstract syntax trees / abstract syntax models bind income * income * 0.4 public class TaxPayer { private double income; public double deductTax() { return income * ; } public class TaxPayer { private double income; public double deductTax() { return income * ; }

Fakultät Informatik, Institut für Software- und Multimediatechnik, Lehrstuhl Softwaretechnologie TU Dresden, (c) Steffen ZschalerFolie 6 von 14 Reuseware – ISC for arbitrary languages Language Existing tools Program Reuse Language Reuseware Define components Describe how to compose them Define special-purpose composition operators Define components Describe how to compose them Define special-purpose composition operators Compose with written in executed / edited / analysed with Monolithic Program No Reuse Limited Structuring Capabilities Monolithic Program No Reuse Limited Structuring Capabilities Reuseware provides… Primitives to easily construct composition systems An engine to execute compositions …for any language Reuseware provides… Primitives to easily construct composition systems An engine to execute compositions …for any language

Fakultät Informatik, Institut für Software- und Multimediatechnik, Lehrstuhl Softwaretechnologie TU Dresden, (c) Steffen ZschalerFolie 7 von 14 AOM: CDATAString WSHome: HTMLDocument Aspect Orientation with Reuseware -- Home -- Home Home -- Home... Aspect-Oriented Modelling WSTitle: CDATAString bind Quantification through multiple slots of the same name Quantification through multiple slots of the same name

Fakultät Informatik, Institut für Software- und Multimediatechnik, Lehrstuhl Softwaretechnologie TU Dresden, (c) Steffen ZschalerFolie 8 von 14 Aspect Orientation with Reuseware (2) WSHome: HTMLDocument -- Home -- Home Home -- Home... AOM: CDATAString Aspect-Oriented Modelling WSTitle: CDATAString bind Quantification through fragment queries encapsulating multiple fragments Quantification through fragment queries encapsulating multiple fragments WSProgramme: HTMLDocument -- Programme -- Programme Programme -- Programme... WSTitle: CDATAString WSPages: Set(HTMLDocument)

Fakultät Informatik, Institut für Software- und Multimediatechnik, Lehrstuhl Softwaretechnologie TU Dresden, (c) Steffen ZschalerFolie 9 von 14 Aspect Orientation with Reuseware (3)

Fakultät Informatik, Institut für Software- und Multimediatechnik, Lehrstuhl Softwaretechnologie TU Dresden, (c) Steffen ZschalerFolie 10 von 14 Aspect-Oriented Modelling with Reuseware > FileSystem > +fileSystemPropertyHook > +fileSystemOperationHook() > FSFolder +name > +fsFolderPropertyHook > +fsFolderOperationHook() > FSFile +name +content > +fsFilePropertyHook > +fsFileOperationHook() > fileSystemPackageHook > fileSystemPackageHook fileSystem 1 rootFolder child * 1 parent 1 folder * file

Fakultät Informatik, Institut für Software- und Multimediatechnik, Lehrstuhl Softwaretechnologie TU Dresden, (c) Steffen ZschalerFolie 11 von 14 Aspect-Oriented Modelling with Reuseware (2) observer * > Observer > +update() > Subject > +attach (observer: Observer) > +detach (observer: Observer) > +notify () 1 subject observer 1 * subjects >

Fakultät Informatik, Institut für Software- und Multimediatechnik, Lehrstuhl Softwaretechnologie TU Dresden, (c) Steffen ZschalerFolie 12 von 14 Aspect-Oriented Modelling with Reuseware (3) FileSystemCore FS.* FileSystemAnchor fileSystemOperationHook fs.*OperationHook fileSystemPackageHook ObserverPattern.uml subjectClassSlot observerClassSlot observerOperationAnchor subjectOperationAnchor observerAssociation subjectAssociation

Fakultät Informatik, Institut für Software- und Multimediatechnik, Lehrstuhl Softwaretechnologie TU Dresden, (c) Steffen ZschalerFolie 13 von 14 Conclusions & Outlook DSLs need modularisation techniques, such as AOP Difficult and time consuming to develop Presented a Reuseware Extension to support aspect orientation for arbitrary languages -Including modelling languages such as UML -Supported by graphical editor for defining aspect weaving

Fakultät Informatik, Institut für Software- und Multimediatechnik, Lehrstuhl Softwaretechnologie TU Dresden, (c) Steffen ZschalerFolie 14 von 14 The End! Thank you for your attention! I will happily answer your questions.