@ VUB Department of Computer Science. p. Department of Computer Science 80+ Researchers 10 professors 15 post-doc’s 55 pre-doc’s Software and Programming.

Slides:



Advertisements
Similar presentations
Architecture Representation
Advertisements

©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 12Slide 1 Software Design l Objectives To explain how a software design may be represented.
Aspect Oriented Programming. AOP Contents 1 Overview 2 Terminology 3 The Problem 4 The Solution 4 Join point models 5 Implementation 6 Terminology Review.
An Aspect-Oriented Approach For Web Application Access Control Presented by: Mohamed Hassan Carleton University Carleton University
1 JAC : Aspect Oriented Programming in Java An article review by Yuval Nir and Limor Lahiani.
© 2007 ATLAS Nantes 1 Atlas Model Weaver Use Case: Aspect Oriented Modeling Marcos Didonet Del Fabro Atlas Group (INRIA & LINA), Université de Nantes,
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 32 Slide 1 Aspect-oriented Software Development.
Reseach in DistriNet (department of computer science, K.U.Leuven) General overview and focus on embedded systems task-force.
Variability Oriented Programming – A programming abstraction for adaptive service orientation Prof. Umesh Bellur Dept. of Computer Science & Engg, IIT.
Review Amit Shabtay. March 3rd, 2004 Object Oriented Design Course 2 Review What have we done during the course? Where to learn more? What is for the.
ASPECT ORIENTED SOFTWARE DEVELOPMENT Prepared By: Ebru Doğan.
University of British Columbia Software Practices Lab CAS Seminar 06 Fluid AJ - A Simple Fluid AOP Tool Terry Hon Gregor Kiczales.
SWE Introduction to Software Engineering
UML CASE Tool. ABSTRACT Domain analysis enables identifying families of applications and capturing their terminology in order to assist and guide system.
Object-Oriented Theories for Model Driven Architecture Tony Clark, King’s College, UK. Andy Evans, University of York, UK. Robert France, Colorado University,
WebRatio BPM: a Tool for Design and Deployment of Business Processes on the Web Stefano Butti, Marco Brambilla, Piero Fraternali Web Models Srl, Italy.
Rigorous Fault Tolerance Using Aspects and Formal Methods Shmuel Katz Computer Science Department The Technion Haifa, Israel
1 Ivan Lanese Computer Science Department University of Bologna Italy Concurrent and located synchronizations in π-calculus.
Business Process Modeling Workflow Patterns Ang Chen July 8, 2005.
Generative Programming. Generic vs Generative Generic Programming focuses on representing families of domain concepts Generic Programming focuses on representing.
Course Instructor: Aisha Azeem
Architectural Design Establishing the overall structure of a software system Objectives To introduce architectural design and to discuss its importance.
1 Model Interface Implementation for Two-Way Obliviousness in Aspect-Oriented Modeling Presented by Wuliang Sun Department of Computer Science Baylor University.
Basic Concepts The Unified Modeling Language (UML) SYSC System Analysis and Design.
Deriving AO Software Architectures using the AO-ADL Tool Suite Luis Fernández, Lidia Fuentes, Mónica Pinto, Juan A. Valenzuela Universidad de Málaga
Chapter 7: Architecture Design Omar Meqdadi SE 273 Lecture 7 Department of Computer Science and Software Engineering University of Wisconsin-Platteville.
1 Thomas Cottenier 1,2, Aswin van den Berg 1, Tzilla Elrad 2 1 Software and System Engineering Research Lab, Motorola Labs 2 Concurrent Programming Research.
Workshop on Integrated Application of Formal Languages, Geneva J.Fischer Mappings, Use of MOF for Language Families Joachim Fischer Workshop on.
Towards Executable Aspect-Oriented UML Models 10th Int. Workshop on Aspect-Oriented Modeling (AOM), 6th Int. Conf. on Aspect-Oriented Software Development.
Introduction to MDA (Model Driven Architecture) CYT.
Aspect Oriented Programming Razieh Asadi University of Science & Technology Mazandran Babol Aspect Component Based Software Engineering (ACBSE)
Assessing the Suitability of UML for Modeling Software Architectures Nenad Medvidovic Computer Science Department University of Southern California Los.
Supporting Heterogeneous Users in Collaborative Virtual Environments using AOP CoopIS 2001 September 5-7, Trento, Italy M. Pinto, M. Amor, L. Fuentes,
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.
Composing Adaptive Software Authors Philip K. McKinley, Seyed Masoud Sadjadi, Eric P. Kasten, Betty H.C. Cheng Presented by Ana Rodriguez June 21, 2006.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 32 Slide 1 Aspect-oriented Software Development 1.
Modularizing Web Services Management with AOP María Agustina Cibrán, Bart Verheecke { Maria.Cibran, System and Software Engineering.
MOTOROLA and the Stylized M Logo are registered in the US Patent & Trademark Office. All other product or service names are the property of their respective.
Validated Model Transformation Tihamér Levendovszky Budapest University of Technology and Economics Department of Automation and Applied Informatics Applied.
Aspect Oriented Programming Sumathie Sundaresan CS590 :: Summer 2007 June 30, 2007.
Aspect Oriented Programming Gülşah KARADUMAN.
Generative Programming. Automated Assembly Lines.
A Meta-Level Specification and Profile for AspectJ in UML Joerg Evermann School of Information Management Victoria University of Wellington.
An Ontological Framework for Web Service Processes By Claus Pahl and Ronan Barrett.
Software Engineering Prof. Ing. Ivo Vondrak, CSc. Dept. of Computer Science Technical University of Ostrava
AOP-1 Aspect Oriented Programming. AOP-2 Aspects of AOP and Related Tools Limitation of OO Separation of Concerns Aspect Oriented programming AspectJ.
Towards Multi-Paradigm Software Development Valentino Vranić Department of Computer Science and Engineering Faculty of Electrical Engineering.
CSC480 Software Engineering Lecture 10 September 25, 2002.
Demeter Aspects We study techniques for the emerging area of Aspect-Oriented Software Development and focus on the following areas:  Aspectual Collaborations.
1 Technical & Business Writing (ENG-715) Muhammad Bilal Bashir UIIT, Rawalpindi.
Towards an Aspect-oriented Language Module: Aspects for Petri Nets Tim Molderez, Bart Meyers, Dirk Janssens and Hans Vangheluwe Ansymo Antwerp Systems.
Design-Directed Programming Martin Rinard Daniel Jackson MIT Laboratory for Computer Science.
AOP/cross-cutting What is an aspect?. An aspect is a modular unit that cross-cuts other modular units. What means cross-cutting? Apply AOP to AOP. Tease.
CS223: Software Engineering
2000 Research Overview Dr. Kim Mens Programming Technology Lab Vrije Universiteit Brussel.
Aspect-oriented Code Generation Approaches Abid Mehmood & Dayang N. A. Jawawi Department of Software Engineering Faculty of Computer Science and Information.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 10Slide 1 Chapter 5:Architectural Design l Establishing the overall structure of a software.
Software Engineering Lecture 7
Separation of Concerns in the Design of Distributed Systems
Discussion with Gregor Kiczales at UBC
Demeter Aspects Who We Are Aspectual Collaborations
Model-Driven Analysis Frameworks for Embedded Systems
Implementing Language Extensions with Model Transformations
Luís Ferreira Pires Dick Quartel Remco Dijkman Marten van Sinderen
Structuring Adaptive Applications using AspectJ and AOM
Ivan Kurtev, Klaas van den Berg Software Engineering Group
Implementing Language Extensions with Model Transformations
Software Architecture & Design
Presentation transcript:

@ VUB Department of Computer Science

p. Department of Computer Science 80+ Researchers 10 professors 15 post-doc’s 55 pre-doc’s Software and Programming Language Engineering PROG SSEL Artificial Intelligence ARTI COMO TINF Multimedia IRIS TELE Web- and Information Systems WISE STAR

& Prof. Dr. Theo D’Hondt Prof. Dr. Viviane Jonckers Prof. Dr. Wolfgang De Meuter System and Software Engineerin g Programmin g Technology Labs

p. PROG & SSEL Labs Prof. Dr. Theo D’Hondt Prof. Dr. Viviane Jonckers Prof. Dr. Wolfgang De Meuter Researchers 3 professors 8 post-doc’s 23 pre-doc’s Language Engineering Language Engineering Software Engineering Distribution

p. Programming Language Engineering Aspect-Oriented Programming –Rich pointcut languages –AOP instantiations (components, workflows,...) Declarative Meta Programming Context- & Ambient-Oriented Programming Concurrent& Multicore Programming Quantum Programming Implementation technology –Virtual machines, memory management, language interpreters,... Language Engineering

p. Software Engineering Aspect-Oriented Software Development –Aspect mining, pointcut fragility, aspect interaction –(Visual) IDE Model Driven Engineering –Model consistency checking –Model refinement, extraction, refactoring Service Oriented Software Development –Workflow languages –Service discovery, selection, deployment, management Knowledge-Intensive Software –Explicit and active use of domain knowledge (domain = implementation and business domain) –Static and dynamic program analysis Software Engineering

p. Artefact-driven Research ContextL CARMA Linglets SelfSync Behave KALA Pico FuseJ WSML Jasco Padus CDDToolkit PacoSuite SCE PlatformKit Unify

p. Project-driven Research MoVES AspectLab DyBrowSE CoDAMoS VariBru AOSD-Europe WIT-CASE ORION Caramelos IWT/FWO grants Caramelos CrypTask MoVES Stadium Safe-Is Rococo

@ VUB Software Languages Lab

p. Uniform Modularization of Workflow Concerns using Unify Niels Joncheere, Dirk Deridder, Ragnhild Van Der Straeten, and Viviane Jonckers System and Software Engineering Lab (SSEL) Vrije Universiteit Brussel Pleinlaan 2, 1050 Brussels, Belgium

p. Separation of concerns in workflows - motivation Workflows address several concerns, e.g. order processing, reporting, billing A single, monolithic module is hard to comprehend, maintain, or reuse

p. Separation of concerns in workflows - AOP to the rescue Workflows can be decomposed into sub-workflows –For concerns that align with this decomposition a sub- workflow construct in the language is called for –For concerns that end up scattered across the workflow (e.g. crosscutting concerns) an AOP style solution is needed

p. Separation of concerns in workflows - Early work AO4BPEL (Charfi & Mezini 2004) present a first AOP extension for BPEL –Extra functionality can be added before/after/around each activity –Xpath is used as pointcut language –Advice is expresses in BPEL –A modified BPEL engine is needed Courbis&Finkelstein (2005) also propose an extention to BPEL –Advice is expressed in JAVA

p. PADUS Our proposal for an extension of BPEL developed in the context of a telecom service-delivery platform project (2006) –Rich join point model with Prolog as a pointcut language –Introduces next to before, after and around advice also in advice to add new behaviour to existing elements (e.g. add a branch to a split) –Introduces an explicit deployment construct to specify aspect instantiation to a concrete process –Aspects are statically woven, a regular BPEL engine can run the application

p. Unify Unify supports uniform modularization of workflow concerns: –every concern, regular or crosscutting, is modeled using a sub-workflow –Sub-workflows are connected by explicit connector constructs Unify is a generic framework, it targets a range of concrete workflow languages (Paper and presentation use YAWL concrete syntax for the examples)

p. Activity connectors Specify regular interactions, correspond to the traditional sub-workflow mechanism One concern explicitly 'calls' another concern, the concrete link is specified by the connector in order to decouple both concerns

p. Inversion of control connectors Specify aspect-oriented interactions One concern is added to another concern, without this other concern being aware of it Before, after, and replace connectors correspond to the classic advice types

p. Inversion of control connectors - IN advice in connectors correspond to Padus’s in advice type, and allow inserting a concern as an extra branch to an existing split

p. The FREE advice type - motivation For example, no existing approach supports executing an advice in parallel with a certain part of a workflow if there is not already a split present

p. The FREE advice type The free advice type allows splitting a concern’s control flow into another concern at any point of its execution, and joining at any other point of its execution Repeated use of the free advice may show certain patterns in the way it is used, which can lead to the creation of new advice types

p. Complete Example

p. Base language meta-model  Arbitrary workflows  Composite pattern  Concerns are modeled using CompositeActivities  Control flow is modeled using Transitions  ControlPorts allow intercepting a concern’s control flow

p. Mapping to YAWL notation

p. Base language semantics The semantics of the Unify base language is defined in terms of Petri nets Petri nets are recognized as a good execution model for workflows The mapping from workflows to Petri nets is well- known: –Activities are mapped to Petri net transitions –StartEvents, EndEvents and Transitions are mapped to Petri net places –Splits and Joins are mapped to the appropriate combination of Petri net transition(s) and place(s)

p. Connector meta-model

p. Connector syntax ::= | ::= "CONNECT" "TO" ::= "CONNECT" ::= "BEFORE" | "AFTER" | "REPLACING" | "IN" | ("AND-" | "XOR-") "SPLITTING WHEN" "JOINING BY"

p. Connector semantics  Concerns are woven on the abstract syntax level  The weaving is defined using 13 graph transforma- tion rules (2 in paper, all 13 in technical report)

p. Implementation Workflows, connectors and compositions are parsed into Java objects that conform to our meta- model Connectors are applied to the main concern in the specified ordering Weaving is performed according to the semantics specified by the graph transformations The result is transformed into Petri nets and is executed

p. Future work Implement Padus+ a concrete AOP extension of BPEL Address data perspective (in context of CAE) Address aspect interaction –Supporting the developer in specifying a correct ordering of connectors –Verification of user-defined constraints

p. Conclusion Unify improves on existing research on the following three points: –It supports uniform modularization of both main and crosscutting concerns –It provides more expressive advice types than before, after, and around advice types –It is designed to be independent of a particular concrete syntax through the use of a base language meta model

p. Thanks! Niels Joncheere System and Software Engineering Lab (SSEL) Vrije Universiteit Brussel