This document discusses challenges with bidirectional transformations between models. It notes that while bidirectionality is important, existing approaches have not achieved anticipated benefits due to issues with non-determinism and unclear semantics. The document proposes handling uncertainty in bidirectional transformations by generating a model with uncertainty rather than a set of models. This represents the solution space and allows traversal. It extends the semantics of the Janus Transformation Language to directly generate the uncertainty model corresponding to the solution space. Managing uncertainty in this way is intended to help address the challenges with bidirectional transformations.
Uncertainty in Bidirectional TransformationsGianni Rosa
In model driven engineering, models are primary artifact manipulated by means of automated transformations. A notion of uncertainty has introduced, permitting modelers to postpone design decision in case of lack of information. In other way the uncertainty due to the solution multiplicity in bidirectional transformation is discussed. The problem is illustraded by a round-tripping scenario realized with JTL transformations language.
Steps of Learning Programming Language. and much more with and easy way. Like ---
History of C language, What is C, Step by step procedure to learn C language with interview questions.
C, C language ppt, Learn C, Basic C, What is C?, How to learn C, language, programming language ppt, OOPs, POOPs, Learn C ppt, C ppt, C Program, first program, Variable in C, Keyword in C, constant in C ?
Uncertainty in Bidirectional TransformationsGianni Rosa
In model driven engineering, models are primary artifact manipulated by means of automated transformations. A notion of uncertainty has introduced, permitting modelers to postpone design decision in case of lack of information. In other way the uncertainty due to the solution multiplicity in bidirectional transformation is discussed. The problem is illustraded by a round-tripping scenario realized with JTL transformations language.
Steps of Learning Programming Language. and much more with and easy way. Like ---
History of C language, What is C, Step by step procedure to learn C language with interview questions.
C, C language ppt, Learn C, Basic C, What is C?, How to learn C, language, programming language ppt, OOPs, POOPs, Learn C ppt, C ppt, C Program, first program, Variable in C, Keyword in C, constant in C ?
Why C is Called Structured Programming LanguageSinbad Konick
This Slide was made for a presentation based on the Topic Why C is Called Structured Programming Language . So here we added some history about C Programming from where did it came from , who invented it . What does structured programming actually means . And finally the advantage and disadvantage of C Programming . Future of C Programming .
In this paper we proposed the logical correct path to implement automatically any algorithm or model in
verified C# code. Our proposal depends on using the event-B as a formal method. It is suitable solution for
un-experience in programming language and profession in mathematical modeling. Our proposal also
integrates requirements, codes and verification in system development life cycle. We suggest also using
event-B pattern. Our suggestion is classify into two cases, the algorithm case and the model case. The
benefits of our proposal are reducing the prove effort, reusability, increasing the automation degree and
generate high quality code. In this paper we applied and discussed the three phases of automatic code
generation philosophy on two case studies the first is “minimum algorithm” and the second one is a model
for ATM.
Deep Learning for Machine Translation - A dramatic turn of paradigmMeetupDataScienceRoma
Presentazione al Meetup di Marzo del Machine Learning / Data Science Meetup di Roma: https://www.meetup.com/it-IT/Machine-Learning-Data-Science-Meetup/events/248063386/
These Lecture series are relating the use R language software, its interface and functions required to evaluate financial risk models. Furthermore, R software applications relating financial market data, measuring risk, modern portfolio theory, risk modeling relating returns generalized hyperbolic and lambda distributions, Value at Risk (VaR) modelling, extreme value methods and models, the class of ARCH models, GARCH risk models and portfolio optimization approaches.
These Lecture series are relating the use R language software, its interface and functions required to evaluate financial risk models. Furthermore, R software applications relating financial market data, measuring risk, modern portfolio theory, risk modeling relating returns generalized hyperbolic and lambda distributions, Value at Risk (VaR) modelling, extreme value methods and models, the class of ARCH models, GARCH risk models and portfolio optimization approaches.
Generating Model with Uncertainty by means of JTLGianni Rosa
In Model-Driven Engineering, the potential advantages
of using bidirectional transformations are largely recognized.
Despite its crucial function, in certain cases bidirectionality
has somewhat limited success because of the ambivalence concerning non-bijectivity. In fact, consistently propagating changes from one side to the other is typically non univocal as more than one correct solution is admitted. This gives place to a form of uncertainty which means that, rather than having a
single model, we actually have a set of possible models but we
do not know what is the right one. In this paper, we discuss
how dealing with multiple solutions is important and requires
specialized tools and support. In particular, handling a set of
models explicitly is generally non-viable. Thus, we extended
the JTL semantics to generate a model with uncertainty which
is semantically equivalent to the set of models it represents.
The approach is implemented and a metamodel-independent
technique is proposed.
Why C is Called Structured Programming LanguageSinbad Konick
This Slide was made for a presentation based on the Topic Why C is Called Structured Programming Language . So here we added some history about C Programming from where did it came from , who invented it . What does structured programming actually means . And finally the advantage and disadvantage of C Programming . Future of C Programming .
In this paper we proposed the logical correct path to implement automatically any algorithm or model in
verified C# code. Our proposal depends on using the event-B as a formal method. It is suitable solution for
un-experience in programming language and profession in mathematical modeling. Our proposal also
integrates requirements, codes and verification in system development life cycle. We suggest also using
event-B pattern. Our suggestion is classify into two cases, the algorithm case and the model case. The
benefits of our proposal are reducing the prove effort, reusability, increasing the automation degree and
generate high quality code. In this paper we applied and discussed the three phases of automatic code
generation philosophy on two case studies the first is “minimum algorithm” and the second one is a model
for ATM.
Deep Learning for Machine Translation - A dramatic turn of paradigmMeetupDataScienceRoma
Presentazione al Meetup di Marzo del Machine Learning / Data Science Meetup di Roma: https://www.meetup.com/it-IT/Machine-Learning-Data-Science-Meetup/events/248063386/
These Lecture series are relating the use R language software, its interface and functions required to evaluate financial risk models. Furthermore, R software applications relating financial market data, measuring risk, modern portfolio theory, risk modeling relating returns generalized hyperbolic and lambda distributions, Value at Risk (VaR) modelling, extreme value methods and models, the class of ARCH models, GARCH risk models and portfolio optimization approaches.
These Lecture series are relating the use R language software, its interface and functions required to evaluate financial risk models. Furthermore, R software applications relating financial market data, measuring risk, modern portfolio theory, risk modeling relating returns generalized hyperbolic and lambda distributions, Value at Risk (VaR) modelling, extreme value methods and models, the class of ARCH models, GARCH risk models and portfolio optimization approaches.
Generating Model with Uncertainty by means of JTLGianni Rosa
In Model-Driven Engineering, the potential advantages
of using bidirectional transformations are largely recognized.
Despite its crucial function, in certain cases bidirectionality
has somewhat limited success because of the ambivalence concerning non-bijectivity. In fact, consistently propagating changes from one side to the other is typically non univocal as more than one correct solution is admitted. This gives place to a form of uncertainty which means that, rather than having a
single model, we actually have a set of possible models but we
do not know what is the right one. In this paper, we discuss
how dealing with multiple solutions is important and requires
specialized tools and support. In particular, handling a set of
models explicitly is generally non-viable. Thus, we extended
the JTL semantics to generate a model with uncertainty which
is semantically equivalent to the set of models it represents.
The approach is implemented and a metamodel-independent
technique is proposed.
This paper presents a vision on how the software development process could be a fully unified mechanized
process by getting benefits from the advances of Natural Language Processing and Program Synthesis
fields. The process begins from requirements written in natural language that is translated to sentences in
logical form. A program synthesizer gets those sentences in logical form (the translator's outcome) and
generates a source code. Finally, a compiler produces ready-to-run software. To find out how the building
blocks of our proposed approach works, we conducted an exploratory research on the literature in the
fields of Requirements Engineering, Natural Language Processing, and Program Synthesis. Currently, this
approach is difficult to accomplish in a fully automatic way due to the ambiguities inherent in natural
language, the reasoning context of the software, and the program synthesizer limitations in generating a
source code from logic.
Lecture 05: Recurrent Neural Networks / Deep Learning by Pankaj GuptaPankaj Gupta, PhD
Lecture on Recurrent Neural Network at University of Munich (LMU), as part of Deep Learning & AI lecture series.
Includes: Fundamentals of RNNs, Need for LSTM and GRU.
Brief introduction on attention mechanism and its application in neural machine translation, especially in transformer, where attention was used to remove RNNs completely from NMT.
Panelists: Yoshiyasu Yamakawa (Intel), JP Barraza (Systran), Konstantin Dranch (Memsource), David Koot (TAUS)
The focus of this session will be on predictions and risk management. What kind of things can you predict and how can you manage risks by by analyzing your translation data or monitoring your productivity and quality. Tracking translation data in different cycles of the translation process (translation, post-editing, review, proof-reading) offers tremendous value when it comes to predicting future trends or making informed choices. What type of data can be valuable and what kind of predictions can we make using this data? How can we make more efficient use of already available data? How can we use this type of data to improve machine translation, automatic QA, error-recognition, sampling or quality estimation? How can academia and industry work together towards a common goal?
Objeto de conferencia
III International Conference on New Horizons in Education (INTE) (Praga, República Checa)
This work presents an open source web environment to learn GPSS language in Modeling and Simulation courses. With this environment, students build their models by selecting entities and configuring them instead of programming GPSS codes from scratch. Teachers can also create models so that students can apply, analyze and interpret results. Thus, it includes a simulation engine that stores snapshots of models as they are executed, and allows students to navigate through these snapshots. The environment may be combined with existing learning management systems.
Ver registro completo en: http://sedici.unlp.edu.ar/handle/10915/25674
Open Access (OA) is a mechanism that allows for free and immediate access to research results and data. It aims to enhance global dissemination, reduce research duplication, and increase the use of scientific contributions in teaching programs, among others. However, a survey has revealed that many researchers need more adequate knowledge about OA and the transition to it. While making research products openly available is a great idea for communicating science and knowledge, shifting the costs from readers to authors induces risks that must be identified, understood, and analyzed. It is worth noting that OA does not eliminate publishing costs. The move to OA can lead to financial bias if publishers take advantage of the opportunity to publish more or engage in unethical practices. This could create an unequal playing field, where some researchers have an advantage over others due to their access to resources. The talk describes the scientific publishing market, the problems emerging from the current transition to OA, and potential countermeasures to mitigate the current difficulties.
Uncertainty and variability in industry-scale projects: Pearls, perils and p...Alfonso Pierantonio
The state-of-the-art in software abstraction is model-driven engineering. It provides system architects with abstract representations of complex system functionality, complementary views of a given system (e.g., behavioral versus structural), and vertical refinement of high-level system requirements models into design models and eventually down to (automatically-generated) executable code. However, the complexity caused by the many models used in large-scale projects might give place to significant sources of uncertainty due to (implicit and explicit) dependencies, consistencies, and correlations among the modeling artifacts. Keeping such models consistent during the development process requires spelling out the change requirements that enforce well-thought-out change propagation and co-evolution plans.
In this talk, I will survey threats, challenges, and misconceptions that occurred in the context of an industry-scale project in the domain of computer-based interlocking systems. In particular, the different kinds of model relations required managing several forms of (epistemic) uncertainty emerged in various scenarios, including roundtripping among modeling notations and several forms of co-evolution involving metamodels, models, and transformations. To this end, a megamodel is given to better characterize the identified solutions that required devising specialized tools and notations for leveraging automation and translating uncertainty into variability models.
The concept of classification as realized in most traditional object-oriented computer languages has certain limitations that may inhibit its application to modeling more complex phenomena. This is likely to prove problematic as modern software becomes increasingly more integrated with the highly dynamic physical world. In this paper, we first provide a detailed description of these limitations, followed by an outline of a novel approach to classification designed to overcome them. The proposed approach replaces the static multiple-inheritance hierarchy approach found in many object-oriented languages with multiple dynamic class hierarchies each based on different classification criteria. Furthermore, to better deal with ambiguous classification schemes, it supports potentially overlapping class membership within any given scheme. Also included is a brief overview of how this approach could be realized in the design of advanced computer languages.
Join work with Bran Selic
Starting a career in research is one of the most uncertain professional ambition in modern societies. Besides the technical obstacles of becoming a world-class expert in a specific topic (you have to!), it presents a diversity of daunting psycho-social difficulties that might be conducive to harmful consequences. The talk is informal in nature and tries to reflect the speaker’s experience (as a computer scientist) at the beginning of his career and later as the mentor of students and postdocs. Besides expected definitions about what research is or should be, it tries to discuss how students often tend to adopt the irrational idea of having ‘perfect reasoning.’ It also will consider empiricism, as a democratic tool for entering research, and the language as a barrier for those who do not speak English as a first language. The final remark will be about ‘silence’ as a beneficial or pathological aspect of both researchers and mentors.
Adoption of MDE technologies (and techniques) could be dis- cussed within the context of existing technology acceptance models (TAMs). For instance, Davis’ basic TAM model [4] emphasizes (perceived) usefulness and ease of use. While these factors are clearly relevant, we aim at a more refined view by paying special attention to how MDE, at this stage, is driven by research and university teaching. That is, we describe the challenge of improving chances of MDE adoption (i.e., improved ‘adoptability’) in terms of maturing three legs of an ‘adoption chair’: i) reproducibility of research re- sults; ii) reusability of essential technologies; iii) teachability of the underlying techniques.
Supporting Users to Manage Breaking and Unresolvable Changes in Coupled Evolu...Alfonso Pierantonio
In Model-Driven Engineering (MDE) metamodels play a key role since they underpin the specification of different kinds of modeling artifacts, and the development of a wide range of model management tools. Consequently, when a metamodel is changed modelers and developers have to deal with the induced coupled evolutions i.e., adapting all those artifacts that might have been affected by the operated meta- model changes. Over the last years, several approaches have been proposed to deal with the coupled evolution problem, even though the treatment of changes is still a time consum- ing and error-prone activity. In this paper we propose an ap- proach supporting users during the adaptation steps that can- not be fully automated. The approach has been implemented by extending the EMFMigrate language and by exploiting the user input facility of the Epsilon Object Language. The approach has been applied to cope with the coupled evolu- tion of metamodels and model-to-text transformations.
Managing Uncertainty in Bidirectional Model Transformations Alfonso Pierantonio
In Model-Driven Engineering bidirectionality in transforma- tions is regarded as a key mechanism. Recent approaches to non-deterministic transformations have been proposed for dealing with non-bijectivity. Among them, the JTL language is based on a relational model transformation engine which restores consistency by returning all admissible models. This can be regarded as an uncertainty reducing process: the un- known uncertainty at design-time is translated into known uncertainty at run-time by generating multiple choices. Un- fortunately, little changes in a model usually correspond to a combinatorial explosion of the solution space. In this pa- per, we propose to represent the multiple solutions in a in- tensional manner by adopting a model for uncertainty. The technique is applied to JTL demonstrating the advantages of the proposal.
Metamodels can be considered one of the cardinal concepts of
Model-Driven Engineering and a number of coordinated entities,
suchasmodels, transformationsandtools, isdependingonit. Anal-
ogously to any software artifact, metamodels are equally prone to
evolution during their lifetime. As a consequence, whenever a
metamodelchanges, any related entity must be consistently adapted
for preserving its wellformedness, consistency, or intrinsic correct-
ness.
This work discusses the problem of co-adapting models, trans-
formations, and tools. Different aspects are taken into account and
a prospective and unifying characterization is given with the intend
ofclarifyingthemaindifficultiesandoutlinethebasicrequirements
for possible solutions. In this respect, EMFMigrate a comprehen-
sive approach to the metamodel co-evolution problem is proposed.
Evolution in the Large and in the Small in Model-Driven DevelopmentAlfonso Pierantonio
Model Driven Engineering (MDE) is increasingly gaining acceptance in the development of software systems as a mean to leverage abstraction and render business logic resilient to technological changes. Coordinated collections of models and modeling languages are used to describe
applications on different abstraction levels and from different perspectives. In general, both models and metamodels are not preserved from the evolutionary pressure which inevitably affects almost any artifacts, possibly causing a cascade of adaptations which severely affects the modeling languages or the model population.
This talk analyzes the different kinds of co-adaptations which are required, distinguishing among co-evolution in the large and in the small. In particular, the coupling between models and metamodels implies that when a metamodel undergoes a modification, the conforming models require to be accordingly co-adapted. Analogously, whenever a new version of a model is produced, the generated application may require an explicit adaptation of the generated artifacts, especially when specific
assets are not directly reflected by the models and transformations, as for instance when dealing with serialized objects or with page content which is persistently stored in a database.
Collapsing Narratives: Exploring Non-Linearity • a micro report by Rosie WellsRosie Wells
Insight: In a landscape where traditional narrative structures are giving way to fragmented and non-linear forms of storytelling, there lies immense potential for creativity and exploration.
'Collapsing Narratives: Exploring Non-Linearity' is a micro report from Rosie Wells.
Rosie Wells is an Arts & Cultural Strategist uniquely positioned at the intersection of grassroots and mainstream storytelling.
Their work is focused on developing meaningful and lasting connections that can drive social change.
Please download this presentation to enjoy the hyperlinks!
This presentation, created by Syed Faiz ul Hassan, explores the profound influence of media on public perception and behavior. It delves into the evolution of media from oral traditions to modern digital and social media platforms. Key topics include the role of media in information propagation, socialization, crisis awareness, globalization, and education. The presentation also examines media influence through agenda setting, propaganda, and manipulative techniques used by advertisers and marketers. Furthermore, it highlights the impact of surveillance enabled by media technologies on personal behavior and preferences. Through this comprehensive overview, the presentation aims to shed light on how media shapes collective consciousness and public opinion.
Suzanne Lagerweij - Influence Without Power - Why Empathy is Your Best Friend...Suzanne Lagerweij
This is a workshop about communication and collaboration. We will experience how we can analyze the reasons for resistance to change (exercise 1) and practice how to improve our conversation style and be more in control and effective in the way we communicate (exercise 2).
This session will use Dave Gray’s Empathy Mapping, Argyris’ Ladder of Inference and The Four Rs from Agile Conversations (Squirrel and Fredrick).
Abstract:
Let’s talk about powerful conversations! We all know how to lead a constructive conversation, right? Then why is it so difficult to have those conversations with people at work, especially those in powerful positions that show resistance to change?
Learning to control and direct conversations takes understanding and practice.
We can combine our innate empathy with our analytical skills to gain a deeper understanding of complex situations at work. Join this session to learn how to prepare for difficult conversations and how to improve our agile conversations in order to be more influential without power. We will use Dave Gray’s Empathy Mapping, Argyris’ Ladder of Inference and The Four Rs from Agile Conversations (Squirrel and Fredrick).
In the session you will experience how preparing and reflecting on your conversation can help you be more influential at work. You will learn how to communicate more effectively with the people needed to achieve positive change. You will leave with a self-revised version of a difficult conversation and a practical model to use when you get back to work.
Come learn more on how to become a real influencer!
Mastering the Concepts Tested in the Databricks Certified Data Engineer Assoc...SkillCertProExams
• For a full set of 760+ questions. Go to
https://skillcertpro.com/product/databricks-certified-data-engineer-associate-exam-questions/
• SkillCertPro offers detailed explanations to each question which helps to understand the concepts better.
• It is recommended to score above 85% in SkillCertPro exams before attempting a real exam.
• SkillCertPro updates exam questions every 2 weeks.
• You will get life time access and life time free updates
• SkillCertPro assures 100% pass guarantee in first attempt.
Presentatie 4. Jochen Cremer - TU Delft 28 mei 2024
Mise14 @ ICSE1 14 Uncertainty in Bidirectional Transformations
1. Dipartimento di Ingegneria e Scienze
Università degli Studi dell’Aquila
dell’Informazione e Matematica
Uncertainty in Bidirectional
Transformations
Alfonso Pierantonio
Romina Eramo
Gianni Rosa
2. In spite of its relevance,
bidirectionality has rarely produced
anticipated benefits.
Why?
3. Alfonso Pierantonio – 6th International Workshop on Modeling in Software Engineering
3
Model Transformations
A model transformation is an automatable way of
ensuring that a family of models is consistent, in a precise
sense which the software engineer can define.
The aim of using a model transformation is to save effort
and reduce errors by automating the building and
modification of models where possible.
4. Alfonso Pierantonio – 6th International Workshop on Modeling in Software Engineering
4
Model Transformations
A model transformation is an automatable way of
ensuring that a family of models is consistent, in a precise
sense which the software engineer can define.
The aim of using a model transformation is to save effort
and reduce errors by automating the building and
modification of models where possible.
5. Alfonso Pierantonio – 6th International Workshop on Modeling in Software Engineering
5
Bidirectionality
Bidirectionality is necessary whenever people are
working on more than one model and the models
must be kept consistent.
The relevance of bidirectionality has been advocated
already in 2005 by OMG’s QVT standard, in particular
the QVT Relations (QVT-R) language.
Current approaches include also Triple Graph
Grammars (TGGs), SyncATL, JTL, and
GRoundTram.
6. Alfonso Pierantonio – 6th International Workshop on Modeling in Software Engineering
6
Non-bijectivity
Most examples of bidirectional transformations are
non-bijective, therefore there may be multiple ways
to transform two models into a consistent state,
introducing uncertainty and non-determinism.
7. Alfonso Pierantonio – 6th International Workshop on Modeling in Software Engineering
7
Non-bijectivity
Most examples of bidirectional transformations are
not bijective, therefore there may be multiple ways to
transform two models into a consistent state,
introducing uncertainty and non-determinism.
?
8. Alfonso Pierantonio – 6th International Workshop on Modeling in Software Engineering
8
Unclear semantics of bidirectionality
Existing bidirectional languages translate a non-
deterministic specification into an actual bidirectional
transformation procedure.
9. Alfonso Pierantonio – 6th International Workshop on Modeling in Software Engineering
9
Unclear semantics of bidirectionality
Existing bidirectional languages translate a non-
deterministic specification into an actual bidirectional
transformation procedure.
Consistency is enforced by imposing a specific
«update policy» determined by foreign and unknown
factors, ie. language implementation, heuristics, and
rule order.
10. Alfonso Pierantonio – 6th International Workshop on Modeling in Software Engineering
10
Unclear semantics of bidirectionality
Existing bidirectional languages translate a non-
deterministic specification into an actual bidirectional
transformation procedure.
Consistency is enforced by imposing a specific
«update policy» determined by foreign and unknown
factors, eg. language implementation, heuristics, and
rule order.
As a consequence, result is unpredictable and
developers have little or no control on the «update
policy».
11. Alfonso Pierantonio – 6th International Workshop on Modeling in Software Engineering
11
Solution
Neglecting non-determinism in non-bijective
transformations hampered the adoption of
bidirectional transformations
– Managing the uncertainty: all admissible solutions must
be generated at once letting the designer choose the
desired one
– Managing the update policy: an intentional (and general)
«update policy» is adopted and implemented at design-
time (cfr. [1])
[1] Zan Tao, Hugo Pacheco, and Zhenjiang Hu. "Writing bidirectional model transformations as
intentional updates." Companion Proceedings of the 36th International Conference on Software
Engineering. ACM, 2014.
12. Alfonso Pierantonio – 6th International Workshop on Modeling in Software Engineering
12
Non-deterministic languages
Over the last yeast, new languages/semantics have
been proposed
– Janus Transformation Language (JTL)
– Alloy-based Semantics for QVT-R
They are able to produce more than one result.
13. Alfonso Pierantonio – 6th International Workshop on Modeling in Software Engineering
13
Janus Transformation Language (JTL)
JTL has formal semantics based on Answer Set
Programming (ASP) and therefore can be considered
a constraint-based approach.
ASP is a form of logic programming with non-
monotonic reasoning related to SAT. Several solvers
are available, eg. DLV.
JTL is embedded in a framework available on the
Eclipse platform and can be applied to Ecore
metamodels
16. Alfonso Pierantonio – 6th International Workshop on Modeling in Software Engineering
16
Specifying transformation with JTL
Fragment of the HSM2NHSM transformation
specified in JTL
16
transformation hsm2nhsm(source : HSM, target : NHSM) {
top relation StateMachine2StateMachine {
enforce domain source sSM : HSM::StateMachine;
enforce domain target tSM : NHSM::StateMachine;
}
top relation State2State {
enforce domain source sourceState : HSM::State;
enforce domain target targetState : NHSM::State;
when {
sourceState.owningCompositeState.oclIsUndefined();
}
}
top relation CompositeState2State {
enforce domain source sourceState : HSM::CompositeState;
enforce domain target targetState : NHSM::State;
}
}
17. Alfonso Pierantonio – 6th International Workshop on Modeling in Software Engineering
17
transformation hsm2nhsm(source : HSM, target : NHSM) {
top relation StateMachine2StateMachine {
enforce domain source sSM : HSM::StateMachine;
enforce domain target tSM : NHSM::StateMachine;
}
top relation State2State {
enforce domain source sourceState : HSM::State;
enforce domain target targetState : NHSM::State;
when {
sourceState.owningCompositeState.oclIsUndefined();
}
}
top relation CompositeState2State {
enforce domain source sourceState : HSM::CompositeState;
enforce domain target targetState : NHSM::State;
}
}
Specifying transformation with JTL
Fragment of the HSM2NHSM transformation
specified in JTL
17
It transforms hierarchical state
machines into flat state machines and
the other way round.
18. Alfonso Pierantonio – 6th International Workshop on Modeling in Software Engineering
18
transformation hsm2nhsm(source : HSM, target : NHSM) {
top relation StateMachine2StateMachine {
enforce domain source sSM : HSM::StateMachine;
enforce domain target tSM : NHSM::StateMachine;
}
top relation State2State {
enforce domain source sourceState : HSM::State;
enforce domain target targetState : NHSM::State;
when {
sourceState.owningCompositeState.oclIsUndefined();
}
}
top relation CompositeState2State {
enforce domain source sourceState : HSM::CompositeState;
enforce domain target targetState : NHSM::State;
}
}
Specifying transformation with JTL
Fragment of the HSM2NHSM transformation
specified in JTL
18
The forward transformation is clearly non-injective:
both «State» and «CompositeState» are mapped
to the same target «State»
19. Alfonso Pierantonio – 6th International Workshop on Modeling in Software Engineering
19
transformation hsm2nhsm(source : HSM, target : NHSM) {
top relation StateMachine2StateMachine {
enforce domain source sSM : HSM::StateMachine;
enforce domain target tSM : NHSM::StateMachine;
}
top relation State2State {
enforce domain source sourceState : HSM::State;
enforce domain target targetState : NHSM::State;
when {
sourceState.owningCompositeState.oclIsUndefined();
}
}
top relation CompositeState2State {
enforce domain source sourceState : HSM::CompositeState;
enforce domain target targetState : NHSM::State;
}
}
Specifying transformation with JTL
Fragment of the HSM2NHSM transformation
specified in JTL
19
The forward transformation is clearly non-injective:
both «State» and «CompositeState» are mapped
to the same target «State»
20. Alfonso Pierantonio – 6th International Workshop on Modeling in Software Engineering
22
Requirements for bidirectional transformations
A bidirectional transformation is a relation
R M ´ N
characterized by the following directional mappings
R : M ´ N N*
R : M ´ N M*
where R takes a pair of models (m, n) and enforces
the relation R. R does it in the opposite direction.
P. Stevens. Bidirectional model transformations in QVT: semantic issues and open questions. SOSYM, 8,
2009.
21. Alfonso Pierantonio – 6th International Workshop on Modeling in Software Engineering
23
Requirements for bidirectional transformations
A bidirectional transformation is a relation
R M ´ N
characterized by the following directional mappings
R : M ´ N N*
R : M ´ N M*
where R takes a pair of models (m, n) and enforces
the relation R. R does it in the opposite direction.
22. Alfonso Pierantonio – 6th International Workshop on Modeling in Software Engineering
24
Requirements for bidirectional transformations
Ippocraticness
If (m,n) are consistent, ie. (m,n) R M ´ N then
R(m,n) = n and R(m,n) = m
Reachability
If R(m, n’) = m* M*, then R(m’, n’) = n’ N for each
m’ m*
Choice preservation
R(m’,R(m’,n’)) = m’ for each m’ m*
23. T
Manual Changes
T
The designer performs
some manual changes on
the generated model
Modifications on the target are
back propagated to the source
which is consistently updated
making use of tracing
information
source target
24. Alfonso Pierantonio – 6th International Workshop on Modeling in Software Engineering
31
Pragmatics
Dealing with medium-large size models poses many
pragmatic problems due to the combinatorial
explosion of the solution space.
Determining differences and commonalities among
the models by traversing and inspecting the solution
space is impractical.
An intensive representation of the solution space
generated by a JTL transformation is sought to
support traversal and inspection of the models
throughout the solution space.
25. Alfonso Pierantonio – 6th International Workshop on Modeling in Software Engineering
32
Uncertainty
Our proposal is to represent the variability in the
solution space by means of models with uncertainty
in the sense of [2].
[2] Salay, R., Chechik, M., Horkoff, J., & Di Sandro, A. (2013). Managing requirements
uncertainty with partial models. Requirements Engineering, 18(2), 107-128.
26. Alfonso Pierantonio – 6th International Workshop on Modeling in Software Engineering
33
Uncertainty
The JTL semantics has been extended in order to
factorize the solution space and generate a model
with uncertainty instead of a set of models.
Uncertainty Metamodel
For any metamodel M an uncertainty metamodel
U(M) can obtained by means of an automated
transfromation
U: Ecore Ecore
27. Alfonso Pierantonio – 6th International Workshop on Modeling in Software Engineering
34
Uncertainty metamodel
metamodel-independence, the metamodel must be
agnostic of the base metamodel.
model-based, a set of models representing different
solution alternatives must be represented with a model
with uncertainty.
minimality, a model with uncertainty should not contain
any unnecessary information besides what actually
needed.
interoperability, each model containing uncertainty must
be applicable an unfolding operation, such that whenever
applied to it returns all the correspondent concretizations
models or the specific concretization selected by the
designer.
30. Alfonso Pierantonio – 6th International Workshop on Modeling in Software Engineering
37
Operators
Once the uncertainty metamodel U(M) is
automatically defined starting from the base
metamodel M, interoperability between the base and
the uncertainty metamodels is necessary
– Concretization operator: takes a model with uncertainty
m* and returns the set of concretizations <m1 … mn>
– Refinement operator: takes a model with uncertainty m*
and a predicate p and returns the set of models m
satisfying the predicate
31. Alfonso Pierantonio – 6th International Workshop on Modeling in Software Engineering
38
Uncertainty and Bidirectionality
A bidirectional transformation is characterized by the
following directional mappings
Ru : M ´ N U(N) ´ Ocl
Ru : M ´ N U(M) ´ Ocl
where U(N) and U(M) are the uncertainty
metamodels automatically obtained from N and M.
If (m,n) is not in R M ´ N then Ru(m,n) = (n,pN) where
n is a model with uncertainty in U(N) and pN a
predicate over N.
32. Alfonso Pierantonio – 6th International Workshop on Modeling in Software Engineering
39
Uncertainty and Bidirectionality
If (m,n) is not in R M ´ N then Ru(m,n) = (n,pN) where
n is a model with uncertainty in U(N) and pN a
predicate over N such that
concr(Ru(m,n’)) = m = R(m,n’)
for any n’ in refine(n,pN)
34. Alfonso Pierantonio – 6th International Workshop on Modeling in Software Engineering
41
Conclusion
The JTL semantics has been refined in order to be
able to generate directly the model with uncertainty
semantically corresponding to the complete solution
space.
The approach is implemented on Eclipse/EMF.
35. In spite of its relevance,
bidirectionality has rarely produced
anticipated benefits
Why?
36. «The developer needs full control of what
the transformation does. [...] We claim that
determinism is necessary in order to ensure,
first, that developers will find tool behavior
predictable, and second, that organisations
will not be unacceptably “locked in” to the
tool they first use.»
P. Stevens. Bidirectional model transformations in QVT: semantic issues and open questions. SOSYM, 8,
2009.
37. Claiming the determinism is
necessary to ensure that developers
will find tool behavior predictable is
unneeded.
Anthropology problem
we often refer to transformation languages as
niche programming languages, ie deterministic
and sequential.