What is “model transformation”? Distinction between source and target Source may be same as target May be multiple sources, or targets Reaching a fixed.

Slides:



Advertisements
Similar presentations
Ch:8 Design Concepts S.W Design should have following quality attribute: Functionality Usability Reliability Performance Supportability (extensibility,
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
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 32 Slide 1 Aspect-oriented Software Development.
System Modelling System modelling helps the analyst to understand the functionality of the system and models are used to communicate with customers. Different.
Classes and Object- Oriented... tMyn1 Classes and Object-Oriented Programming The essence of object-oriented programming is that you write programs in.
Object-Oriented Analysis and Design
Page 1 Building Reliable Component-based Systems Chapter 7 - Role-Based Component Engineering Chapter 7 Role-Based Component Engineering.
SPECIFYING COGNITIVE MODELS Using Patterns and Conflicts A. Macklem, F. Mili Oakland University S. Dungrani TARDEC June, 2004.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 8 Slide 1 System models September 29, 2008.
Soft. Eng. II, Spr. 2002Dr Driss Kettani, from I. Sommerville1 CSC-3325: Chapter 7 Title : Object Oriented Analysis and Design Reading: I. Sommerville,
Creating Architectural Descriptions. Outline Standardizing architectural descriptions: The IEEE has published, “Recommended Practice for Architectural.
©Ian Sommerville 2006Software Engineering, 7th edition. Chapter 14 Slide 1 Object-oriented Design.
Modified from Sommerville’s originalsSoftware Engineering, 7th edition. Chapter 8 Slide 1 System models.
1/31 CS 426 Senior Projects Chapter 1: What is UML? Chapter 2: What is UP? [Arlow and Neustadt, 2005] January 22, 2009.
© Copyright Eliyahu Brutman Programming Techniques Course.
Generative Programming. Generic vs Generative Generic Programming focuses on representing families of domain concepts Generic Programming focuses on representing.
Object-oriented design CS 345 September 20,2002. Unavoidable Complexity Many software systems are very complex: –Many developers –Ongoing lifespan –Large.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 7 Slide 1 System models l Abstract descriptions of systems whose requirements are being.
A Development Process Lecture Oo13 Objectory based method.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 7 Slide 1 System models l Abstract descriptions of systems whose requirements are being.
Chapter 4 System Models A description of the various models that can be used to specify software systems.
System models Abstract descriptions of systems whose requirements are being analysed Abstract descriptions of systems whose requirements are being analysed.
© 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 1 A Discipline of Software Design.
Introduction to MDA (Model Driven Architecture) CYT.
Assessing the Suitability of UML for Modeling Software Architectures Nenad Medvidovic Computer Science Department University of Southern California Los.
An Introduction to Design Patterns. Introduction Promote reuse. Use the experiences of software developers. A shared library/lingo used by developers.
Copyright 2002 Prentice-Hall, Inc. Modern Systems Analysis and Design Third Edition Jeffrey A. Hoffer Joey F. George Joseph S. Valacich Chapter 20 Object-Oriented.
Abstract Factory Design Pattern making abstract things.
SOFTWARE DESIGN.
11 Chapter 11 Object-Oriented Databases Database Systems: Design, Implementation, and Management 4th Edition Peter Rob & Carlos Coronel.
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.
Chapter 7 System models.
A Meta-Level Specification and Profile for AspectJ in UML Joerg Evermann School of Information Management Victoria University of Wellington.
System models l Abstract descriptions of systems whose requirements are being analysed.
Sommerville 2004,Mejia-Alvarez 2009Software Engineering, 7th edition. Chapter 8 Slide 1 System models.
Unified Modeling Language © 2002 by Dietrich and Urban1 ADVANCED DATABASE CONCEPTS Unified Modeling Language Susan D. Urban and Suzanne W. Dietrich Department.
1 Software Development Software Engineering is the study of the techniques and theory that support the development of high-quality software The focus is.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 7 Slide 1 Chapter 7 System Models.
Sheet 1 DocEng’03, Grenoble, November 2003 Model Driven Architecture based XML Processing Ivan Kurtev, Klaas van den Berg University of Twente, the Netherlands.
What is Object-Oriented?  Organization of software as a collection of discreet objects that incorporate both data structure and behavior.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 8 Slide 1 System models.
Ch- 8. Class Diagrams Class diagrams are the most common diagram found in modeling object- oriented systems. Class diagrams are important not only for.
OMT Modeling 1. Object Model : presented by the object model and the data dictionary. 2. Dynamic Model: presented by the state diagrams and event flow.
Lecture 9-1 : Intro. to UML (Unified Modeling Language)
Chapter 5 System Modeling. What is System modeling? System modeling is the process of developing abstract models of a system, with each model presenting.
Finite State Machines (FSM) OR Finite State Automation (FSA) - are models of the behaviors of a system or a complex object, with a limited number of defined.
Concepts and Realization of a Diagram Editor Generator Based on Hypergraph Transformation Author: Mark Minas Presenter: Song Gu.
21/1/ Analysis - Model of real-world situation - What ? System Design - Overall architecture (sub-systems) Object Design - Refinement of Design.
Class Diagrams. Terms and Concepts A class diagram is a diagram that shows a set of classes, interfaces, and collaborations and their relationships.
 To explain why the context of a system should be modelled as part of the RE process  To describe behavioural modelling, data modelling and object modelling.
OOD OO Design. OOD-2 OO Development Requirements Use case analysis OO Analysis –Models from the domain and application OO Design –Mapping of model.
From Use Cases to Implementation 1. Structural and Behavioral Aspects of Collaborations  Two aspects of Collaborations Structural – specifies the static.
AO Mechanisms in Demeter1 Discussion with Gregor Kiczales at UBC Ontology of AOP Ontology is the study of what there is, an inventory of what exists. An.
DESIGN PROCESS AND CONCEPTS. Design process s/w design is an iterative process through which requirements are translated into a “blueprint” for constructing.
From Use Cases to Implementation 1. Mapping Requirements Directly to Design and Code  For many, if not most, of our requirements it is relatively easy.
Aspect-oriented Code Generation Approaches Abid Mehmood & Dayang N. A. Jawawi Department of Software Engineering Faculty of Computer Science and Information.
An approach for Integration of Aspect Orientation and Model- Driven Engineering using Aspect- Oriented Code Generation Presenter: Abid Mehmood Advisor:
Design Concepts ch-8
Introduction to Design Patterns
Discussion with Gregor Kiczales at UBC
System models October 5, 2005.
Structuring Adaptive Applications using AspectJ and AOM
Dynamic Modeling Lecture # 37.
Ivan Kurtev, Klaas van den Berg Software Engineering Group
From Use Cases to Implementation
Presentation transcript:

What is “model transformation”? Distinction between source and target Source may be same as target May be multiple sources, or targets Reaching a fixed point after multiple iteration of transformation rules Model transformation can be summarized as graph transformation, where a model is a set of typed nodes in a hypergraph that are manipulated according to the goals of a transformation

What is “model weaving”? Essential characteristics of a model weaver Pattern matching engine – like a pointcut language (quantification) Composition mechanism – transforms model according to new concern Types of weaving Static weaving on static structure Weaving into class diagrams (semantics pre-existing) Static weaving on dynamic behaviour Weaving into statecharts (not directly available from abstract syntax) Dynamic weaving on dynamic behaviour Focus of dynamic AOP languages

Is model transformation equivalent to weaving? All weaving is a model transformation, but not all model transformation is weaving (e.g., model refactoring can be a model transformation that is not crosscutting); similar to program transformation and code weavers

Are there generic patterns for model transformation? “Find a Leaf” to flatten hierarchical structures “Transitive Closure” of a model transformation; collecting attributes UMLAUT – visitors, abstract factory and well- known design patterns for transformations in an OO style; can be made specific for different models of computation (e.g., stateflow)

Are AO weavings at the code level fundamentally the same as applying rules in a rule-based engine? Fundamentally, YES; Pragmatically, NO Humans need a higher level of abstraction Function pointers in C, versus C++ OO abstractions Database triggers Comparison of AOP languages to MOPs Naturalness of expression and power of language Example for future: more abstract pointcut language; pointcuts highly coupled to the language -> aspect modeling may help to mitigate such problems

What about the semantics of the resulting composition? Powerful languages and semantics may be difficult to use by some categories of users; may result in unintended results Teenager driving a Ferrari Separate the speculative aspects because they extend the statespace of the model, versus invasive aspects that change the state of the core

How can properties of AO weavings be proven? Two parts: Verification: is the weaving itself performed correctly? Validation: is the result that is obtained that which was in the mind of the designer? Composition of model aspects and resulting behaviour Trivial if orthogonal (i.e., no interference) More challenging if non-orthogonal Ex: compose two separate access control aspects (RBAC and mandatory access control); promotes reuse among model aspects (frequently occurring)

Does AOM have to be concerned about performance? Three parts: Performance of the actual weaving It depends (static weaving -> may be personal preference) Explosion of the size of the model after weaving may inhibit further analysis/generation Performance of the modeled system Depends on domain and requirements (e.g. RTE system)

Model Transformation Questions Are there generic patterns for model transformation? Can model transformation tools and techniques be used for model composition? Is model transformation equivalent to weaving? Are AO weavings at the code level fundamentally different from applying rules in a rule-based program transformation system? Semantics of the resulting composition? How can properties of AO weavings be proven? Does AOM have to be concerned about performance?

Core AOM Can we use standard UML tools for AOM (without changing the meta- model)? Is AOM about cutpoints like AOP or is it more? Advantages / disadvantages of different ways of specifying composition in UML? Which concerns would benefit more from a symmetric/asymmetric approach? What is the difference between an AOM primary model and an aspect model? Do we need different notations / tools? Is it necessary to represent crosscutting explicitly? What is so challenging about AO behavior compared to AO structure? What concerns can be represented in design that cannot be represented in implementation? Does AOM have anything to do with MOF? Should there be a catalog of MOF-based AO MMs?

Process and Industry-Related Questions Do current approaches scale? What are the problems when moving to real-world projects? What skills do people need to make affective use of an AOM approach? Where is the line (currently) between people activities and tool activities in AOM? In the future? Does AOM mean “waterfall”, single-step process (as opposed to stepwise refinement) Is there any way for “discovering” aspects in existing models? How do I denote the “trace” of a weaving in a model? What are main directions of AOP? What are their application areas?