110 likes | 242 Views
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
E N D
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?