1 / 11

What is “model transformation”?

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

chloe
Télécharger la présentation

What is “model transformation”?

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 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

  2. 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

  3. 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

  4. 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)

  5. 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

  6. 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

  7. 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)

  8. 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)

  9. 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?

  10. 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?

  11. 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?

More Related