With the ever growing list of programming languages and software development frameworks, transforming a data model into a different format is essential to "bridge the gap" between technology layers and enable information sharing among applications. Ideally, these transformations should be bidirectional, allowing changes to a model to be safely propagated to another. The naive approach to bidirectional transformation (BT) is to engineer two unidirectional transformations together and manually prove that they are consistent according to the required round-tripping axioms. This gives rise to maintenance problems, besides being notoriously expensive and error-prone: any change in a data format implies a redefinition of both transformations, and a new consistency proof. A better approach is to design a domain-specific language in which one expression denotes both transformations, ensured consistent by construction.
The BT research community is growing by the day, with new languages and frameworks being proposed to tackle the most diverse scenarios. This project aims to extend such coverage and propose effective BT frameworks for three relevant application domains: model-driven engineering (MDE), spreadsheet validation and transformation, and language-based editors (LBEs) defined with attribute grammars (AGs).
MDE prescribes the use of automatic model transformations to generate correct implementations by step-wise refinement of high-level platform independent models. Managing model inconsistency is a key issue and several ad-hoc techniques for model/code synchronization and round-trip engineering have been proposed. BT address this problem upfront, and increasing effort is being dedicated by the MDE community to the design of bidirectional model transformation languages. Unfortunately, these are still plagued with semantic ambiguities or expressiveness limitations that outlaw many interesting problems. A main aim of this project is thus to define a model transformation language with precise bidirectional semantics, expressive enough to handle classic MDE scenarios.
Spreadsheets are widely used by non-professional programmers to develop business applications. These programmers vastly outnumber the professional ones and create millions of spreadsheets every year. Spreadsheets are quite flexible, but they are also very error prone. Spreadsheet models specifying the business logic can prevent errors and improve users productivity. Unfortunately, manually synchronizing such models and instances is a complex task. Moreover, the spreadsheet model may evolve over time and, therefore, the data has to be adapted to conform to the new model. In this project we intend to apply BTs not only to automate such synchronization and evolution, but also to allow collaborative editing of different views of the same spreadsheet.
The definition of LBEs is a well-known application of AGs. The AG and the derived editor define a unidirectional transformation: users can edit the source program and the target one is automatically (and incrementally) synchronized after user interaction; however, they are still unable to synchronize the source program after a change in the target. This problem could be addressed by developing a BT system for AGs. Surprisingly, despite the existence of prototype bidirectional LBEs, little work has been done in defining generic BT mechanisms specifically for AGs. That is the research direction we intend to follow in this project, and we expect such a mechanism to be a major contribution to the overall AG community.
Common to these application domains is the fact that models cannot be captured by pure hierarchical (tree-like) data structures. Of course, they can be represented in XML-like formats by relying on internal key references to model circularity or sharing between elements. Although effective BT frameworks have been proposed to handle hierarchical models, no generic and effective framework has yet been proposed for non-hierarchical ones. We intend to do so by relying on the point-free (PF) relational calculus, a quantifier free formalization of first-order logic, popularized in the algebra of programming community. This calculus deals naturally with non-determinism and partiality, two key issues in the formalization of BTs. It is also amenable to calculation thanks to its purely equational reasoning style, which opens interesting opportunities for BT optimization.
With the ever growing list of programming languages and software development frameworks, transforming a data model into a different format is essential to "bridge the gap" between technology layers and enable information sharing among applications. Ideally, these transformations should be bidirectional, allowing changes to a model to be safely propagated to another. The naive approach to bidirectional transformation (BT) is to engineer two unidirectional transformations together and manually prove that they are consistent according to the required round-tripping axioms. This gives rise to maintenance problems, besides being notoriously expensive and error-prone: any change in a data format implies a redefinition of both transformations, and a new consistency proof. A better approach is to design a domain-specific language in which one expression denotes both transformations, ensured consistent by construction.
The BT research community is growing by the day, with new languages and frameworks being proposed to tackle the most diverse scenarios [8]. This project aims to extend such coverage and propose effective BT frameworks for three relevant application domains: model-driven engineering (MDE), spreadsheet validation and transformation, and language-based editors (LBEs) defined with attribute grammars (AGs).
MDE prescribes the use of automatic model transformations to generate correct implementations by step-wise refinement of high-level platform independent models. Managing model inconsistency is a key issue and several ad-hoc techniques for model/code synchronization and round-trip engineering have been proposed. BT address this problem upfront, and increasing effort is being dedicated by the MDE community to the design of bidirectional model transformation languages. Unfortunately, these are still plagued with semantic ambiguities or expressiveness limitations that outlaw many interesting problems. A main aim of this project is thus to define a model transformation language with precise bidirectional semantics, expressive enough to handle classic MDE scenarios.
Spreadsheets are widely used by non-professional programmers to develop business applications. These programmers vastly outnumber the professional ones and create millions of spreadsheets every year. Spreadsheets are quite flexible, but they are also very error prone. Spreadsheet models specifying the business logic can prevent errors and improve users productivity. Unfortunately, manually synchronizing such models and instances is a complex task. Moreover, the spreadsheet model may evolve over time and, therefore, the data has to be adapted to conform to the new model. In this project we intend to apply BTs not only to automate such synchronization and evolution, but also to allow collaborative editing of different views of the same spreadsheet.
The definition of LBEs is a well-known application of AGs. The AG and the derived editor define a unidirectional transformation: users can edit the source program and the target one is automatically (and incrementally) synchronized after user interaction; however, they are still unable to synchronize the source program after a change in the target. This problem could be addressed by developing a BT system for AGs. Surprisingly, despite the existence of prototype bidirectional LBEs, little work has been done in defining generic BT mechanisms specifically for AGs. That is the research direction we intend to follow in this project, and we expect such a mechanism to be a major contribution to the overall AG community.
Common to these application domains is the fact that models cannot be captured by pure hierarchical (tree-like) data structures. Of course, they can be represented in XML-like formats by relying on internal key references to model circularity or sharing between elements. Although effective BT frameworks have been proposed to handle hierarchical models, no generic and effective framework has yet been proposed for non-hierarchical ones. We intend to do so by relying on the point-free (PF) relational calculus, a quantifier free formalization of first-order logic, popularized in the algebra of programming community. This calculus deals naturally with non-determinism and partiality, two key issues in the formalization of BTs. It is also amenable to calculation thanks to its purely equational reasoning style, which opens interesting opportunities for BT optimization.
The project team is widely known for its expertise with the PF calculus [3,28], namely its application to the formalization and optimization of BTs for inductive data types [1,2,29,30,31]. By combining this expertise with other key competences on AGs [5,35,36] and spreadsheet transformation and reverse-engineering [4,32], we believe to be well positioned to carry out the proposed tasks. This expectation is supported by the endorsement of some of the top researchers in the field, who will act as consultants to the project.
Sumário [5000]
Com o crescente número de linguagens de programação e ambientes de desenvolvimento de software, a transformação de dados entre diferentes formatos é essencial para fazer a interface entre camadas tecnológicas e partilhar informação entre aplicações. Idealmente, estas transformações devem ser bidireccionais: mudanças em cada um dos modelos devem ser correctamente propagadas para o outro. A abordagem mais simples às transformação bidireccional (TB) consiste em criar duas transformações unidireccionais e provar manualmente que são consistentes segundo certos axiomas. Esta abordagem acarreta problemas de manutenção, além de ser trabalhosa e propícia a erros: mudanças num formato implicam a redefinição de ambas as transformações e uma nova prova de consistência. Uma abordagem mais interessante consiste na criação de uma linguagem de domínio específico em que uma expressão denota ambas as transformações, consistentes por construção.
A investigação em TB tem crescido significativamente, originando várias linguagens e frameworks para os mais diversos cenários [8]. Este projecto tenciona estender esse conhecimento, propondo novas técnicas para três domínios de aplicação específicos: engenharia orientada aos modelo (EOM), validação e transformação de folhas de cálculo (FC) e editores orientados à linguagem (EOL) definidos por gramáticas de atributos (GAs).
A EOM propõe o uso de transformações automáticas para a geração de implementações por refinamento de modelos de alto nível. Gerir a inconsistência é um problema central, e várias técnicas foram proposta para assegurar a sincronização entre código/modelo e para engenharia reversa. A comunidade de EOM tem procurado resolver este problema propondo várias linguagens para TB. Infelizmente, estas linguagens sofrem de ambiguidades semânticas ou limitações de expressividade, que impedem a sua aplicação em problemas reais. Um dos objectivos deste projecto é definir uma linguagem para TB de modelos com uma semântica bidireccional precisa, suficientemente expressiva para abordar casos de estudo clássicos da EOM.
As FCs são normalmente utilizadas por programadores não-profissionais no desenvolvimento de aplicações de negócio. Esta classe de programadores supera largamente a dos programadores profissionais e é responsável pela criação de milhões de FCs todos os anos. As FCs oferecem um ambiente de programação flexível mas também muito propício a erros. Modelos de FCs que especifiquem a lógica de negócio podem prevenir erros e melhorar a produtividade, mas sincronizar manualmente esses modelos com as respectivas instâncias é uma tarefa complexa: nomeadamente, o modelo pode evoluir com o tempo, devendo os dados ser adaptados nesse processo. Neste projecto pretende-se aplicar TBs não apenas para automatizar essa sincronização e evolução, mas também para permitir a edição colaborativa de diferentes vistas da mesma FC.
A definição de EOLs é uma aplicação bem conhecida das GAs. Os editores implementados com GAs definem uma transformação unidirecional: ao editar o programa de origem, o destino é automaticamente sincronizado; no entanto, não é possível sincronizar o programa de origem após alterações no destino. Este problema pode ser solucionado com a criação de um sistema de TB para GAs. Apesar da existência de protótipos bidireccionais para EOLs, pouco trabalho existe sobre mecanismos de bidireccionalização genéricos para GAs. Este projecto pretende desenvolver um tal mecanismo, devendo o mesmo constituir uma contribuição importante para a comunidade de GAs em geral.
Comum a estes domínios de aplicação é o facto de os modelos não poderem ser representados por estruturas de dados puramente hierárquicas. Podem por exemplo ser representados em formatos tipo XML, mas recorrendo a referências internas para modelar a circularidade ou partilha entre elementos. Apesar de já existirem frameworks de TB eficazes para modelos hierárquicos, não foram ainda propostas frameworks genéricas e igualmente eficazes para os seus homólogos não-hierárquicos. Pretendemos resolver esse problema recorrendo ao cálculo relacional point-free (PF), uma formalização sem quantificadores da lógica de primeira ordem popularizada na comunidade da álgebra de programação. Além de lidar naturalmente com questões chave em TB, tais como o não-determinismo ou a parcialidade, este formalismo facilita a automação devido ao estilo de cálculo puramente equacional, abrindo perspectivas para optimização de TBs.
A equipa do projecto é bem conhecida pela sua experiência no cálculo PF [3,28], em especial na sua aplicação à formalização e optimização de TBs para tipos de dados inductivos [1,2,29,30,31]. Combinando este conhecimento com outras competências chave em GAs [5,35,36] e na transformação e engenharia-reversa de FCs [4,32], acreditamos estar aptos para atingir os objectivos propostos. Esta expectativa é suportada pelo apoio de vários investigadores de topo na área, que aceitaram ser consultores do projecto.
Literature Review [6000]
Several programming languages have been designed with bijectivity in mind, being thus trivially bidirectional. Bijectivity is a too strong requirement for bidirectionality, unable to cover many interesting model transformation scenarios. However, even this restricted semantics is usually not formally guaranteed, like in biXid [26], or postulated modulo unimportant details, such as XSugar [19].
A distinctive contribution to the field is the tree transformation language proposed Foster et al [7], whose building blocks are the so-called lenses. Unlike bijective languages, a lens can describe a data abstraction (involving a forward get function and a backward put function) that satisfies formal round-tripping axioms ensuring predictable bidirectional behavior. Essentially, lenses provide a solution to the well-known view-update problem for databases: given an update on the target view, how to reasonably translate it to the source model? Restricted solutions to this problem have emerged since the late 70's, namely based on the so-called constant complement approach [16].
After that seminal work, the same authors have proposed bidirectional lens-based languages for other data models, namely: relational database schemas [10], based on a type system with functional dependencies and giving bidirectional semantics to standard relational algebra operators; strings [20], based on a type system for regular expressions, where each lens combinator denotes an operator such as union, concatenation or Kleene-star. Other authors have capitalized on the lens framework. For example, Hidaka et al have recently proposed a bidirectional graph transformation language [15], by giving a formal bidirectional semantics to the UnQL graph query language.
To ensure that BTs satisfy the prescribed round-tripping axioms it is typical to restrict their domains with type invariants [7,3]. Another approach could be to ignore redundant model details, such as whitespaces in XSugar [19]. Quotient lenses [12] propose loosening the existing lens properties modulo equivalence relations to make them insensitive to such details. Lenses are purely state-based, ignoring the actual editing operations that lead to an update in the view. Sometimes this originates misaligned updates in the source model. Matching lenses [11] attempt to solve this problem by keeping track of the provenance of each element of the view. A more general update-based framework, where put actually receives the update delta and not only the resulting state has been abstractly formulated [13].
Most of these works are asymmetric, in the sense that there is a prescribed direction for update propagation. A more general symmetric framework have been proposed by Meertens for the construction of constraint maintainers for user interfaces [8]: a symmetric BT includes two procedures that, given changes to one model, propagate them to the other in order to satisfy a given consistency relation. Model-driven BT languages, such as Triple Graph Grammars (TGGs) [14] and the Object Management Group (OMG) own Queries, Views and Transformations Relations (QVT-R) use a similar approach: the user specifies a mapping between meta-model elements and a symmetric BT is derived automatically. Unfortunately, unlike in Meertens approach, it is unclear which are the round-tripping axioms guaranteed by such languages and how exactly a BT is derived from the constraint specification, as pointed out in [23].
BTs also play an important role as low-level constructs to build synchronization systems with meaningful properties. A classic example is the usage of lenses at the core of the Harmony [7] synchronization system for heterogeneous data. This connection is explored further in [25], where QVT-R bidirectional maintainers, together with a model differing approach, are used to build a model synchronizer for EMF models.
Mu et al have studied the automatic inversion of transformations defined in a PF language of injective functions, to be used in a bidirectional XML editor. To deal with duplication and view updating, they consider editing tags in the view and weaker round-tripping axioms. A follow-up work attempted the automatic syntactic derivation of put from get in a restricted functional language [24]. A purely semantic approach to the same problem, that does not restrict the syntax of the get function, was proposed in [17]. Both these approaches suffer from restricted updatability, since the inferred put is highly partial. To alleviate this problem, they were later combined [22], ending up with increased updatability for the intersection of both languages (and ensuring the same round-tripping axioms as lenses).
Our research team has been quite successful in using a PF approach to specify and reason about BT. We have shown how data refinements can be used to formalize two-level BT (of schemas and related instances) [2]. A type-safe implementation of this technique was developed in the functional programming language Haskell, leading to the 2LT (Two-Level Transformation) framework. 2LT was later used to define automated refinement strategies for the XML-to-SQL [31] and Spreadsheets-to-SQL [32] scenarios. More recently, we have also proposed a point-free formalization of lenses over inductive types [1]. The PF calculus is particularly well-suited for automated program calculation and optimization due to its purely equational reasoning style. This allowed us to develop effective systems for BT optimization of data refinements [30] and lenses [29], solving a long-standing inefficiency problem characterizing compositional bidirectional languages.
A modest effort at the classification and standardization of existing BT approaches is reported in [8]. Diskin has proposed an algebraic framework [9] in which some bidirectional axiomatizations can be compared and analyzed in terms of their round-tripping axioms. Nevertheless, a deeper multi-perspective survey on BT is still missing.
Plan and Methods [10000]
The problem of defining BTs over hierarchical or tree-like data models can be considered more or less solved. Frameworks providing consistent bidirectional updating for such models abound, ranging from Foster et al lenses over trees [7] to our own work on bidirectional data refinement and lenses over inductive data types [1,2]. A typical application of these framework is the transformation of simple XML documents, without any circularity or any kind of sharing. Unfortunately, these data models are not rich enough to handle the application domains of this project. For example, software models are essentially sets of relations, better depicted as graphs instead of trees. Of course XML interchange formats can be defined for these, but they rely on references to connect different elements of the model, and thus cannot be properly transformed within the above frameworks.
Effective solutions for specific non-hierarchical models have been proposed, namely for defining views over relational databases with functional dependencies [10], but its not clear how they can be generalized to other kinds of models. Due to its relevance to the MDE community, several bidirectional model transformation frameworks have been proposed, namely TGGs and QVT-R. Unfortunately, they lack a clear formal bidirectional semantics, and it is not clear how to ensure consistency between the derived forward and backward transformations. The first complete language-based framework for general bidirectional graph transformations was recently proposed [15] by means of a formal bidirectional semantics to UnCal, the graph algebra that supports the well-known UnQL graph query language. It turns out that the bidirectional semantics proposed in this framework is extremely complex, making it very difficult to reason about the resulting transformations and define optimization laws. Moreover, it suffers from contrived updatability, either by forcefully meeting the consistency laws or due to non-reflectable changes in the target.
Our research team has been quite successful in using the functional point-free (PF) calculus to specify and reason about BTs. This variable free formalization of typed lambda-calculus enabled us to provide elegant formalizations of both bidirectional data refinements [2] and lenses for inductive types [1]. The PF calculus is particularly well-suited for automated program calculation and optimization due to its purely equational reasoning style. This allowed us to develop an effective system for BT definition and optimization, the Two-Level Transformation (2LT) framework, solving the inefficiency problem that characterizes most compositional bidirectional languages [29,30].
However, even with all advantages of the PF style, this functional calculus is not ideal to formalize BTs. A much better alternative is the PF relational calculus, a quantifier free formalization of first-order logic, popularized in the algebra of programming community. By generalizing to a relational setting we obtain a higher degree of freedom in the calculus, since partiality and non-determinism become natural modeling concepts. Since these concepts are central in BT, and relations are natural abstractions to talk about software models, we believe this calculus has strong potential to lay the foundations for a new generic framework for BT of non-hierarchical models. That is precisely the objective of task 2, one of key tasks that will kickstart the project. We intend to deploy this generic framework as an extension to 2LT, taking advantage of the type-safety provided by the Haskell implementation language. Likewise to all tools to be delivered by this project, the new 2LT will be made available as open-source software, to foster its adoption by the overall community.
Following the work on solving the view-update problem for trees using lenses [7], the number of publications on BT increased exponentially. Frameworks have been developed for many different application scenarios, using various approaches and formalisms, and providing substantially different guarantees to the end-user. Although this is a good sign of the vitality and relevance of the area, we believe time has come to tame this cacophony and present a clear and unified view on most of these works. Such unification could bring benefits both to end-users and the research community: given a particular problem, the former could have an easier time deciding which bidirectional system to apply; and the latter could have a common ground for an effective comparison of proposed solutions. Task 1 intends to show the adequacy of the PF relational calculus to serve as esperanto of this research community, by using it as an unifying formalism in which to recast many of the existing approaches. The key deliverable of this task will be a comprehensive survey on BT, using the PF relational calculus to compare the semantics and laws of different systems.
Upon completion of task 2, the proposed generic framework for BT of non-hierarchical models will be used to develop high-level tools and languages to tackle our three application domains:
Spreadsheets are mainly used by non-professional programmers that are primarily focused on building a solution for their domain-specific problem, instead of programming per se. Thus, the main deliverable of task 3 will be a BT plugin for a popular spreadsheet programming system, namely Excel. The idea is to help users in a daily base by providing them with tools to support more advanced interactions with spreadsheet systems. In this particular case, the plugin would allow the user to evolve and synchronize different versions of the same spreadsheet. A technique for defining spreadsheet models on top of the common framework must be devised. Another key issue is validation: several case studies will be developed to validate and improve the proposed plugin.
The key deliverable of task 4 is a Model Driven Architecture (MDA) compliant bidirectional model transformation language. As such, we intend it to be compatible with the OMG Meta-Object Facility (MOF) standard, and ideally be deployed as a subset of an already established high-level model transformation language, such as QVT Relational (QVT-R). A mapping from MOF to the common framework must be defined. Ditto for the transformation rules of the high-level language - our relational calculus approach seems promising to handle the highly declarative and non-deterministic character of such rules. For the validation of the proposed language, we intend to use case-studies like the classic class-diagram to database schema and viewpoint modeling for UML.
The first objective of task 5 will be the deployment of the common BT framework as an extension to Silver, an extensible modern attribute grammar system that supports higher-order and reference attributes. This will provide a specialization of these results in a framework in which tree-shaped graphs predominate. The system will be used in the NSF supported projects of Van Wyk to build a bidirectional language-based editor for ANSI C, a key deliverable of the task. These efforts will provide proper evaluation and validation of the key deliverable of task 2.
Running in parallel to all this work, task 6 aims specifically at disseminating the project results. A web site of the project is planned, including an interactive presentation of the results of the survey delivered by task 1 and web interfaces to all the project tools. The BT community currently lacks a site to collect, organize and disseminate information about all aspects of this research field, and we believe this effort could be an embryo of such site. We also intend to write a cookbook with BT case studies, to aid future programmers solve their specific problems using the proposed tools. Finally, we believe the community has grown large enough to have its own dedicated symposium. Building on our past experience organizing international events, we intend to organize the first international symposium on BT, thus asserting our research team as a key interlocutor in the field.
A key aspect of this project proposal concerns the integration of young researchers in a team focused around a clear and pragmatic research objective. Together with the 4 senior researchers, 3 young post docs and 1 phd student will participate in the project. At the time of writing this proposal, 2 of the post docs were finishing their thesis on related topics. The thesis of the phd student falls entirely within the scope of the proposal, and will be a key deliverable of the project. Moreover, the team will be complemented with 5 young master students working mainly on tool development, for whom 5 BI grants are being requested.
This proposal was reviewed and endorsed by the following top researchers of the area, which also accepted to be consultants of the project:
Zhenjiang Hu, from the National Institute of Informatics (Japan), one of the most prolific authors in the field [15,22,24,25], responsible for the first attempt at solving the BT problem for graphs [15].
Nate Foster, from Cornell University (USA), the key researcher responsible for the seminal work on lenses [7,11,12,20].
Janis Voigtländer, from University of Bonn (Germany), a top researcher on functional programming that first showed the possibility of semantic bidirectionalization [17,22].
Most management effort will be dedicated to ensure that tasks proceed
according to the established plan, and that milestones are delivered
on time. Special care will be taken with critical milestones, on which
other tasks depend. That is the case of milestone 1, the common BT framework required for tasks 3, 4 and 5.
The following activities are planed in order to ensure coordination
between team members:
Apart from the standard kick-off general meeting, monthly meetings will be held with all members active in the project at the time;
Each of these meetings will be complemented with a technical presentation by one of the project members; these talks will be open to the research community and each project member is required to give at least one such talk;
Apart from the public web-site of the project to be developed in task 6, a private collaborative site will be launched at the start of the project, to allow documents sharing and to scribble current research ideas;
To maximize the revenue from the project budget, the following
measures will be taken:
Submissions to conferences will follow according to a plan defined by the PI, in order to avoid spending the mission budget in events which are not relevant to the project; this plan will mainly include first tier international conferences such as Principles of Programming Languages (POPL), Functional Programming (ICFP), Model Driven Engineering Languages And Systems (MODELS), Foundations of Software Engineering (FSE), and other similar events.
To fully benefit from consultants expertise, each visit will start with a one-day informal workshop where all active team members are expected to give a short talk; by these we expect the consultant to get acquainted with the overall project status, thus increasing the potential for effective and relevant scientific discussions;
Apart from the usual meetings with their designated supervisors, all BI grant holders will be requested to submit a monthly progress report to the PI to ensure that the research plan is progressing as expected.
One senior management official will be designated by each partner to
help with financial planning, and progress/final reports to FCT.
Milestone list
Framework for bidirectional transformations of non-hierarchical models
Excel plugin for bidirectional spreadsheet transformation
MDA compliant bidirectional model transformation language
Bidirectional language-based editor
International symposium on bidirectional transformation
Cookbook with bidirectional transformation case studies.
Timeline
See proposed timeline attached.
Past Publications [5]
[1] Hugo Pacheco, Alcino Cunha: Generic Point-free Lenses. MPC 2010: 331-352.
[2] Alcino Cunha, José Nuno Oliveira, Joost Visser: Type-Safe Two-Level Data Transformation. FM 2006: 284-299.
[3] José Nuno Oliveira: Transforming Data by Calculation. GTTSE 2007: 134-195.
[4] Jácome Cunha, Joost Visser, Tiago Alves, João Saraiva: Type-safe Evolution of Spreadsheets. FASE 2011. (to appear)
[5] Eric Van Wyk, Derek Bodin, Jimin Gao, Lijesh Krishnan: Silver: An extensible attribute grammar system. Sci. Comput. Program. 2010: 39-54.
Bibliographic References [30]
[6] Daniel M. Yellin. Attribute grammar inversion and source-to-source translation. Book in the LNCS series, nº 302.
[7] J. Nathan Foster, Michael B. Greenwald, Jonathan T. Moore, Benjamin C. Pierce, Alan Schmitt: Combinators for bidirectional tree transformations: A linguistic approach to the view-update problem. ACM Trans. Program. Lang. Syst. 29(3): (2007)
[8] Krzysztof Czarnecki, J. Nathan Foster, Zhenjiang Hu, Ralf Lämmel, Andy Schürr, James F. Terwilliger: Bidirectional Transformations: A Cross-Discipline Perspective. ICMT 2009: 260-283.
[9] Zinovy Diskin: Algebraic Models for Bidirectional Model Synchronization. MoDELS 2008: 21-36.
[10] Aaron Bohannon, Benjamin C. Pierce, Jeffrey A. Vaughan: Relational lenses: a language for updatable views. PODS 2006: 338-347.
[11] Davi M. J. Barbosa, Julien Cretin, Nate Foster, Michael Greenberg, Benjamin C. Pierce: Matching lenses: alignment and view update. ICFP 2010: 193-204.
[12] J. Nathan Foster, Alexandre Pilkiewicz, Benjamin C. Pierce: Quotient lenses. ICFP 2008: 383-396.
[13] Zinovy Diskin, Yingfei Xiong, Krzysztof Czarnecki: From State- to Delta-Based Bidirectional Model Transformations. ICMT 2010: 61-76.
[14] Andy Schürr, Felix Klar: 15 Years of Triple Graph Grammars. ICGT 2008: 411-425.
[15] Soichiro Hidaka, Zhenjiang Hu, Kazuhiro Inaba, Hiroyuki Kato, Kazutaka Matsuda, Keisuke Nakano: Bidirectionalizing graph transformations. ICFP 2010: 205-216.
[16] François Bancilhon, Nicolas Spyratos: Update Semantics of Relational Views. ACM Trans. Database Syst. 6(4): 557-575 (1981).
[17] Janis Voigtländer: Bidirectionalization for free! (Pearl). POPL 2009: 165-176.
[18] Lambert Meertens. Designing constraint maintainers for user interaction, 1998. Unpublished manuscript.
[19] Claus Brabrand, Anders Møller, Michael I. Schwartzbach: Dual syntax for XML languages. Inf. Syst. 33(4-5): 385-406 (2008).
[20] Aaron Bohannon, J. Nathan Foster, Benjamin C. Pierce, Alexandre Pilkiewicz, Alan Schmitt: Boomerang: resourceful lenses for string data. POPL 2008: 407-419.
[21] João Saraiva and Doaitse Swierstra. Generating Spreadsheet-like Tools from Strong Attribute Grammars. GPCE 2003: 307-323.
[22] Janis Voigtländer, Zhenjiang Hu, Kazutaka Matsuda, Meng Wang: Combining syntactic and semantic bidirectionalization. ICFP 2010: 181-192.
[23] Perdita Stevens: Bidirectional model transformations in QVT: semantic issues and open questions. Software and System Modeling 9(1): 7-20 (2010).
[24] Kazutaka Matsuda, Zhenjiang Hu, Keisuke Nakano, Makoto Hamana, Masato Takeichi: Bidirectionalization transformation based on automatic derivation of view complement functions. ICFP 2007: 47-58.
[25] Yingfei Xiong, Hui Song, Zhenjiang Hu, Masato Takeichi: Supporting Parallel Updates with Bidirectional Model Transformations. ICMT 2009: 213-228.
[26] Shinya Kawanaka, Haruo Hosoya: biXid: a bidirectional transformation language for XML. ICFP 2006: 201-214.
[27] Paulo F. Silva, José Nuno Oliveira: 'Galculator': functional prototype of a Galois-connection based proof assistant. PPDP 2008: 44-55.
[28] Alcino Cunha, Jorge Sousa Pinto: Point-free Program Transformation. Fundam. Inform. 66(4): 315-352 (2005).
[29] Alcino Cunha and Hugo Pacheco. Calculating with Lenses: Optimising Bidirectional Transformations. PEPM 2011.
[30] Alcino Cunha, Joost Visser: Strongly Typed Rewriting For Coupled Software Transformation. Electr. Notes Theor. Comput. Sci. 174(1): 17-34 (2007).
[31] Pablo Berdaguer, Alcino Cunha, Hugo Pacheco, Joost Visser: Coupled Schema Transformation and Data Conversion for XML and SQL. PADL 2007: 290-304.
[32] Jácome Cunha, João Saraiva, Joost Visser: From spreadsheets to relational databases and back. PEPM 2009: 179-188.
[33] João Paulo Fernandes and João Saraiva: Tools and Libraries to Model and Manipulate Circular Programs. PEPM 2007: 102-111.
[34] Matthijs Kuiper and João Saraiva: Lrc - A Generator for Incremental Language-Oriented Tools. CC 1998: 298-301.
[35] João Saraiva, S. Doaitse Swierstra, Matthijs F. Kuiper: Functional Incremental Attribute Evaluation. CC 2000: 279-294.
Research team
Manuel Alcino Cunha (J01280889FH)
José Nuno Oliveira (J007694082R)
João Alexandre Saraiva (J0061444XJX3)
Eric Van Wyk (J54551846092)
João Paulo Fernandes (J004089R6XU4)
Jácome Miguel Cunha (J042095115DO)
Hugo Pereira Pacheco (J506826DXX1K)
Nuno Moreira Macedo (J5527957W367)
Scientific activity diffusion actions
Diffusion of the project results to the overall community will mainly
be carried out via the project website. We also intend to invite some IT companies to attend some of the monthly talks and workshops with
the consultants. We will target companies with particular interest in the application domains of the project. The monthly talks will also be open and advertised to
relevant research communities.
Human resources rationale
The main deliverables of this project are BT tools and languages.
Four grants are being requested to support their
implementation. BI1 is assigned to task 2 to support the implementation of the common BT framework. BI2 is assigned to task 3 to develop an Excel plugin for bidirectional spreadsheet transformation. BI3 is assigned to task 4 to support the implementation of the parser and compiler of the proposed bidirectional model transformation language. BI4 is assigned to task 5 for implementation of a LBE for ANSI C. Each of these grant
holders is expected to deliver a master thesis. An additional BI grant is being requested to develop the web-site proposed on task 6.
The requested amount includes the mandatory insurances.
Missions rationale
10 of the expected deliverables are papers in international
conferences. Although it is not possible to predict exactly in which
conferences these papers will be accepted, the PI will define a
publication plan that mostly covers first tier events relevant to the
project area (such as POPL, ICFP, MODELS, or FSE). Since many of
these events are planned to occur outside Europe, we ask for an
average of EUR 2000 per mission in order to support travel,
registration, and living expenses.
Consultants rationale
Zhenjiang Hu, from the National Institute of Informatics (Japan), one of the most prolific authors in the field, responsible for the first attempt at solving the BT problem for graphs. A visit of at least one weak is planned in the second year of the project to discuss research questions related to tasks 4 and 5, two application domains in which this author has done some work. Given the required intercontinental flight, we request an amount of EUR 3000 to support travel and accommodation expenses.
Nate Foster, from Cornell University (USA), the key researcher responsible for the seminal work on lenses. A visit of at least one weak is planned in the first year of the project to actively involve this researcher in the survey to be delivered in task 1, and discuss the generalization of lenses to non-hierarchical models as planned in task 2. Given the required intercontinental flight, we request an amount of EUR 3000 to support travel and accommodation expenses.
Janis Voigtländer, from University of Bonn (Germany), a top researcher on functional programming that first showed the possibility of semantic bidirectionalization. Two visits of at least one weak each are planned. The first will occur early in project to actively involve this researcher in the survey to be delivered in task 1. The second is planned for the second year to discuss issues related to task 3. The planned travel and accommodation expenses for each visit amount to EUR 1500.
Equipment rationale
Apart from personal computers and the standard IT infrastructure, the
project has no special equipment requirements. All senior researchers
and PhD students already own personal computers. The participant
institutions also own web/mail/disk servers to host the project
web-site and support the project development. The requested money is
necessary only to acquire three new personal computers for the grant holders, for whom the participant institutions
currently have no up-to-date machines.
Dez 23
New papers accepted for publication at PEPM'14 and FASE'14.
Aug 26
Tool demo accepted for publication at ASE'13: Nuno Macedo, Tiago Guimarães, and Alcino Cunha, Model Repair and Transformation with Echo.
Mar 18
Our FASE'13 paper on Implementing QVT-R Bidirectional Model Transformations using Alloy is one of the nominated for best paper at ETAPS.
Feb 1
Paper accepted for publication at BX'13: N. Macedo, H. Pacheco, A. Cunha, and J. N. Oliveira: Composing Least-change Lenses.
Dec 21
Two new students have joined the project team as BI grant holders. Nuno Sousa will be working on bidirectionalizing spreadsheet formulas, and Tiago Guimarães will help in the implementation of a QVT-R bidirectional transformation tool.
Dec 18
Paper accepted for publication at FASE'13: N. Macedo and A. Cunha: Implementing QVT-R Bidirectional Model Transformations using Alloy.
Oct 10Two 6 month grants available to work on bidirectional transformations!
Jun 16
Paper accepted for publication at RAMICS'12: N. Macedo, H. Pacheco and A. Cunha: Relations as executable specifications: taming partiality and non-determinism using invariants.
Jun 1
Paper accepted for publication at the post-proceedings of BX'12: H. Pacheco, A. Cunha and Z. Hu. Delta Lenses over Inductive Types.
Old News
Mar 22
Paper accepted for publication at USER'12: J. Cunha, J. P. Fernandes, J. Mendes and J. Saraiva. Towards an Evaluation of Bidirectional Model-driven Spreadsheets.
Poster accepted for presentation at ICSE'12: J. Cunha, J. P. Fernandes, J. Mendes and J. Saraiva. A Bidirectional Model-driven Spreadsheet Environment.
Mar 9
Paper accepted for publication at ICMT'12: H. Pacheco and A. Cunha. Multifocal: A Strategic Bidirectional Transformation Language for XML Schemas.
Mar 9
Paper accepted for publication at ICMT'12: J. Cunha, J. P. Fernandes, J. Mendes, H. Pacheco, and J. Saraiva. Bidirectional Transformation of Model-Driven Spreadsheets.
Feb 7
Paper accepted for presentation at BX'12: H. Pacheco, A. Cunha and Z. Hu. Delta Lenses over Inductive Types.
Feb 7
The project is officially scheduled to begin Mar 1.
Anthony Anjorin, Alcino Cunha, Holger Giese, Frank Hermann, Arend Rensink, Andy Shürr: BenchmarX. In proceedings of the Workshops of the EDBT/ICDT 2014 Joint Conference: 3rd International Workshop on Bidirectional Transformations (BX'14), pages 82-86. CEUR Worshop Proceedings, 2014.
T1 - Formalizing and Reasoning about Bidirectional Transformations
Likewise to the functional subset, this research team has considerable expertise in using the PF relational calculus to reason about disparate application domains [3]. Building on this expertise, the first objective of this task is to show its potential for formalizing and reasoning about bidirectional transformations. To be more specific, we intend to:
Show how this calculus can be used to derive correct-by-construction bidirectional implementations from relational specifications. The typical approach to design a bidirectional language is to define a set of primitive transformations and combinators, and then prove by hand that the former satisfy the desired properties and that the latter preserve them. For some more complex scenarios (for example, the lenses for defining views on relational databases [10]) such proofs are far from trivial and are usually omitted, Moreover, it is not clear why a particular functional implementation is picked given the apparent non-determinism of the original specification. Using the PF relational calculus we intend to recast such works, shedding new light on some of the decisions, and avoiding the a posteriori proofs by deriving correct implementations from specifications.
Simplify the formalization of some issues that are transversal to the field, namely alignment and data redundancy. Establishing the connection between similar elements in the source and target models (alignment) is fundamental for defining accurate backward transformations. This issue is usually left implicit in most bidirectional languages, but some works are emerging where alignment is explicitly formalized [11,13]. As shown in [13] alignment can be intuitively expressed using sameness relations. Concerning redundancy, quotient lenses [12] already showed how equivalence relations can be used to relax bidirectional laws in order to be insensitive to irrelevant model details. We believe the PF style can make the formalization of these issues simpler and speed up proofs.
Show the formal connection between different axiomatizations of bidirectionality. There is no consensus in the community about the formal requirements of a bidirectional transformation framework. Each new system tends to introduce slight variations in the axiomatization of such requirements, making it very difficult for end-users to decide which systems best match their needs. Diskin [9] has already proposed an algebraic framework in which some bidirectional axiomatizations can be compared and analyzed. Using the PF style we intend to simplify and extend his work.
Equipped with this unifying formalism, the second objective of this task is to write a comprehensive survey of the area. Although relatively recent, the body of work is growing exponentially, making it increasingly difficult for end-users and new researchers to dip into the area. The few existing surveys [8] are mere enumerations of existing work, lacking proper taxonomies and metrics to classify and compare the different approaches. To maximize the relevance and impact of the survey, the renowned international consultants of the project will be actively involved in its preparation.
The expected deliverables of this task are:
Two international conference papers showing how the PF relational calculus can be used to formalize and reason about bidirectional transformations.
An international journal paper with a comprehensive survey of the area.
José Nuno Oliveira will be responsible for this task due to his renowned expertise on the PF relational calculus. The the bulk of the work concerning the first objective will be performed by Nuno Macedo, who has just started a PhD precisely on using the PF relational calculus to formalize and reason about bidirectional transformations. Hugo Pacheco and Jácome Cunha will be involved in writing up the survey, given their recent PhDs on related subjects. Alcino Cunha will also be involved due to his longterm research on bidirectional transformations.
T2 - Bidirectional Transformation of Non-hierarchical Models
This task aims at defining a generic bidirectional transformation framework for non-hierarchical models, that does not suffer from the shortcomings of existing systems. It will serve as foundation for the application domains of tasks 3, 4, and 5, and thus constitutes the key deliverable of the project. As argued in the work plan, we believe the PF relational calculus is the ideal formalism to support such framework. As such, we intend to use that formalism to redefine our own 2LT framework, currently built around the PF functional calculus for inductive data types. There are two alternatives we intend to explore in order to support non-hierarchical models in 2LT:
Many non-hierarchical data models can be represented by mere inductive data types enriched with invariants. For instance, sharing in an XML schema with references can be captured by an invariant forcing some elements of the document to be equal. To define a BT over a source data type with invariants, calculations must be performed in order to determine how that invariant migrates to the target, and how it is combined with backwards propagation to achieve consistent updating. The PF relational calculus is particularly well-suited for these calculations, since invariants are naturally captured by coreflexive relations (fragments of the identity relation that model predicates) [3].
Likewise to the functional calculus, it is possible to define a higher-order PF relational calculus. This opens interesting opportunities to use relations not only to specify transformations but as data themselves. The connection to graphs is obvious, since the adjacency matrix is just a representation of a binary relation between nodes. Although calculating with higher-order expressions is not trivial, we have shown in the past how it can be simplified using the PF style [28].
Concerning the implementation, we intend to stay with the previous type-safe approach based on the Haskell functional programming language. This reduces implementation errors, by enforcing the connection between BT rules specified at the type (meta-model) level and the respective forward and backwards implementations at the value (model) level. In order to support optimization and invariant manipulation, a simplifier for PF relational expressions must be developed. For this we intend to capitalize on the experience gathered in the design of Galculator [27], a prototype of a proof assistant based on the algebra of Galois connections, and a simplifier developed for PF program transformations based on strategic rewrite combinators [30]. Likewise to the former version, this new version of the 2LT framework will be distributed as open source software.
The expected deliverables of this task are:
A new version of the 2LT framework supporting non-hirarchical data models.
Two international conference papers and a journal paper describing the achieved results.
A master thesis describing the implementation of the new version of 2LT.
Given the criticality of this common framework to the success of the project, Alcino Cunha (the project PI) will be responsible for this task. He was also the responsible for the development of the first version of 2LT. The bulk of the research work will be developed by the PhD student Nuno Macedo, given his thesis on using the PF relational calculus for BT. A BI grant is planed to support a master student in the implementation of the new version of 2LT. All the remaining members of the team are involved in defining the requirements for the framework, since it will be used to implement the high-level tools for the three application domains to be tackled on tasks 3, 4, and 5.
T3 - Application Domain 1: Spreadsheet Transformation
Spreadsheets are widely used by non-professional programmers, the so-called end users, to develop business applications. These programmers vastly outnumber professional ones creating millions of spreadsheets per year. Spreadsheets are quite flexible, but also very error-prone.
We have shown that the use of business logic models for spreadsheets can prevent errors and improve users productivity [4]. Using such MDE approach, the user is responsible to synchronize the (spreadsheet) models and instances. This is a complex and error-prone task since users may introduce data that violates the model. To overcome these limitations, we will define techniques to keep spreadsheet data and models synchronized. Moreover, to reflect data changes in the model is also an objective. Spreadsheets can be seen as a non-hierarquical structure where nodes are cells and edges references between them. Thus, techniques from task 2 can be used to specify synchronization of spreadsheets. We will take under consideration spreadsheet specific properties, such as layout, that we know from experience [4], can be very useful. This synchronization can be extended to synchronize a spreadsheet and a database (DB). One can imagine a situation where a DB is accessed by several kinds of users: professional programmers access it using SQL and end users using a spreadsheet as a view. In previous work we defined a formal transformation of a spreadsheet into a DB and vice versa, but without synchronization [32]. In this task we will define BTs between spreadsheets and DBs. Both the spreadsheet and the database can be the source and the view, and thus, transformations must be studied in both directions. Changes performed by each kind of users should be reflected in all the views of the DB. This problem is know as the view-update problem and has been studied in the context of DBs. To create a solution for DBs and spreadsheets is challenging for several reasons: in contrast to DBs, spreadsheets have spacial constraints and, moreover, spreadsheets are usually not normalized as DBs. Tools such as Excel can import data from DBs, but synchronization is not possible.
BTs are an important advance for spreadsheets because end users have two possible views: one view contemplates the formulas and another their results. A big source of errors is the replacement of a formula by a value, involuntarily or to have the correct value in such cell. In fact, this can be useful: if this change was back-propagated to the rest of the spreadsheet the user could understand why that result is wrong. We will use BTs to achieve this goal. The forward function is the usual spreadsheet mechanism. The backward one will receive the spreadsheet and the results the user wants and will produce a new updated spreadsheet with the correct values in the corresponding cells. The backward function may be ambiguous, which is a challenge and deserves further study.
We will run empirical studies to assess the impact of our tehcniques in error committing and speed of users doing their tasks. The experience of the team can help to define studies that produce significant validation.
Jácome Cunha has a PhD? on spreadsheets and is now a post-doc fellow working on the same subject. This makes him a good candidate to lead this task. Jácome Cunha was supervised in his PhD? by João Saraiva, which makes him a very experienced person on spreadsheets. João Fernandes' experience working with Jácome Cunha and João Saraiva, also on spreadsheets, is a fundamental for this task. Finally, a BI grant holder will be of great help implementing an Excel tool.
The expected deliverables are:
An extension for Excel.
Two international conference papers and a journal paper describing the techniques developed and their application to the aforementioned scenarios.
A master thesis describing the implementation of the Excel extension.
The objective of this task is to provide a MDA compliant bidirectional model transformation language. The proposed language should be expressive enough to handle the following model-driven software development scenarios:
Refining UML class diagram to relational database schemas. This is the "hello-world" of MDE and the classic benchmark of every new model transformation language. The benefits from bidirectionalization are obvious: a database schema has the unpleasant tendency to gain a life of its own, and this would allow an effective documentation of such evolution, by reflecting the changes back to the UML class diagram. There are several variants of this case-study, using different source modeling languages, that should also be considered.
Viewpoint modeling is a technique for specifying complex software systems in terms of views, possibly independent or at different abstraction levels, that allow the user to focus just on modeling artifacts related to a particular interest area. Obviously, different views may share elements, and specifying and ensuring the consistency between them is a key issue. If views are extracted from the global model using a bidirectional transformation, consistency between views could be achieved using a technique similar to Harmony [7], a data synchronization framework built using lenses. In particular, we intend to target UML, whose daunting meta-model could benefit from this approach: independent teams could focus on different modeling aspects (for instance, class and sequence diagrams), with predictable synchronization guarantees.
In order to foster its widespread adoption, the proposed language should be compatible with the MOF standard. As such, the first step will be to define an encoding from MOF meta-models to the data structures of the common framework to be defined in task 2. The second step will be the definition of the bidirectional transformation language itself. Instead of proposing a completely new language, we intend to research the possibility of defining it as a variation of an existing model transformation language, such as the unidirectional ATLAS Transformation Language (ATL) or the bidirectional QVT-R domain-specific language. The key problem will be to identify subsets of these languages with precise bidirectional semantics. Since they are highly declarative, namely simple mapping rules expressing relationships between elements of the meta-model, we believe that our common framework based on relational calculus will be ideal to support their implementation. The relationships described by the mapping rules can be transliterated to relational specifications in our PF calculus, from which we expect to calculate the required data dependencies and corresponding valid bidirectionalizations. Effective data redundancy and alignment mechanisms must be provided to tame the non-determinism and control flow of the global transformation.
Given his experience on defining BTs on top of 2LT, namely on model transformation from XML schemas to database schemas [31], Hugo Pacheco will be responsible for this task. Nuno Macedo is involved since this application domain is central to the validation of the techniques to be defined on his PhD thesis. The research team of this task includes also Alcino Cunha (supervisor of this thesis) and a BI grant holder (master student) to support the implementation of the parser and compiler of the proposed language.
The expected deliverables of this task are:
A MDA compliant bidirectional model transformation language.
Two international conference papers and a journal paper describing the proposed language and its application to the aforementioned scenarios.
A master thesis describing the implementation of the language.
Attribute grammars (AGs) are widely used to specify complex transformations from a
source program/language into a target one. One well-known and natural application is to define language-based editors: the user edits a source program and the editor (incrementally) computes the target program [34]. These editors, however, do not provide bidirectional transformations, since they are not able to synchronize the source program after a change in the target.
Surprisingly no work has been done in bidirectionalization for AGs directly or in applying existing bidirectional transformation results to AGs, excepting [6].
This work used strings and is not applicable to the hierarchical structures nor the non-hierarchical structures of interest here.
Modern extensions to AGs include references attributes; these allow graphs (non-hierarchical models) to be specified in addition to the traditional syntax trees (hierarchical models). Thus, results from task 2 for non-hierarchical bidirectional transformations will be applicable to graphs used in AG with reference attributes. This will enable the envisioned bidirectional language-based environments. Furthermore, because reference attributes are typically used to impose a non-hierarchical structure on top of an existing hierarchical one (the syntax tree) these may form a restricted yet still useful and interesting sub-class of non-hierarchical models that may provide application-based feedback to the theoretical work of task 2.
A main objective of this task is to study and develop techniques to incorporate all recent
advances in bidirectional transformations into modern extensions of AG. Thus, we will study the foundations of bidirectionalization in modern AG extensions. Furthermore, we will study how to derive the attribute grammar specification of a backward transformation from
the specification of the forward transformation. Finally, we will study how to adapt techniques to produce highly optimized implementations for AG, in order to efficiently and incrementally execute bidirectional transformations. Finally, we will incorporate these techniques
into a bidirectional attribute grammar (BAG) based system.
Two senior team members have done some initial investigations together into BAGs and a research paper has been submitted. We
will build on these results to create a comprehensive, rigorous approach to bidirectional
programming in AG.
The team members have extensive experience in building AG-related artifacts, namely: AG extensions [21], tools [5, 34], optimization/implementation techniques [33,35], AG-based libraries [33] and incremental language-based tools [34]. We will adapt the common framework developed in task 2 to work in an AG setting, specifically as an extension to Silver [5]. Furthermore, the task leader Van Wyk is currently on sabbatical leave at the University of Minho working on bidirectional transformations. This work relates to two existing NSF funded projects that use AGs to build extensible languages tailored to developing high performance programs in data mining and materials science simulations. Since the work proposed here relates directly to the work on these projects Van Wyk will be requesting supplemental funding through the NSF Office of International Science and Engineering for other members of his research group to visit Minho University and actively participate in this project. A BI grant is being requested to support tool implementation.
The expected deliverables of this task are:
A set of techniques and tools that will help programmers to specify powerful transformations in the elegant and concise AG formalism, and to efficiently execute such transformations in advanced BT environments that are automatically generated from an AG.
A master thesis detailing the implementation of such tools.
Two international conference papers and a journal paper describing the achieved results.
The first objective of this task is to develop a web-site on BT, to serve as visible image of the project. This site should have the following functionalities:
Interactive presentation of the results of the survey to be developed in task 1. Namely, the site should allow the user to navigate via the proposed taxonomy and required round-tripping axioms, in order to allow a quick selection of the framework that better suits his needs. Moreover, it should allow easy addition of new BT frameworks and related publications. The BT community currently lacks a site to collect, organize and disseminate information about all aspects of this research field, and we believe this effort could be an embryo of such site.
Web interface for the project's tools. Besides the common (low-level) BT framework for non-hierarchical models, the project is expected to deliver specific BT tools to tackle the different application domains of tasks 3, 4, and 5. All these software will be made available as open source, to allow its reuse in other projects. However, to foster the dissemination of the tools, we intend to provide web-interfaces to allow the user to painlessly test their capabilities without prior installation.
A BI grant is planned to support the development of this site.
The second objective of this task is to organize the first international symposium on BT. The community has been organizing yearly informal workshops on the theme, but we believe there is now enough critical mass to have an international symposium dedicated to the theme. Members of this project team organize every two years the Summer School on Generative and Transformational Techniques in Software Engineering (GTTSE). This event attracts hundreds of students in every edition, and some of the best researchers of the field as lecturers. As expected, many of these participants are also involved in BT, and we believe it would be beneficial to organize such symposium as a co-located event with GTTSE 2013. Besides the obvious benefits to the overall community, we believe this symposium could play a a key role in the dissemination of the project results. In particular, we intend to unveil the aforementioned interactive survey at this event. Given his experience in organizing GTTSE and other major computer science events (namely ETAPS 2007), this organization will be led by João Saraiva, who will also be responsible for this task.
The final objective of this task is to write a cookbook on BT case studies, to aid future programmers solve their problems using the proposed tools. First, a set of case studies within the application domains of the project will be defined. This set should be comprehensive enough to cover most typical design patters and address common pitfalls. To ensure relevance, we intend to involve the project consultants in this task. The cookbook will then detail how these case studies can be implemented with the framework and tools proposed in the project. Following the open access initiative, this book will be freely available online in the project website. Alcino Cunha, Jácome Cunha, Hugo Pacheco, and Eric Van Wyk will be the authors of this book, since they are responsible for developing the common BT framework, and the three specific tools for the project application domains.
To sum up, the expected deliverables of this task are:
A web site with the results of the survey of task 1 and interfaces for the developed tools.
TWiki's Research/FATBIT webThe Research/FATBIT web of TWiki. TWiki is a Web-Based Collaboration Platform for the Enterprise.http://wiki.di.uminho.pt/twiki/bin/view/Research/FATBITCopyright 2020 by contributing authors2015-05-18T14:31:49ZPublicationshttp://wiki.di.uminho.pt/twiki/bin/view/Research/FATBIT/Publications2015-05-18T14:31:49ZPublications Journal papers Jácome Cunha, João Paulo Fernandes, Jorge Mendes, João Saraiva: Embedding, Evolution, and Validation of Model Driven Spreadsheets ... (last changed by NunoMacedo)NunoMacedoNewshttp://wiki.di.uminho.pt/twiki/bin/view/Research/FATBIT/News2013-12-23T18:54:45ZDez 23 New papers accepted for publication at PEPM'14 and FASE'14. Aug 26 Tool demo accepted for publication at ASE'13: Nuno Macedo, Tiago Guimarães, and Alcino ... (last changed by AlcinoCunha)AlcinoCunhaWorkshopOctober2013http://wiki.di.uminho.pt/twiki/bin/view/Research/FATBIT/WorkshopOctober20132013-10-02T13:39:08ZFATBIT Workshop, Braga, October 3, 2013 Participants Alcino Cunha Jácome Cunha Tiago Guimarães Hu Tiago Jorge Nuno Macedo Nuno ... (last changed by AlcinoCunha)AlcinoCunhaWorkshopJuly2013http://wiki.di.uminho.pt/twiki/bin/view/Research/FATBIT/WorkshopJuly20132013-09-30T08:51:15ZFATBIT Workshop, Braga, July 17, 2013 Participants José Creissac Campos Alcino Cunha João Miguel Fernandes Tiago Guimarães Tiago Jorge ... (last changed by AlcinoCunha)AlcinoCunhaWebSideBarhttp://wiki.di.uminho.pt/twiki/bin/view/Research/FATBIT/WebSideBar2013-09-30T08:50:55ZHome Project Description Research Team Opportunities Publications Workshop 1 Workshop 2 Workshop 3 News (last changed by AlcinoCunha)AlcinoCunhaTeamhttp://wiki.di.uminho.pt/twiki/bin/view/Research/FATBIT/Team2013-07-24T14:21:41ZResearch Team Alcino Cunha (University of Minho, Portugal) Van Wyk (University of Minnesota, USA) Nuno Oliveira (University of Minho, Portugal) ... (last changed by AlcinoCunha)AlcinoCunhaWorkshop2012http://wiki.di.uminho.pt/twiki/bin/view/Research/FATBIT/Workshop20122013-07-12T13:39:55ZJoint FATBIT/SSaaPP Workshop, Braga, September 17 18, 2012 Participants José Bacelar Almeida José Creissac Campos Alcino Cunha Jácome Cunha ... (last changed by AlcinoCunha)AlcinoCunhaOldNewshttp://wiki.di.uminho.pt/twiki/bin/view/Research/FATBIT/OldNews2012-12-21T10:45:02ZMar 22 Paper accepted for publication at USER'12: J. Cunha, J. P. Fernandes, J. Mendes and J. Saraiva. Towards an Evaluation of Bidirectional Model driven Spreadsheets ... (last changed by AlcinoCunha)AlcinoCunhaJobshttp://wiki.di.uminho.pt/twiki/bin/view/Research/FATBIT/Jobs2012-12-14T20:44:37ZOpportunities Nothing available at this moment, but please contact alcino #64;di.uminho.pt if you are interested on working in bidirectional transformations. (last changed by AlcinoCunha)AlcinoCunhaWebHomehttp://wiki.di.uminho.pt/twiki/bin/view/Research/FATBIT/WebHome2012-07-31T16:31:33ZFoundations, Applications and Tools for Bidirectional Transformation This project aims to propose effective bidirectional transformation (BT) frameworks for three ... (last changed by AlcinoCunha)AlcinoCunhaDescriptionhttp://wiki.di.uminho.pt/twiki/bin/view/Research/FATBIT/Description2012-02-07T14:18:11ZSummary With the ever growing list of programming languages and software development frameworks, transforming a data model into a different format is essential to ... (last changed by AlcinoCunha)AlcinoCunhaWebPreferenceshttp://wiki.di.uminho.pt/twiki/bin/view/Research/FATBIT/WebPreferences2012-02-07T13:49:00ZResearch/FATBIT Web Preferences The following settings are web preferences of the Research/FATBIT web. These preferences overwrite the site level preferences ... (last changed by AlcinoCunha)AlcinoCunhaT3http://wiki.di.uminho.pt/twiki/bin/view/Research/FATBIT/T32011-02-23T14:27:24ZT3 Application Domain 1: Spreadsheet Transformation Spreadsheets are widely used by non professional programmers, the so called end users, to develop business applications ... (last changed by JacomeCunha)JacomeCunhaFctFormhttp://wiki.di.uminho.pt/twiki/bin/view/Research/FATBIT/FctForm2011-02-23T14:20:09ZSummary 5000 With the ever growing list of programming languages and software development frameworks, transforming a data model into a different format is essential ... (last changed by AlcinoCunha)AlcinoCunhaT5http://wiki.di.uminho.pt/twiki/bin/view/Research/FATBIT/T52011-02-22T15:33:43ZT5 Application Domain 3: Attribute Grammars Attribute grammars (AGs) are widely used to specify complex transformations from a source program/language into a target ... (last changed by HugoPacheco)HugoPachecoT2http://wiki.di.uminho.pt/twiki/bin/view/Research/FATBIT/T22011-02-22T14:42:23ZT2 Bidirectional Transformation of Non hierarchical Models This task aims at defining a generic bidirectional transformation framework for non hierarchical models ... (last changed by AlcinoCunha)AlcinoCunha
Publications Journal papers Jácome Cunha, João Paulo Fernandes, Jorge Mendes, João Saraiva: Embedding, Evolution, and Validation of Model Driven Spreadsheets ...
Dez 23 New papers accepted for publication at PEPM'14 and FASE'14. Aug 26 Tool demo accepted for publication at ASE'13: Nuno Macedo, Tiago Guimarães, and Alcino ...
Mar 22 Paper accepted for publication at USER'12: J. Cunha, J. P. Fernandes, J. Mendes and J. Saraiva. Towards an Evaluation of Bidirectional Model driven Spreadsheets ...
Opportunities Nothing available at this moment, but please contact alcino #64;di.uminho.pt if you are interested on working in bidirectional transformations.
Foundations, Applications and Tools for Bidirectional Transformation This project aims to propose effective bidirectional transformation (BT) frameworks for three ...
Summary With the ever growing list of programming languages and software development frameworks, transforming a data model into a different format is essential to ...
Research/FATBIT Web Preferences The following settings are web preferences of the Research/FATBIT web. These preferences overwrite the site level preferences ...
T3 Application Domain 1: Spreadsheet Transformation Spreadsheets are widely used by non professional programmers, the so called end users, to develop business applications ...
Summary 5000 With the ever growing list of programming languages and software development frameworks, transforming a data model into a different format is essential ...
T5 Application Domain 3: Attribute Grammars Attribute grammars (AGs) are widely used to specify complex transformations from a source program/language into a target ...
T2 Bidirectional Transformation of Non hierarchical Models This task aims at defining a generic bidirectional transformation framework for non hierarchical models ...
T4 Application Domain 2: Model Driven Engineering The objective of this task is to provide a MDA compliant bidirectional model transformation language. The proposed ...
T6 Dissemination and Case Studies The first objective of this task is to develop a web site on BT, to serve as visible image of the project. This site should have ...
T1 Formalizing and Reasoning about Bidirectional Transformations Likewise to the functional subset, this research team has considerable expertise in using the PF relational ...
Foundations, Applications and Tools for Bidirectional Transformation
This project aims to propose effective bidirectional transformation (BT) frameworks for three relevant application domains: model-driven engineering, spreadsheet validation and transformation, and language-based editors defined with attribute grammars. Common to these application domains is the fact that models cannot be captured by pure hierarchical (tree-like) data structures. Although effective BT frameworks have been proposed to handle hierarchical models, no generic and effective framework has yet been proposed for non-hierarchical ones. We intend to do so by relying on the point-free relational calculus, a quantifier free formalization of first-order logic, popularized in the algebra of programming community. This calculus deals naturally with non-determinism and partiality, two key issues in the formalization of BTs. It is also amenable to calculation thanks to its purely equational reasoning style, which opens interesting opportunities for BT optimization.
Project info
Supported by
This work is funded by the ERDF through the programme COMPETE and by the Portuguese Government through FCT (Foundation for Science and Technology), project reference FCOMP-01-0124-FEDER-020532
Summary With the ever growing list of programming languages and software development frameworks, transforming a data model into a different format is essential to ...
Summary 5000 With the ever growing list of programming languages and software development frameworks, transforming a data model into a different format is essential ...
Opportunities Nothing available at this moment, but please contact alcino #64;di.uminho.pt if you are interested on working in bidirectional transformations.
Dez 23 New papers accepted for publication at PEPM'14 and FASE'14. Aug 26 Tool demo accepted for publication at ASE'13: Nuno Macedo, Tiago Guimarães, and Alcino ...
Mar 22 Paper accepted for publication at USER'12: J. Cunha, J. P. Fernandes, J. Mendes and J. Saraiva. Towards an Evaluation of Bidirectional Model driven Spreadsheets ...
Publications Journal papers Jácome Cunha, João Paulo Fernandes, Jorge Mendes, João Saraiva: Embedding, Evolution, and Validation of Model Driven Spreadsheets ...
T1 Formalizing and Reasoning about Bidirectional Transformations Likewise to the functional subset, this research team has considerable expertise in using the PF relational ...
T2 Bidirectional Transformation of Non hierarchical Models This task aims at defining a generic bidirectional transformation framework for non hierarchical models ...
T3 Application Domain 1: Spreadsheet Transformation Spreadsheets are widely used by non professional programmers, the so called end users, to develop business applications ...
T4 Application Domain 2: Model Driven Engineering The objective of this task is to provide a MDA compliant bidirectional model transformation language. The proposed ...
T5 Application Domain 3: Attribute Grammars Attribute grammars (AGs) are widely used to specify complex transformations from a source program/language into a target ...
T6 Dissemination and Case Studies The first objective of this task is to develop a web site on BT, to serve as visible image of the project. This site should have ...
Foundations, Applications and Tools for Bidirectional Transformation This project aims to propose effective bidirectional transformation (BT) frameworks for three ...
Research/FATBIT Web Preferences The following settings are web preferences of the Research/FATBIT web. These preferences overwrite the site level preferences ...
This is a subscription service to be automatically notified by e-mail when topics change in this Research/FATBIT web. This is a convenient service, so you do not have to come back and check all the time if something has changed. To subscribe, please add a bullet with your WikiName in alphabetical order to this list:
Each TWiki web has an automatic e-mail notification service that sends you an e-mail with links to all of the topics modified since the last alert.
Users subscribe to email notifications using their WikiName or an alternative email address, and can specify the webs/topics they wish to track using one of these bullet list formats:
three spaces * [ webname . ] wikiName - SMTP mail address three spaces * [ webName . ] wikiName three spaces * SMTP mail address three spaces * SMTP mail address : topics three spaces * [ webname . ] wikiName : topics
In the above examples, topics is a space-separated list of topic names. The user may further customize the specific content they will receive using the following formats:
Specify topics without a Web. prefix
Topics must exist in this web.
Topics may be specified using * wildcards
Each topic may optionally be preceded by a '+' or '-' sign. The '+' sign means "subscribe to this topic" (the same as not putting anything). The '-' sign means "unsubscribe" or "don't send notifications regarding this topic". This allows users to elect to filter out certain topics (and their children, to an arbitrary depth). Topic filters ('-') take precedence over topic includes ('+').
Each topic may optionally be followed by an integer in parentheses, indicating the depth of the tree of children below that topic. Changes in all these children will be detected and reported along with changes to the topic itself. Note This uses the TWiki "Topic parent" feature.
Each topic may optionally be immediately followed by an exclamation mark ! or a question mark ? with no intervening spaces, indicating that the topic (and children if there is a tree depth specifier as well) should be mailed out as complete topics instead of change summaries. ! causes the topic to be mailed every time even if there have been no changes, ? will mail the topic only if there have been changes to it. This only makes sense for subscriptions.
For example:
Subscribe Daisy to all changes to topics in this web.
* daisy.cutter@flowers.com
Subscribe Daisy to all changes in all webs that start with Web.
* daisy.cutter@flowers.com: Web*
Subscribe Daisy to changes to topics starting with Petal, and their immediate children, WeedKillers and children to a depth of 3, and all topics that match start with Pretty and end with Flowers e.g. PrettyPinkFlowers
Subscribe Daisy to the full content of NewsLetter whenever it has changed
* daisy@flowers.com: TWiki.NewsLetter?
Subscribe buttercup to NewsLetter and its immediate children, even if it hasn't changed.
* buttercup@flowers.com: TWiki.NewsLetter! (1)
Subscribe GardenGroup (which includes Petunia) to all changed topics under AllnewsLetters to a depth of 3. Then unsubscribe Petunia from the ManureNewsLetter, which she would normally get as a member of GardenGroup? :
A user may be listed many times in the WebNotify topic. Where a user has several lines in WebNotify that all match the same topic, they will only be notified about changes that topic once (though they will still receive individual mails for news topics).
If a TWiki group is listed for notification, the group will be recursively expanded to the e-mail addresses of all members.
Tip: List names in alphabetical order to make it easier to find the names.
Note for System Administrators: Notification is supported by an add-on to the TWiki kernel called the MailerContrib. See the MailerContrib topic for details of how to set up this service.
Note: If you prefer a news feed, point your reader to WebRss (for RSS 1.0 feeds) or WebAtom (for ATOM 1.0 feeds). Learn more at WebRssBase and WebAtomBase, respectively.
Related topics:WebChangesAlert, TWikiUsers, TWikiRegistration
If yes, set SITEMAPLIST to on, do not set NOSEARCHALL, and add the "what" and "use to..." description for the site map. Make sure to list only links that include the name of the web, e.g. Research/FATBIT.Topic links.
Set SITEMAPLIST = on
Set SITEMAPWHAT = Foundations, Applications and Tools for Bidirectional Transformation
Set SITEMAPUSETO = Foundations, Applications and Tools for Bidirectional Transformation
Exclude web from a web="all" search: (Set to on for hidden webs)
Set NOSEARCHALL =
Prevent automatic linking of WikiWords and acronyms (if set to on); link WikiWords (if empty); can be overwritten by web preferences:
#Set NOAUTOLINK =
Note: You can still use the [[...][...]] syntax to link topics if you disabled WikiWord linking. The <noautolink> ... </noautolink> syntax can be used to prevents links within a block of text.
Default template for new topics for this web:
WebTopicEditTemplate? : Default template for new topics in this web. (Site-level is used if topic does not exist)
Comma separated list of forms that can be attached to topics in this web. See TWikiForms for more information.
Set WEBFORMS =
Users or groups who are not / are allowed to view / change / rename topics in the Research/FATBIT web: (See TWikiAccessControl). Remove the # to enable any of these settings. Remember that an empty setting is a valid setting; setting DENYWEBVIEW to nothing means that anyone can view the web.
Preferences are used as TWikiVariables by enclosing the name in percent signs. Example:
When you write variable %WEBBGCOLOR% , it gets expanded to #D0D0D0
The sequential order of the preference settings is significant. Define preferences that use other preferences first, i.e. set WEBCOPYRIGHT before WIKIWEBMASTER since %WEBCOPYRIGHT% uses the %WIKIWEBMASTER% variable.
You can introduce your own preferences variables and use them in your topics and templates.
TWiki search results for \.*
http://wiki.di.uminho.pt/twiki/bin/view/Research/FATBIT
The Research/FATBIT web of TWiki. TWiki is a Web-Based Collaboration Platform for the Enterprise.en-usCopyright 2020 by contributing authorsTWiki Administrator [webmaster@di.uminho.pt]The contributing authors of TWikiTWikiDIUM.Research/FATBIT
http://wiki.di.uminho.pt/twiki/bin/view/Research/FATBIT
/twiki/pub/Main/LocalLogos/um_eengP.jpgPublications
http://wiki.di.uminho.pt/twiki/bin/view/Research/FATBIT/Publications
Publications Journal papers Jácome Cunha, João Paulo Fernandes, Jorge Mendes, João Saraiva: Embedding, Evolution, and Validation of Model Driven Spreadsheets ... (last changed by NunoMacedo)2015-05-18T14:31:49ZNunoMacedoNews
http://wiki.di.uminho.pt/twiki/bin/view/Research/FATBIT/News
Dez 23 New papers accepted for publication at PEPM'14 and FASE'14. Aug 26 Tool demo accepted for publication at ASE'13: Nuno Macedo, Tiago Guimarães, and Alcino ... (last changed by AlcinoCunha)2013-12-23T18:54:45ZAlcinoCunhaWorkshopOctober2013
http://wiki.di.uminho.pt/twiki/bin/view/Research/FATBIT/WorkshopOctober2013
FATBIT Workshop, Braga, October 3, 2013 Participants Alcino Cunha Jácome Cunha Tiago Guimarães Hu Tiago Jorge Nuno Macedo Nuno ... (last changed by AlcinoCunha)2013-10-02T13:39:08ZAlcinoCunhaWorkshopJuly2013
http://wiki.di.uminho.pt/twiki/bin/view/Research/FATBIT/WorkshopJuly2013
FATBIT Workshop, Braga, July 17, 2013 Participants José Creissac Campos Alcino Cunha João Miguel Fernandes Tiago Guimarães Tiago Jorge ... (last changed by AlcinoCunha)2013-09-30T08:51:15ZAlcinoCunhaWebSideBar
http://wiki.di.uminho.pt/twiki/bin/view/Research/FATBIT/WebSideBar
Home Project Description Research Team Opportunities Publications Workshop 1 Workshop 2 Workshop 3 News (last changed by AlcinoCunha)2013-09-30T08:50:55ZAlcinoCunhaTeam
http://wiki.di.uminho.pt/twiki/bin/view/Research/FATBIT/Team
Research Team Alcino Cunha (University of Minho, Portugal) Van Wyk (University of Minnesota, USA) Nuno Oliveira (University of Minho, Portugal) ... (last changed by AlcinoCunha)2013-07-24T14:21:41ZAlcinoCunhaWorkshop2012
http://wiki.di.uminho.pt/twiki/bin/view/Research/FATBIT/Workshop2012
Joint FATBIT/SSaaPP Workshop, Braga, September 17 18, 2012 Participants José Bacelar Almeida José Creissac Campos Alcino Cunha Jácome Cunha ... (last changed by AlcinoCunha)2013-07-12T13:39:55ZAlcinoCunhaOldNews
http://wiki.di.uminho.pt/twiki/bin/view/Research/FATBIT/OldNews
Mar 22 Paper accepted for publication at USER'12: J. Cunha, J. P. Fernandes, J. Mendes and J. Saraiva. Towards an Evaluation of Bidirectional Model driven Spreadsheets ... (last changed by AlcinoCunha)2012-12-21T10:45:02ZAlcinoCunhaJobs
http://wiki.di.uminho.pt/twiki/bin/view/Research/FATBIT/Jobs
Opportunities Nothing available at this moment, but please contact alcino #64;di.uminho.pt if you are interested on working in bidirectional transformations. (last changed by AlcinoCunha)2012-12-14T20:44:37ZAlcinoCunhaWebHome
http://wiki.di.uminho.pt/twiki/bin/view/Research/FATBIT/WebHome
Foundations, Applications and Tools for Bidirectional Transformation This project aims to propose effective bidirectional transformation (BT) frameworks for three ... (last changed by AlcinoCunha)2012-07-31T16:31:33ZAlcinoCunhaDescription
http://wiki.di.uminho.pt/twiki/bin/view/Research/FATBIT/Description
Summary With the ever growing list of programming languages and software development frameworks, transforming a data model into a different format is essential to ... (last changed by AlcinoCunha)2012-02-07T14:18:11ZAlcinoCunhaWebPreferences
http://wiki.di.uminho.pt/twiki/bin/view/Research/FATBIT/WebPreferences
Research/FATBIT Web Preferences The following settings are web preferences of the Research/FATBIT web. These preferences overwrite the site level preferences ... (last changed by AlcinoCunha)2012-02-07T13:49:00ZAlcinoCunhaT3
http://wiki.di.uminho.pt/twiki/bin/view/Research/FATBIT/T3
T3 Application Domain 1: Spreadsheet Transformation Spreadsheets are widely used by non professional programmers, the so called end users, to develop business applications ... (last changed by JacomeCunha)2011-02-23T14:27:24ZJacomeCunhaFctForm
http://wiki.di.uminho.pt/twiki/bin/view/Research/FATBIT/FctForm
Summary 5000 With the ever growing list of programming languages and software development frameworks, transforming a data model into a different format is essential ... (last changed by AlcinoCunha)2011-02-23T14:20:09ZAlcinoCunhaT5
http://wiki.di.uminho.pt/twiki/bin/view/Research/FATBIT/T5
T5 Application Domain 3: Attribute Grammars Attribute grammars (AGs) are widely used to specify complex transformations from a source program/language into a target ... (last changed by HugoPacheco)2011-02-22T15:33:43ZHugoPachecoT2
http://wiki.di.uminho.pt/twiki/bin/view/Research/FATBIT/T2
T2 Bidirectional Transformation of Non hierarchical Models This task aims at defining a generic bidirectional transformation framework for non hierarchical models ... (last changed by AlcinoCunha)2011-02-22T14:42:23ZAlcinoCunha
With the ever growing list of programming languages and software development frameworks, transforming a data model into a different format is essential to "bridge the gap" between technology layers and enable information sharing among applications. Ideally, these transformations should be bidirectional, allowing changes to a model to be safely propagated to another. The naive approach to bidirectional transformation (BT) is to engineer two unidirectional transformations together and manually prove that they are consistent according to the required round-tripping axioms. This gives rise to maintenance problems, besides being notoriously expensive and error-prone: any change in a data format implies a redefinition of both transformations, and a new consistency proof. A better approach is to design a domain-specific language in which one expression denotes both transformations, ensured consistent by construction.
The BT research community is growing by the day, with new languages and frameworks being proposed to tackle the most diverse scenarios. This project aims to extend such coverage and propose effective BT frameworks for three relevant application domains: model-driven engineering (MDE), spreadsheet validation and transformation, and language-based editors (LBEs) defined with attribute grammars (AGs).
MDE prescribes the use of automatic model transformations to generate correct implementations by step-wise refinement of high-level platform independent models. Managing model inconsistency is a key issue and several ad-hoc techniques for model/code synchronization and round-trip engineering have been proposed. BT address this problem upfront, and increasing effort is being dedicated by the MDE community to the design of bidirectional model transformation languages. Unfortunately, these are still plagued with semantic ambiguities or expressiveness limitations that outlaw many interesting problems. A main aim of this project is thus to define a model transformation language with precise bidirectional semantics, expressive enough to handle classic MDE scenarios.
Spreadsheets are widely used by non-professional programmers to develop business applications. These programmers vastly outnumber the professional ones and create millions of spreadsheets every year. Spreadsheets are quite flexible, but they are also very error prone. Spreadsheet models specifying the business logic can prevent errors and improve users productivity. Unfortunately, manually synchronizing such models and instances is a complex task. Moreover, the spreadsheet model may evolve over time and, therefore, the data has to be adapted to conform to the new model. In this project we intend to apply BTs not only to automate such synchronization and evolution, but also to allow collaborative editing of different views of the same spreadsheet.
The definition of LBEs is a well-known application of AGs. The AG and the derived editor define a unidirectional transformation: users can edit the source program and the target one is automatically (and incrementally) synchronized after user interaction; however, they are still unable to synchronize the source program after a change in the target. This problem could be addressed by developing a BT system for AGs. Surprisingly, despite the existence of prototype bidirectional LBEs, little work has been done in defining generic BT mechanisms specifically for AGs. That is the research direction we intend to follow in this project, and we expect such a mechanism to be a major contribution to the overall AG community.
Common to these application domains is the fact that models cannot be captured by pure hierarchical (tree-like) data structures. Of course, they can be represented in XML-like formats by relying on internal key references to model circularity or sharing between elements. Although effective BT frameworks have been proposed to handle hierarchical models, no generic and effective framework has yet been proposed for non-hierarchical ones. We intend to do so by relying on the point-free (PF) relational calculus, a quantifier free formalization of first-order logic, popularized in the algebra of programming community. This calculus deals naturally with non-determinism and partiality, two key issues in the formalization of BTs. It is also amenable to calculation thanks to its purely equational reasoning style, which opens interesting opportunities for BT optimization.
With the ever growing list of programming languages and software development frameworks, transforming a data model into a different format is essential to "bridge the gap" between technology layers and enable information sharing among applications. Ideally, these transformations should be bidirectional, allowing changes to a model to be safely propagated to another. The naive approach to bidirectional transformation (BT) is to engineer two unidirectional transformations together and manually prove that they are consistent according to the required round-tripping axioms. This gives rise to maintenance problems, besides being notoriously expensive and error-prone: any change in a data format implies a redefinition of both transformations, and a new consistency proof. A better approach is to design a domain-specific language in which one expression denotes both transformations, ensured consistent by construction.
The BT research community is growing by the day, with new languages and frameworks being proposed to tackle the most diverse scenarios [8]. This project aims to extend such coverage and propose effective BT frameworks for three relevant application domains: model-driven engineering (MDE), spreadsheet validation and transformation, and language-based editors (LBEs) defined with attribute grammars (AGs).
MDE prescribes the use of automatic model transformations to generate correct implementations by step-wise refinement of high-level platform independent models. Managing model inconsistency is a key issue and several ad-hoc techniques for model/code synchronization and round-trip engineering have been proposed. BT address this problem upfront, and increasing effort is being dedicated by the MDE community to the design of bidirectional model transformation languages. Unfortunately, these are still plagued with semantic ambiguities or expressiveness limitations that outlaw many interesting problems. A main aim of this project is thus to define a model transformation language with precise bidirectional semantics, expressive enough to handle classic MDE scenarios.
Spreadsheets are widely used by non-professional programmers to develop business applications. These programmers vastly outnumber the professional ones and create millions of spreadsheets every year. Spreadsheets are quite flexible, but they are also very error prone. Spreadsheet models specifying the business logic can prevent errors and improve users productivity. Unfortunately, manually synchronizing such models and instances is a complex task. Moreover, the spreadsheet model may evolve over time and, therefore, the data has to be adapted to conform to the new model. In this project we intend to apply BTs not only to automate such synchronization and evolution, but also to allow collaborative editing of different views of the same spreadsheet.
The definition of LBEs is a well-known application of AGs. The AG and the derived editor define a unidirectional transformation: users can edit the source program and the target one is automatically (and incrementally) synchronized after user interaction; however, they are still unable to synchronize the source program after a change in the target. This problem could be addressed by developing a BT system for AGs. Surprisingly, despite the existence of prototype bidirectional LBEs, little work has been done in defining generic BT mechanisms specifically for AGs. That is the research direction we intend to follow in this project, and we expect such a mechanism to be a major contribution to the overall AG community.
Common to these application domains is the fact that models cannot be captured by pure hierarchical (tree-like) data structures. Of course, they can be represented in XML-like formats by relying on internal key references to model circularity or sharing between elements. Although effective BT frameworks have been proposed to handle hierarchical models, no generic and effective framework has yet been proposed for non-hierarchical ones. We intend to do so by relying on the point-free (PF) relational calculus, a quantifier free formalization of first-order logic, popularized in the algebra of programming community. This calculus deals naturally with non-determinism and partiality, two key issues in the formalization of BTs. It is also amenable to calculation thanks to its purely equational reasoning style, which opens interesting opportunities for BT optimization.
The project team is widely known for its expertise with the PF calculus [3,28], namely its application to the formalization and optimization of BTs for inductive data types [1,2,29,30,31]. By combining this expertise with other key competences on AGs [5,35,36] and spreadsheet transformation and reverse-engineering [4,32], we believe to be well positioned to carry out the proposed tasks. This expectation is supported by the endorsement of some of the top researchers in the field, who will act as consultants to the project.
Sumário [5000]
Com o crescente número de linguagens de programação e ambientes de desenvolvimento de software, a transformação de dados entre diferentes formatos é essencial para fazer a interface entre camadas tecnológicas e partilhar informação entre aplicações. Idealmente, estas transformações devem ser bidireccionais: mudanças em cada um dos modelos devem ser correctamente propagadas para o outro. A abordagem mais simples às transformação bidireccional (TB) consiste em criar duas transformações unidireccionais e provar manualmente que são consistentes segundo certos axiomas. Esta abordagem acarreta problemas de manutenção, além de ser trabalhosa e propícia a erros: mudanças num formato implicam a redefinição de ambas as transformações e uma nova prova de consistência. Uma abordagem mais interessante consiste na criação de uma linguagem de domínio específico em que uma expressão denota ambas as transformações, consistentes por construção.
A investigação em TB tem crescido significativamente, originando várias linguagens e frameworks para os mais diversos cenários [8]. Este projecto tenciona estender esse conhecimento, propondo novas técnicas para três domínios de aplicação específicos: engenharia orientada aos modelo (EOM), validação e transformação de folhas de cálculo (FC) e editores orientados à linguagem (EOL) definidos por gramáticas de atributos (GAs).
A EOM propõe o uso de transformações automáticas para a geração de implementações por refinamento de modelos de alto nível. Gerir a inconsistência é um problema central, e várias técnicas foram proposta para assegurar a sincronização entre código/modelo e para engenharia reversa. A comunidade de EOM tem procurado resolver este problema propondo várias linguagens para TB. Infelizmente, estas linguagens sofrem de ambiguidades semânticas ou limitações de expressividade, que impedem a sua aplicação em problemas reais. Um dos objectivos deste projecto é definir uma linguagem para TB de modelos com uma semântica bidireccional precisa, suficientemente expressiva para abordar casos de estudo clássicos da EOM.
As FCs são normalmente utilizadas por programadores não-profissionais no desenvolvimento de aplicações de negócio. Esta classe de programadores supera largamente a dos programadores profissionais e é responsável pela criação de milhões de FCs todos os anos. As FCs oferecem um ambiente de programação flexível mas também muito propício a erros. Modelos de FCs que especifiquem a lógica de negócio podem prevenir erros e melhorar a produtividade, mas sincronizar manualmente esses modelos com as respectivas instâncias é uma tarefa complexa: nomeadamente, o modelo pode evoluir com o tempo, devendo os dados ser adaptados nesse processo. Neste projecto pretende-se aplicar TBs não apenas para automatizar essa sincronização e evolução, mas também para permitir a edição colaborativa de diferentes vistas da mesma FC.
A definição de EOLs é uma aplicação bem conhecida das GAs. Os editores implementados com GAs definem uma transformação unidirecional: ao editar o programa de origem, o destino é automaticamente sincronizado; no entanto, não é possível sincronizar o programa de origem após alterações no destino. Este problema pode ser solucionado com a criação de um sistema de TB para GAs. Apesar da existência de protótipos bidireccionais para EOLs, pouco trabalho existe sobre mecanismos de bidireccionalização genéricos para GAs. Este projecto pretende desenvolver um tal mecanismo, devendo o mesmo constituir uma contribuição importante para a comunidade de GAs em geral.
Comum a estes domínios de aplicação é o facto de os modelos não poderem ser representados por estruturas de dados puramente hierárquicas. Podem por exemplo ser representados em formatos tipo XML, mas recorrendo a referências internas para modelar a circularidade ou partilha entre elementos. Apesar de já existirem frameworks de TB eficazes para modelos hierárquicos, não foram ainda propostas frameworks genéricas e igualmente eficazes para os seus homólogos não-hierárquicos. Pretendemos resolver esse problema recorrendo ao cálculo relacional point-free (PF), uma formalização sem quantificadores da lógica de primeira ordem popularizada na comunidade da álgebra de programação. Além de lidar naturalmente com questões chave em TB, tais como o não-determinismo ou a parcialidade, este formalismo facilita a automação devido ao estilo de cálculo puramente equacional, abrindo perspectivas para optimização de TBs.
A equipa do projecto é bem conhecida pela sua experiência no cálculo PF [3,28], em especial na sua aplicação à formalização e optimização de TBs para tipos de dados inductivos [1,2,29,30,31]. Combinando este conhecimento com outras competências chave em GAs [5,35,36] e na transformação e engenharia-reversa de FCs [4,32], acreditamos estar aptos para atingir os objectivos propostos. Esta expectativa é suportada pelo apoio de vários investigadores de topo na área, que aceitaram ser consultores do projecto.
Literature Review [6000]
Several programming languages have been designed with bijectivity in mind, being thus trivially bidirectional. Bijectivity is a too strong requirement for bidirectionality, unable to cover many interesting model transformation scenarios. However, even this restricted semantics is usually not formally guaranteed, like in biXid [26], or postulated modulo unimportant details, such as XSugar [19].
A distinctive contribution to the field is the tree transformation language proposed Foster et al [7], whose building blocks are the so-called lenses. Unlike bijective languages, a lens can describe a data abstraction (involving a forward get function and a backward put function) that satisfies formal round-tripping axioms ensuring predictable bidirectional behavior. Essentially, lenses provide a solution to the well-known view-update problem for databases: given an update on the target view, how to reasonably translate it to the source model? Restricted solutions to this problem have emerged since the late 70's, namely based on the so-called constant complement approach [16].
After that seminal work, the same authors have proposed bidirectional lens-based languages for other data models, namely: relational database schemas [10], based on a type system with functional dependencies and giving bidirectional semantics to standard relational algebra operators; strings [20], based on a type system for regular expressions, where each lens combinator denotes an operator such as union, concatenation or Kleene-star. Other authors have capitalized on the lens framework. For example, Hidaka et al have recently proposed a bidirectional graph transformation language [15], by giving a formal bidirectional semantics to the UnQL graph query language.
To ensure that BTs satisfy the prescribed round-tripping axioms it is typical to restrict their domains with type invariants [7,3]. Another approach could be to ignore redundant model details, such as whitespaces in XSugar [19]. Quotient lenses [12] propose loosening the existing lens properties modulo equivalence relations to make them insensitive to such details. Lenses are purely state-based, ignoring the actual editing operations that lead to an update in the view. Sometimes this originates misaligned updates in the source model. Matching lenses [11] attempt to solve this problem by keeping track of the provenance of each element of the view. A more general update-based framework, where put actually receives the update delta and not only the resulting state has been abstractly formulated [13].
Most of these works are asymmetric, in the sense that there is a prescribed direction for update propagation. A more general symmetric framework have been proposed by Meertens for the construction of constraint maintainers for user interfaces [8]: a symmetric BT includes two procedures that, given changes to one model, propagate them to the other in order to satisfy a given consistency relation. Model-driven BT languages, such as Triple Graph Grammars (TGGs) [14] and the Object Management Group (OMG) own Queries, Views and Transformations Relations (QVT-R) use a similar approach: the user specifies a mapping between meta-model elements and a symmetric BT is derived automatically. Unfortunately, unlike in Meertens approach, it is unclear which are the round-tripping axioms guaranteed by such languages and how exactly a BT is derived from the constraint specification, as pointed out in [23].
BTs also play an important role as low-level constructs to build synchronization systems with meaningful properties. A classic example is the usage of lenses at the core of the Harmony [7] synchronization system for heterogeneous data. This connection is explored further in [25], where QVT-R bidirectional maintainers, together with a model differing approach, are used to build a model synchronizer for EMF models.
Mu et al have studied the automatic inversion of transformations defined in a PF language of injective functions, to be used in a bidirectional XML editor. To deal with duplication and view updating, they consider editing tags in the view and weaker round-tripping axioms. A follow-up work attempted the automatic syntactic derivation of put from get in a restricted functional language [24]. A purely semantic approach to the same problem, that does not restrict the syntax of the get function, was proposed in [17]. Both these approaches suffer from restricted updatability, since the inferred put is highly partial. To alleviate this problem, they were later combined [22], ending up with increased updatability for the intersection of both languages (and ensuring the same round-tripping axioms as lenses).
Our research team has been quite successful in using a PF approach to specify and reason about BT. We have shown how data refinements can be used to formalize two-level BT (of schemas and related instances) [2]. A type-safe implementation of this technique was developed in the functional programming language Haskell, leading to the 2LT (Two-Level Transformation) framework. 2LT was later used to define automated refinement strategies for the XML-to-SQL [31] and Spreadsheets-to-SQL [32] scenarios. More recently, we have also proposed a point-free formalization of lenses over inductive types [1]. The PF calculus is particularly well-suited for automated program calculation and optimization due to its purely equational reasoning style. This allowed us to develop effective systems for BT optimization of data refinements [30] and lenses [29], solving a long-standing inefficiency problem characterizing compositional bidirectional languages.
A modest effort at the classification and standardization of existing BT approaches is reported in [8]. Diskin has proposed an algebraic framework [9] in which some bidirectional axiomatizations can be compared and analyzed in terms of their round-tripping axioms. Nevertheless, a deeper multi-perspective survey on BT is still missing.
Plan and Methods [10000]
The problem of defining BTs over hierarchical or tree-like data models can be considered more or less solved. Frameworks providing consistent bidirectional updating for such models abound, ranging from Foster et al lenses over trees [7] to our own work on bidirectional data refinement and lenses over inductive data types [1,2]. A typical application of these framework is the transformation of simple XML documents, without any circularity or any kind of sharing. Unfortunately, these data models are not rich enough to handle the application domains of this project. For example, software models are essentially sets of relations, better depicted as graphs instead of trees. Of course XML interchange formats can be defined for these, but they rely on references to connect different elements of the model, and thus cannot be properly transformed within the above frameworks.
Effective solutions for specific non-hierarchical models have been proposed, namely for defining views over relational databases with functional dependencies [10], but its not clear how they can be generalized to other kinds of models. Due to its relevance to the MDE community, several bidirectional model transformation frameworks have been proposed, namely TGGs and QVT-R. Unfortunately, they lack a clear formal bidirectional semantics, and it is not clear how to ensure consistency between the derived forward and backward transformations. The first complete language-based framework for general bidirectional graph transformations was recently proposed [15] by means of a formal bidirectional semantics to UnCal, the graph algebra that supports the well-known UnQL graph query language. It turns out that the bidirectional semantics proposed in this framework is extremely complex, making it very difficult to reason about the resulting transformations and define optimization laws. Moreover, it suffers from contrived updatability, either by forcefully meeting the consistency laws or due to non-reflectable changes in the target.
Our research team has been quite successful in using the functional point-free (PF) calculus to specify and reason about BTs. This variable free formalization of typed lambda-calculus enabled us to provide elegant formalizations of both bidirectional data refinements [2] and lenses for inductive types [1]. The PF calculus is particularly well-suited for automated program calculation and optimization due to its purely equational reasoning style. This allowed us to develop an effective system for BT definition and optimization, the Two-Level Transformation (2LT) framework, solving the inefficiency problem that characterizes most compositional bidirectional languages [29,30].
However, even with all advantages of the PF style, this functional calculus is not ideal to formalize BTs. A much better alternative is the PF relational calculus, a quantifier free formalization of first-order logic, popularized in the algebra of programming community. By generalizing to a relational setting we obtain a higher degree of freedom in the calculus, since partiality and non-determinism become natural modeling concepts. Since these concepts are central in BT, and relations are natural abstractions to talk about software models, we believe this calculus has strong potential to lay the foundations for a new generic framework for BT of non-hierarchical models. That is precisely the objective of task 2, one of key tasks that will kickstart the project. We intend to deploy this generic framework as an extension to 2LT, taking advantage of the type-safety provided by the Haskell implementation language. Likewise to all tools to be delivered by this project, the new 2LT will be made available as open-source software, to foster its adoption by the overall community.
Following the work on solving the view-update problem for trees using lenses [7], the number of publications on BT increased exponentially. Frameworks have been developed for many different application scenarios, using various approaches and formalisms, and providing substantially different guarantees to the end-user. Although this is a good sign of the vitality and relevance of the area, we believe time has come to tame this cacophony and present a clear and unified view on most of these works. Such unification could bring benefits both to end-users and the research community: given a particular problem, the former could have an easier time deciding which bidirectional system to apply; and the latter could have a common ground for an effective comparison of proposed solutions. Task 1 intends to show the adequacy of the PF relational calculus to serve as esperanto of this research community, by using it as an unifying formalism in which to recast many of the existing approaches. The key deliverable of this task will be a comprehensive survey on BT, using the PF relational calculus to compare the semantics and laws of different systems.
Upon completion of task 2, the proposed generic framework for BT of non-hierarchical models will be used to develop high-level tools and languages to tackle our three application domains:
Spreadsheets are mainly used by non-professional programmers that are primarily focused on building a solution for their domain-specific problem, instead of programming per se. Thus, the main deliverable of task 3 will be a BT plugin for a popular spreadsheet programming system, namely Excel. The idea is to help users in a daily base by providing them with tools to support more advanced interactions with spreadsheet systems. In this particular case, the plugin would allow the user to evolve and synchronize different versions of the same spreadsheet. A technique for defining spreadsheet models on top of the common framework must be devised. Another key issue is validation: several case studies will be developed to validate and improve the proposed plugin.
The key deliverable of task 4 is a Model Driven Architecture (MDA) compliant bidirectional model transformation language. As such, we intend it to be compatible with the OMG Meta-Object Facility (MOF) standard, and ideally be deployed as a subset of an already established high-level model transformation language, such as QVT Relational (QVT-R). A mapping from MOF to the common framework must be defined. Ditto for the transformation rules of the high-level language - our relational calculus approach seems promising to handle the highly declarative and non-deterministic character of such rules. For the validation of the proposed language, we intend to use case-studies like the classic class-diagram to database schema and viewpoint modeling for UML.
The first objective of task 5 will be the deployment of the common BT framework as an extension to Silver, an extensible modern attribute grammar system that supports higher-order and reference attributes. This will provide a specialization of these results in a framework in which tree-shaped graphs predominate. The system will be used in the NSF supported projects of Van Wyk to build a bidirectional language-based editor for ANSI C, a key deliverable of the task. These efforts will provide proper evaluation and validation of the key deliverable of task 2.
Running in parallel to all this work, task 6 aims specifically at disseminating the project results. A web site of the project is planned, including an interactive presentation of the results of the survey delivered by task 1 and web interfaces to all the project tools. The BT community currently lacks a site to collect, organize and disseminate information about all aspects of this research field, and we believe this effort could be an embryo of such site. We also intend to write a cookbook with BT case studies, to aid future programmers solve their specific problems using the proposed tools. Finally, we believe the community has grown large enough to have its own dedicated symposium. Building on our past experience organizing international events, we intend to organize the first international symposium on BT, thus asserting our research team as a key interlocutor in the field.
A key aspect of this project proposal concerns the integration of young researchers in a team focused around a clear and pragmatic research objective. Together with the 4 senior researchers, 3 young post docs and 1 phd student will participate in the project. At the time of writing this proposal, 2 of the post docs were finishing their thesis on related topics. The thesis of the phd student falls entirely within the scope of the proposal, and will be a key deliverable of the project. Moreover, the team will be complemented with 5 young master students working mainly on tool development, for whom 5 BI grants are being requested.
This proposal was reviewed and endorsed by the following top researchers of the area, which also accepted to be consultants of the project:
Zhenjiang Hu, from the National Institute of Informatics (Japan), one of the most prolific authors in the field [15,22,24,25], responsible for the first attempt at solving the BT problem for graphs [15].
Nate Foster, from Cornell University (USA), the key researcher responsible for the seminal work on lenses [7,11,12,20].
Janis Voigtländer, from University of Bonn (Germany), a top researcher on functional programming that first showed the possibility of semantic bidirectionalization [17,22].
Most management effort will be dedicated to ensure that tasks proceed
according to the established plan, and that milestones are delivered
on time. Special care will be taken with critical milestones, on which
other tasks depend. That is the case of milestone 1, the common BT framework required for tasks 3, 4 and 5.
The following activities are planed in order to ensure coordination
between team members:
Apart from the standard kick-off general meeting, monthly meetings will be held with all members active in the project at the time;
Each of these meetings will be complemented with a technical presentation by one of the project members; these talks will be open to the research community and each project member is required to give at least one such talk;
Apart from the public web-site of the project to be developed in task 6, a private collaborative site will be launched at the start of the project, to allow documents sharing and to scribble current research ideas;
To maximize the revenue from the project budget, the following
measures will be taken:
Submissions to conferences will follow according to a plan defined by the PI, in order to avoid spending the mission budget in events which are not relevant to the project; this plan will mainly include first tier international conferences such as Principles of Programming Languages (POPL), Functional Programming (ICFP), Model Driven Engineering Languages And Systems (MODELS), Foundations of Software Engineering (FSE), and other similar events.
To fully benefit from consultants expertise, each visit will start with a one-day informal workshop where all active team members are expected to give a short talk; by these we expect the consultant to get acquainted with the overall project status, thus increasing the potential for effective and relevant scientific discussions;
Apart from the usual meetings with their designated supervisors, all BI grant holders will be requested to submit a monthly progress report to the PI to ensure that the research plan is progressing as expected.
One senior management official will be designated by each partner to
help with financial planning, and progress/final reports to FCT.
Milestone list
Framework for bidirectional transformations of non-hierarchical models
Excel plugin for bidirectional spreadsheet transformation
MDA compliant bidirectional model transformation language
Bidirectional language-based editor
International symposium on bidirectional transformation
Cookbook with bidirectional transformation case studies.
Timeline
See proposed timeline attached.
Past Publications [5]
[1] Hugo Pacheco, Alcino Cunha: Generic Point-free Lenses. MPC 2010: 331-352.
[2] Alcino Cunha, José Nuno Oliveira, Joost Visser: Type-Safe Two-Level Data Transformation. FM 2006: 284-299.
[3] José Nuno Oliveira: Transforming Data by Calculation. GTTSE 2007: 134-195.
[4] Jácome Cunha, Joost Visser, Tiago Alves, João Saraiva: Type-safe Evolution of Spreadsheets. FASE 2011. (to appear)
[5] Eric Van Wyk, Derek Bodin, Jimin Gao, Lijesh Krishnan: Silver: An extensible attribute grammar system. Sci. Comput. Program. 2010: 39-54.
Bibliographic References [30]
[6] Daniel M. Yellin. Attribute grammar inversion and source-to-source translation. Book in the LNCS series, nº 302.
[7] J. Nathan Foster, Michael B. Greenwald, Jonathan T. Moore, Benjamin C. Pierce, Alan Schmitt: Combinators for bidirectional tree transformations: A linguistic approach to the view-update problem. ACM Trans. Program. Lang. Syst. 29(3): (2007)
[8] Krzysztof Czarnecki, J. Nathan Foster, Zhenjiang Hu, Ralf Lämmel, Andy Schürr, James F. Terwilliger: Bidirectional Transformations: A Cross-Discipline Perspective. ICMT 2009: 260-283.
[9] Zinovy Diskin: Algebraic Models for Bidirectional Model Synchronization. MoDELS 2008: 21-36.
[10] Aaron Bohannon, Benjamin C. Pierce, Jeffrey A. Vaughan: Relational lenses: a language for updatable views. PODS 2006: 338-347.
[11] Davi M. J. Barbosa, Julien Cretin, Nate Foster, Michael Greenberg, Benjamin C. Pierce: Matching lenses: alignment and view update. ICFP 2010: 193-204.
[12] J. Nathan Foster, Alexandre Pilkiewicz, Benjamin C. Pierce: Quotient lenses. ICFP 2008: 383-396.
[13] Zinovy Diskin, Yingfei Xiong, Krzysztof Czarnecki: From State- to Delta-Based Bidirectional Model Transformations. ICMT 2010: 61-76.
[14] Andy Schürr, Felix Klar: 15 Years of Triple Graph Grammars. ICGT 2008: 411-425.
[15] Soichiro Hidaka, Zhenjiang Hu, Kazuhiro Inaba, Hiroyuki Kato, Kazutaka Matsuda, Keisuke Nakano: Bidirectionalizing graph transformations. ICFP 2010: 205-216.
[16] François Bancilhon, Nicolas Spyratos: Update Semantics of Relational Views. ACM Trans. Database Syst. 6(4): 557-575 (1981).
[17] Janis Voigtländer: Bidirectionalization for free! (Pearl). POPL 2009: 165-176.
[18] Lambert Meertens. Designing constraint maintainers for user interaction, 1998. Unpublished manuscript.
[19] Claus Brabrand, Anders Møller, Michael I. Schwartzbach: Dual syntax for XML languages. Inf. Syst. 33(4-5): 385-406 (2008).
[20] Aaron Bohannon, J. Nathan Foster, Benjamin C. Pierce, Alexandre Pilkiewicz, Alan Schmitt: Boomerang: resourceful lenses for string data. POPL 2008: 407-419.
[21] João Saraiva and Doaitse Swierstra. Generating Spreadsheet-like Tools from Strong Attribute Grammars. GPCE 2003: 307-323.
[22] Janis Voigtländer, Zhenjiang Hu, Kazutaka Matsuda, Meng Wang: Combining syntactic and semantic bidirectionalization. ICFP 2010: 181-192.
[23] Perdita Stevens: Bidirectional model transformations in QVT: semantic issues and open questions. Software and System Modeling 9(1): 7-20 (2010).
[24] Kazutaka Matsuda, Zhenjiang Hu, Keisuke Nakano, Makoto Hamana, Masato Takeichi: Bidirectionalization transformation based on automatic derivation of view complement functions. ICFP 2007: 47-58.
[25] Yingfei Xiong, Hui Song, Zhenjiang Hu, Masato Takeichi: Supporting Parallel Updates with Bidirectional Model Transformations. ICMT 2009: 213-228.
[26] Shinya Kawanaka, Haruo Hosoya: biXid: a bidirectional transformation language for XML. ICFP 2006: 201-214.
[27] Paulo F. Silva, José Nuno Oliveira: 'Galculator': functional prototype of a Galois-connection based proof assistant. PPDP 2008: 44-55.
[28] Alcino Cunha, Jorge Sousa Pinto: Point-free Program Transformation. Fundam. Inform. 66(4): 315-352 (2005).
[29] Alcino Cunha and Hugo Pacheco. Calculating with Lenses: Optimising Bidirectional Transformations. PEPM 2011.
[30] Alcino Cunha, Joost Visser: Strongly Typed Rewriting For Coupled Software Transformation. Electr. Notes Theor. Comput. Sci. 174(1): 17-34 (2007).
[31] Pablo Berdaguer, Alcino Cunha, Hugo Pacheco, Joost Visser: Coupled Schema Transformation and Data Conversion for XML and SQL. PADL 2007: 290-304.
[32] Jácome Cunha, João Saraiva, Joost Visser: From spreadsheets to relational databases and back. PEPM 2009: 179-188.
[33] João Paulo Fernandes and João Saraiva: Tools and Libraries to Model and Manipulate Circular Programs. PEPM 2007: 102-111.
[34] Matthijs Kuiper and João Saraiva: Lrc - A Generator for Incremental Language-Oriented Tools. CC 1998: 298-301.
[35] João Saraiva, S. Doaitse Swierstra, Matthijs F. Kuiper: Functional Incremental Attribute Evaluation. CC 2000: 279-294.
Research team
Manuel Alcino Cunha (J01280889FH)
José Nuno Oliveira (J007694082R)
João Alexandre Saraiva (J0061444XJX3)
Eric Van Wyk (J54551846092)
João Paulo Fernandes (J004089R6XU4)
Jácome Miguel Cunha (J042095115DO)
Hugo Pereira Pacheco (J506826DXX1K)
Nuno Moreira Macedo (J5527957W367)
Scientific activity diffusion actions
Diffusion of the project results to the overall community will mainly
be carried out via the project website. We also intend to invite some IT companies to attend some of the monthly talks and workshops with
the consultants. We will target companies with particular interest in the application domains of the project. The monthly talks will also be open and advertised to
relevant research communities.
Human resources rationale
The main deliverables of this project are BT tools and languages.
Four grants are being requested to support their
implementation. BI1 is assigned to task 2 to support the implementation of the common BT framework. BI2 is assigned to task 3 to develop an Excel plugin for bidirectional spreadsheet transformation. BI3 is assigned to task 4 to support the implementation of the parser and compiler of the proposed bidirectional model transformation language. BI4 is assigned to task 5 for implementation of a LBE for ANSI C. Each of these grant
holders is expected to deliver a master thesis. An additional BI grant is being requested to develop the web-site proposed on task 6.
The requested amount includes the mandatory insurances.
Missions rationale
10 of the expected deliverables are papers in international
conferences. Although it is not possible to predict exactly in which
conferences these papers will be accepted, the PI will define a
publication plan that mostly covers first tier events relevant to the
project area (such as POPL, ICFP, MODELS, or FSE). Since many of
these events are planned to occur outside Europe, we ask for an
average of EUR 2000 per mission in order to support travel,
registration, and living expenses.
Consultants rationale
Zhenjiang Hu, from the National Institute of Informatics (Japan), one of the most prolific authors in the field, responsible for the first attempt at solving the BT problem for graphs. A visit of at least one weak is planned in the second year of the project to discuss research questions related to tasks 4 and 5, two application domains in which this author has done some work. Given the required intercontinental flight, we request an amount of EUR 3000 to support travel and accommodation expenses.
Nate Foster, from Cornell University (USA), the key researcher responsible for the seminal work on lenses. A visit of at least one weak is planned in the first year of the project to actively involve this researcher in the survey to be delivered in task 1, and discuss the generalization of lenses to non-hierarchical models as planned in task 2. Given the required intercontinental flight, we request an amount of EUR 3000 to support travel and accommodation expenses.
Janis Voigtländer, from University of Bonn (Germany), a top researcher on functional programming that first showed the possibility of semantic bidirectionalization. Two visits of at least one weak each are planned. The first will occur early in project to actively involve this researcher in the survey to be delivered in task 1. The second is planned for the second year to discuss issues related to task 3. The planned travel and accommodation expenses for each visit amount to EUR 1500.
Equipment rationale
Apart from personal computers and the standard IT infrastructure, the
project has no special equipment requirements. All senior researchers
and PhD students already own personal computers. The participant
institutions also own web/mail/disk servers to host the project
web-site and support the project development. The requested money is
necessary only to acquire three new personal computers for the grant holders, for whom the participant institutions
currently have no up-to-date machines.
Dez 23
New papers accepted for publication at PEPM'14 and FASE'14.
Aug 26
Tool demo accepted for publication at ASE'13: Nuno Macedo, Tiago Guimarães, and Alcino Cunha, Model Repair and Transformation with Echo.
Mar 18
Our FASE'13 paper on Implementing QVT-R Bidirectional Model Transformations using Alloy is one of the nominated for best paper at ETAPS.
Feb 1
Paper accepted for publication at BX'13: N. Macedo, H. Pacheco, A. Cunha, and J. N. Oliveira: Composing Least-change Lenses.
Dec 21
Two new students have joined the project team as BI grant holders. Nuno Sousa will be working on bidirectionalizing spreadsheet formulas, and Tiago Guimarães will help in the implementation of a QVT-R bidirectional transformation tool.
Dec 18
Paper accepted for publication at FASE'13: N. Macedo and A. Cunha: Implementing QVT-R Bidirectional Model Transformations using Alloy.
Oct 10Two 6 month grants available to work on bidirectional transformations!
Jun 16
Paper accepted for publication at RAMICS'12: N. Macedo, H. Pacheco and A. Cunha: Relations as executable specifications: taming partiality and non-determinism using invariants.
Jun 1
Paper accepted for publication at the post-proceedings of BX'12: H. Pacheco, A. Cunha and Z. Hu. Delta Lenses over Inductive Types.
Old News
Mar 22
Paper accepted for publication at USER'12: J. Cunha, J. P. Fernandes, J. Mendes and J. Saraiva. Towards an Evaluation of Bidirectional Model-driven Spreadsheets.
Poster accepted for presentation at ICSE'12: J. Cunha, J. P. Fernandes, J. Mendes and J. Saraiva. A Bidirectional Model-driven Spreadsheet Environment.
Mar 9
Paper accepted for publication at ICMT'12: H. Pacheco and A. Cunha. Multifocal: A Strategic Bidirectional Transformation Language for XML Schemas.
Mar 9
Paper accepted for publication at ICMT'12: J. Cunha, J. P. Fernandes, J. Mendes, H. Pacheco, and J. Saraiva. Bidirectional Transformation of Model-Driven Spreadsheets.
Feb 7
Paper accepted for presentation at BX'12: H. Pacheco, A. Cunha and Z. Hu. Delta Lenses over Inductive Types.
Feb 7
The project is officially scheduled to begin Mar 1.
Anthony Anjorin, Alcino Cunha, Holger Giese, Frank Hermann, Arend Rensink, Andy Shürr: BenchmarX. In proceedings of the Workshops of the EDBT/ICDT 2014 Joint Conference: 3rd International Workshop on Bidirectional Transformations (BX'14), pages 82-86. CEUR Worshop Proceedings, 2014.
T1 - Formalizing and Reasoning about Bidirectional Transformations
Likewise to the functional subset, this research team has considerable expertise in using the PF relational calculus to reason about disparate application domains [3]. Building on this expertise, the first objective of this task is to show its potential for formalizing and reasoning about bidirectional transformations. To be more specific, we intend to:
Show how this calculus can be used to derive correct-by-construction bidirectional implementations from relational specifications. The typical approach to design a bidirectional language is to define a set of primitive transformations and combinators, and then prove by hand that the former satisfy the desired properties and that the latter preserve them. For some more complex scenarios (for example, the lenses for defining views on relational databases [10]) such proofs are far from trivial and are usually omitted, Moreover, it is not clear why a particular functional implementation is picked given the apparent non-determinism of the original specification. Using the PF relational calculus we intend to recast such works, shedding new light on some of the decisions, and avoiding the a posteriori proofs by deriving correct implementations from specifications.
Simplify the formalization of some issues that are transversal to the field, namely alignment and data redundancy. Establishing the connection between similar elements in the source and target models (alignment) is fundamental for defining accurate backward transformations. This issue is usually left implicit in most bidirectional languages, but some works are emerging where alignment is explicitly formalized [11,13]. As shown in [13] alignment can be intuitively expressed using sameness relations. Concerning redundancy, quotient lenses [12] already showed how equivalence relations can be used to relax bidirectional laws in order to be insensitive to irrelevant model details. We believe the PF style can make the formalization of these issues simpler and speed up proofs.
Show the formal connection between different axiomatizations of bidirectionality. There is no consensus in the community about the formal requirements of a bidirectional transformation framework. Each new system tends to introduce slight variations in the axiomatization of such requirements, making it very difficult for end-users to decide which systems best match their needs. Diskin [9] has already proposed an algebraic framework in which some bidirectional axiomatizations can be compared and analyzed. Using the PF style we intend to simplify and extend his work.
Equipped with this unifying formalism, the second objective of this task is to write a comprehensive survey of the area. Although relatively recent, the body of work is growing exponentially, making it increasingly difficult for end-users and new researchers to dip into the area. The few existing surveys [8] are mere enumerations of existing work, lacking proper taxonomies and metrics to classify and compare the different approaches. To maximize the relevance and impact of the survey, the renowned international consultants of the project will be actively involved in its preparation.
The expected deliverables of this task are:
Two international conference papers showing how the PF relational calculus can be used to formalize and reason about bidirectional transformations.
An international journal paper with a comprehensive survey of the area.
José Nuno Oliveira will be responsible for this task due to his renowned expertise on the PF relational calculus. The the bulk of the work concerning the first objective will be performed by Nuno Macedo, who has just started a PhD precisely on using the PF relational calculus to formalize and reason about bidirectional transformations. Hugo Pacheco and Jácome Cunha will be involved in writing up the survey, given their recent PhDs on related subjects. Alcino Cunha will also be involved due to his longterm research on bidirectional transformations.
T2 - Bidirectional Transformation of Non-hierarchical Models
This task aims at defining a generic bidirectional transformation framework for non-hierarchical models, that does not suffer from the shortcomings of existing systems. It will serve as foundation for the application domains of tasks 3, 4, and 5, and thus constitutes the key deliverable of the project. As argued in the work plan, we believe the PF relational calculus is the ideal formalism to support such framework. As such, we intend to use that formalism to redefine our own 2LT framework, currently built around the PF functional calculus for inductive data types. There are two alternatives we intend to explore in order to support non-hierarchical models in 2LT:
Many non-hierarchical data models can be represented by mere inductive data types enriched with invariants. For instance, sharing in an XML schema with references can be captured by an invariant forcing some elements of the document to be equal. To define a BT over a source data type with invariants, calculations must be performed in order to determine how that invariant migrates to the target, and how it is combined with backwards propagation to achieve consistent updating. The PF relational calculus is particularly well-suited for these calculations, since invariants are naturally captured by coreflexive relations (fragments of the identity relation that model predicates) [3].
Likewise to the functional calculus, it is possible to define a higher-order PF relational calculus. This opens interesting opportunities to use relations not only to specify transformations but as data themselves. The connection to graphs is obvious, since the adjacency matrix is just a representation of a binary relation between nodes. Although calculating with higher-order expressions is not trivial, we have shown in the past how it can be simplified using the PF style [28].
Concerning the implementation, we intend to stay with the previous type-safe approach based on the Haskell functional programming language. This reduces implementation errors, by enforcing the connection between BT rules specified at the type (meta-model) level and the respective forward and backwards implementations at the value (model) level. In order to support optimization and invariant manipulation, a simplifier for PF relational expressions must be developed. For this we intend to capitalize on the experience gathered in the design of Galculator [27], a prototype of a proof assistant based on the algebra of Galois connections, and a simplifier developed for PF program transformations based on strategic rewrite combinators [30]. Likewise to the former version, this new version of the 2LT framework will be distributed as open source software.
The expected deliverables of this task are:
A new version of the 2LT framework supporting non-hirarchical data models.
Two international conference papers and a journal paper describing the achieved results.
A master thesis describing the implementation of the new version of 2LT.
Given the criticality of this common framework to the success of the project, Alcino Cunha (the project PI) will be responsible for this task. He was also the responsible for the development of the first version of 2LT. The bulk of the research work will be developed by the PhD student Nuno Macedo, given his thesis on using the PF relational calculus for BT. A BI grant is planed to support a master student in the implementation of the new version of 2LT. All the remaining members of the team are involved in defining the requirements for the framework, since it will be used to implement the high-level tools for the three application domains to be tackled on tasks 3, 4, and 5.
T3 - Application Domain 1: Spreadsheet Transformation
Spreadsheets are widely used by non-professional programmers, the so-called end users, to develop business applications. These programmers vastly outnumber professional ones creating millions of spreadsheets per year. Spreadsheets are quite flexible, but also very error-prone.
We have shown that the use of business logic models for spreadsheets can prevent errors and improve users productivity [4]. Using such MDE approach, the user is responsible to synchronize the (spreadsheet) models and instances. This is a complex and error-prone task since users may introduce data that violates the model. To overcome these limitations, we will define techniques to keep spreadsheet data and models synchronized. Moreover, to reflect data changes in the model is also an objective. Spreadsheets can be seen as a non-hierarquical structure where nodes are cells and edges references between them. Thus, techniques from task 2 can be used to specify synchronization of spreadsheets. We will take under consideration spreadsheet specific properties, such as layout, that we know from experience [4], can be very useful. This synchronization can be extended to synchronize a spreadsheet and a database (DB). One can imagine a situation where a DB is accessed by several kinds of users: professional programmers access it using SQL and end users using a spreadsheet as a view. In previous work we defined a formal transformation of a spreadsheet into a DB and vice versa, but without synchronization [32]. In this task we will define BTs between spreadsheets and DBs. Both the spreadsheet and the database can be the source and the view, and thus, transformations must be studied in both directions. Changes performed by each kind of users should be reflected in all the views of the DB. This problem is know as the view-update problem and has been studied in the context of DBs. To create a solution for DBs and spreadsheets is challenging for several reasons: in contrast to DBs, spreadsheets have spacial constraints and, moreover, spreadsheets are usually not normalized as DBs. Tools such as Excel can import data from DBs, but synchronization is not possible.
BTs are an important advance for spreadsheets because end users have two possible views: one view contemplates the formulas and another their results. A big source of errors is the replacement of a formula by a value, involuntarily or to have the correct value in such cell. In fact, this can be useful: if this change was back-propagated to the rest of the spreadsheet the user could understand why that result is wrong. We will use BTs to achieve this goal. The forward function is the usual spreadsheet mechanism. The backward one will receive the spreadsheet and the results the user wants and will produce a new updated spreadsheet with the correct values in the corresponding cells. The backward function may be ambiguous, which is a challenge and deserves further study.
We will run empirical studies to assess the impact of our tehcniques in error committing and speed of users doing their tasks. The experience of the team can help to define studies that produce significant validation.
Jácome Cunha has a PhD? on spreadsheets and is now a post-doc fellow working on the same subject. This makes him a good candidate to lead this task. Jácome Cunha was supervised in his PhD? by João Saraiva, which makes him a very experienced person on spreadsheets. João Fernandes' experience working with Jácome Cunha and João Saraiva, also on spreadsheets, is a fundamental for this task. Finally, a BI grant holder will be of great help implementing an Excel tool.
The expected deliverables are:
An extension for Excel.
Two international conference papers and a journal paper describing the techniques developed and their application to the aforementioned scenarios.
A master thesis describing the implementation of the Excel extension.
The objective of this task is to provide a MDA compliant bidirectional model transformation language. The proposed language should be expressive enough to handle the following model-driven software development scenarios:
Refining UML class diagram to relational database schemas. This is the "hello-world" of MDE and the classic benchmark of every new model transformation language. The benefits from bidirectionalization are obvious: a database schema has the unpleasant tendency to gain a life of its own, and this would allow an effective documentation of such evolution, by reflecting the changes back to the UML class diagram. There are several variants of this case-study, using different source modeling languages, that should also be considered.
Viewpoint modeling is a technique for specifying complex software systems in terms of views, possibly independent or at different abstraction levels, that allow the user to focus just on modeling artifacts related to a particular interest area. Obviously, different views may share elements, and specifying and ensuring the consistency between them is a key issue. If views are extracted from the global model using a bidirectional transformation, consistency between views could be achieved using a technique similar to Harmony [7], a data synchronization framework built using lenses. In particular, we intend to target UML, whose daunting meta-model could benefit from this approach: independent teams could focus on different modeling aspects (for instance, class and sequence diagrams), with predictable synchronization guarantees.
In order to foster its widespread adoption, the proposed language should be compatible with the MOF standard. As such, the first step will be to define an encoding from MOF meta-models to the data structures of the common framework to be defined in task 2. The second step will be the definition of the bidirectional transformation language itself. Instead of proposing a completely new language, we intend to research the possibility of defining it as a variation of an existing model transformation language, such as the unidirectional ATLAS Transformation Language (ATL) or the bidirectional QVT-R domain-specific language. The key problem will be to identify subsets of these languages with precise bidirectional semantics. Since they are highly declarative, namely simple mapping rules expressing relationships between elements of the meta-model, we believe that our common framework based on relational calculus will be ideal to support their implementation. The relationships described by the mapping rules can be transliterated to relational specifications in our PF calculus, from which we expect to calculate the required data dependencies and corresponding valid bidirectionalizations. Effective data redundancy and alignment mechanisms must be provided to tame the non-determinism and control flow of the global transformation.
Given his experience on defining BTs on top of 2LT, namely on model transformation from XML schemas to database schemas [31], Hugo Pacheco will be responsible for this task. Nuno Macedo is involved since this application domain is central to the validation of the techniques to be defined on his PhD thesis. The research team of this task includes also Alcino Cunha (supervisor of this thesis) and a BI grant holder (master student) to support the implementation of the parser and compiler of the proposed language.
The expected deliverables of this task are:
A MDA compliant bidirectional model transformation language.
Two international conference papers and a journal paper describing the proposed language and its application to the aforementioned scenarios.
A master thesis describing the implementation of the language.
Attribute grammars (AGs) are widely used to specify complex transformations from a
source program/language into a target one. One well-known and natural application is to define language-based editors: the user edits a source program and the editor (incrementally) computes the target program [34]. These editors, however, do not provide bidirectional transformations, since they are not able to synchronize the source program after a change in the target.
Surprisingly no work has been done in bidirectionalization for AGs directly or in applying existing bidirectional transformation results to AGs, excepting [6].
This work used strings and is not applicable to the hierarchical structures nor the non-hierarchical structures of interest here.
Modern extensions to AGs include references attributes; these allow graphs (non-hierarchical models) to be specified in addition to the traditional syntax trees (hierarchical models). Thus, results from task 2 for non-hierarchical bidirectional transformations will be applicable to graphs used in AG with reference attributes. This will enable the envisioned bidirectional language-based environments. Furthermore, because reference attributes are typically used to impose a non-hierarchical structure on top of an existing hierarchical one (the syntax tree) these may form a restricted yet still useful and interesting sub-class of non-hierarchical models that may provide application-based feedback to the theoretical work of task 2.
A main objective of this task is to study and develop techniques to incorporate all recent
advances in bidirectional transformations into modern extensions of AG. Thus, we will study the foundations of bidirectionalization in modern AG extensions. Furthermore, we will study how to derive the attribute grammar specification of a backward transformation from
the specification of the forward transformation. Finally, we will study how to adapt techniques to produce highly optimized implementations for AG, in order to efficiently and incrementally execute bidirectional transformations. Finally, we will incorporate these techniques
into a bidirectional attribute grammar (BAG) based system.
Two senior team members have done some initial investigations together into BAGs and a research paper has been submitted. We
will build on these results to create a comprehensive, rigorous approach to bidirectional
programming in AG.
The team members have extensive experience in building AG-related artifacts, namely: AG extensions [21], tools [5, 34], optimization/implementation techniques [33,35], AG-based libraries [33] and incremental language-based tools [34]. We will adapt the common framework developed in task 2 to work in an AG setting, specifically as an extension to Silver [5]. Furthermore, the task leader Van Wyk is currently on sabbatical leave at the University of Minho working on bidirectional transformations. This work relates to two existing NSF funded projects that use AGs to build extensible languages tailored to developing high performance programs in data mining and materials science simulations. Since the work proposed here relates directly to the work on these projects Van Wyk will be requesting supplemental funding through the NSF Office of International Science and Engineering for other members of his research group to visit Minho University and actively participate in this project. A BI grant is being requested to support tool implementation.
The expected deliverables of this task are:
A set of techniques and tools that will help programmers to specify powerful transformations in the elegant and concise AG formalism, and to efficiently execute such transformations in advanced BT environments that are automatically generated from an AG.
A master thesis detailing the implementation of such tools.
Two international conference papers and a journal paper describing the achieved results.
The first objective of this task is to develop a web-site on BT, to serve as visible image of the project. This site should have the following functionalities:
Interactive presentation of the results of the survey to be developed in task 1. Namely, the site should allow the user to navigate via the proposed taxonomy and required round-tripping axioms, in order to allow a quick selection of the framework that better suits his needs. Moreover, it should allow easy addition of new BT frameworks and related publications. The BT community currently lacks a site to collect, organize and disseminate information about all aspects of this research field, and we believe this effort could be an embryo of such site.
Web interface for the project's tools. Besides the common (low-level) BT framework for non-hierarchical models, the project is expected to deliver specific BT tools to tackle the different application domains of tasks 3, 4, and 5. All these software will be made available as open source, to allow its reuse in other projects. However, to foster the dissemination of the tools, we intend to provide web-interfaces to allow the user to painlessly test their capabilities without prior installation.
A BI grant is planned to support the development of this site.
The second objective of this task is to organize the first international symposium on BT. The community has been organizing yearly informal workshops on the theme, but we believe there is now enough critical mass to have an international symposium dedicated to the theme. Members of this project team organize every two years the Summer School on Generative and Transformational Techniques in Software Engineering (GTTSE). This event attracts hundreds of students in every edition, and some of the best researchers of the field as lecturers. As expected, many of these participants are also involved in BT, and we believe it would be beneficial to organize such symposium as a co-located event with GTTSE 2013. Besides the obvious benefits to the overall community, we believe this symposium could play a a key role in the dissemination of the project results. In particular, we intend to unveil the aforementioned interactive survey at this event. Given his experience in organizing GTTSE and other major computer science events (namely ETAPS 2007), this organization will be led by João Saraiva, who will also be responsible for this task.
The final objective of this task is to write a cookbook on BT case studies, to aid future programmers solve their problems using the proposed tools. First, a set of case studies within the application domains of the project will be defined. This set should be comprehensive enough to cover most typical design patters and address common pitfalls. To ensure relevance, we intend to involve the project consultants in this task. The cookbook will then detail how these case studies can be implemented with the framework and tools proposed in the project. Following the open access initiative, this book will be freely available online in the project website. Alcino Cunha, Jácome Cunha, Hugo Pacheco, and Eric Van Wyk will be the authors of this book, since they are responsible for developing the common BT framework, and the three specific tools for the project application domains.
To sum up, the expected deliverables of this task are:
A web site with the results of the survey of task 1 and interfaces for the developed tools.
TWiki's Research/FATBIT webThe Research/FATBIT web of TWiki. TWiki is a Web-Based Collaboration Platform for the Enterprise.http://wiki.di.uminho.pt/twiki/bin/view/Research/FATBITCopyright 2020 by contributing authors2015-05-18T14:31:49ZPublicationshttp://wiki.di.uminho.pt/twiki/bin/view/Research/FATBIT/Publications2015-05-18T14:31:49ZPublications Journal papers Jácome Cunha, João Paulo Fernandes, Jorge Mendes, João Saraiva: Embedding, Evolution, and Validation of Model Driven Spreadsheets ... (last changed by NunoMacedo)NunoMacedoNewshttp://wiki.di.uminho.pt/twiki/bin/view/Research/FATBIT/News2013-12-23T18:54:45ZDez 23 New papers accepted for publication at PEPM'14 and FASE'14. Aug 26 Tool demo accepted for publication at ASE'13: Nuno Macedo, Tiago Guimarães, and Alcino ... (last changed by AlcinoCunha)AlcinoCunhaWorkshopOctober2013http://wiki.di.uminho.pt/twiki/bin/view/Research/FATBIT/WorkshopOctober20132013-10-02T13:39:08ZFATBIT Workshop, Braga, October 3, 2013 Participants Alcino Cunha Jácome Cunha Tiago Guimarães Hu Tiago Jorge Nuno Macedo Nuno ... (last changed by AlcinoCunha)AlcinoCunhaWorkshopJuly2013http://wiki.di.uminho.pt/twiki/bin/view/Research/FATBIT/WorkshopJuly20132013-09-30T08:51:15ZFATBIT Workshop, Braga, July 17, 2013 Participants José Creissac Campos Alcino Cunha João Miguel Fernandes Tiago Guimarães Tiago Jorge ... (last changed by AlcinoCunha)AlcinoCunhaWebSideBarhttp://wiki.di.uminho.pt/twiki/bin/view/Research/FATBIT/WebSideBar2013-09-30T08:50:55ZHome Project Description Research Team Opportunities Publications Workshop 1 Workshop 2 Workshop 3 News (last changed by AlcinoCunha)AlcinoCunhaTeamhttp://wiki.di.uminho.pt/twiki/bin/view/Research/FATBIT/Team2013-07-24T14:21:41ZResearch Team Alcino Cunha (University of Minho, Portugal) Van Wyk (University of Minnesota, USA) Nuno Oliveira (University of Minho, Portugal) ... (last changed by AlcinoCunha)AlcinoCunhaWorkshop2012http://wiki.di.uminho.pt/twiki/bin/view/Research/FATBIT/Workshop20122013-07-12T13:39:55ZJoint FATBIT/SSaaPP Workshop, Braga, September 17 18, 2012 Participants José Bacelar Almeida José Creissac Campos Alcino Cunha Jácome Cunha ... (last changed by AlcinoCunha)AlcinoCunhaOldNewshttp://wiki.di.uminho.pt/twiki/bin/view/Research/FATBIT/OldNews2012-12-21T10:45:02ZMar 22 Paper accepted for publication at USER'12: J. Cunha, J. P. Fernandes, J. Mendes and J. Saraiva. Towards an Evaluation of Bidirectional Model driven Spreadsheets ... (last changed by AlcinoCunha)AlcinoCunhaJobshttp://wiki.di.uminho.pt/twiki/bin/view/Research/FATBIT/Jobs2012-12-14T20:44:37ZOpportunities Nothing available at this moment, but please contact alcino #64;di.uminho.pt if you are interested on working in bidirectional transformations. (last changed by AlcinoCunha)AlcinoCunhaWebHomehttp://wiki.di.uminho.pt/twiki/bin/view/Research/FATBIT/WebHome2012-07-31T16:31:33ZFoundations, Applications and Tools for Bidirectional Transformation This project aims to propose effective bidirectional transformation (BT) frameworks for three ... (last changed by AlcinoCunha)AlcinoCunhaDescriptionhttp://wiki.di.uminho.pt/twiki/bin/view/Research/FATBIT/Description2012-02-07T14:18:11ZSummary With the ever growing list of programming languages and software development frameworks, transforming a data model into a different format is essential to ... (last changed by AlcinoCunha)AlcinoCunhaWebPreferenceshttp://wiki.di.uminho.pt/twiki/bin/view/Research/FATBIT/WebPreferences2012-02-07T13:49:00ZResearch/FATBIT Web Preferences The following settings are web preferences of the Research/FATBIT web. These preferences overwrite the site level preferences ... (last changed by AlcinoCunha)AlcinoCunhaT3http://wiki.di.uminho.pt/twiki/bin/view/Research/FATBIT/T32011-02-23T14:27:24ZT3 Application Domain 1: Spreadsheet Transformation Spreadsheets are widely used by non professional programmers, the so called end users, to develop business applications ... (last changed by JacomeCunha)JacomeCunhaFctFormhttp://wiki.di.uminho.pt/twiki/bin/view/Research/FATBIT/FctForm2011-02-23T14:20:09ZSummary 5000 With the ever growing list of programming languages and software development frameworks, transforming a data model into a different format is essential ... (last changed by AlcinoCunha)AlcinoCunhaT5http://wiki.di.uminho.pt/twiki/bin/view/Research/FATBIT/T52011-02-22T15:33:43ZT5 Application Domain 3: Attribute Grammars Attribute grammars (AGs) are widely used to specify complex transformations from a source program/language into a target ... (last changed by HugoPacheco)HugoPachecoT2http://wiki.di.uminho.pt/twiki/bin/view/Research/FATBIT/T22011-02-22T14:42:23ZT2 Bidirectional Transformation of Non hierarchical Models This task aims at defining a generic bidirectional transformation framework for non hierarchical models ... (last changed by AlcinoCunha)AlcinoCunha
Publications Journal papers Jácome Cunha, João Paulo Fernandes, Jorge Mendes, João Saraiva: Embedding, Evolution, and Validation of Model Driven Spreadsheets ...
Dez 23 New papers accepted for publication at PEPM'14 and FASE'14. Aug 26 Tool demo accepted for publication at ASE'13: Nuno Macedo, Tiago Guimarães, and Alcino ...
Mar 22 Paper accepted for publication at USER'12: J. Cunha, J. P. Fernandes, J. Mendes and J. Saraiva. Towards an Evaluation of Bidirectional Model driven Spreadsheets ...
Opportunities Nothing available at this moment, but please contact alcino #64;di.uminho.pt if you are interested on working in bidirectional transformations.
Foundations, Applications and Tools for Bidirectional Transformation This project aims to propose effective bidirectional transformation (BT) frameworks for three ...
Summary With the ever growing list of programming languages and software development frameworks, transforming a data model into a different format is essential to ...
Research/FATBIT Web Preferences The following settings are web preferences of the Research/FATBIT web. These preferences overwrite the site level preferences ...
T3 Application Domain 1: Spreadsheet Transformation Spreadsheets are widely used by non professional programmers, the so called end users, to develop business applications ...
Summary 5000 With the ever growing list of programming languages and software development frameworks, transforming a data model into a different format is essential ...
T5 Application Domain 3: Attribute Grammars Attribute grammars (AGs) are widely used to specify complex transformations from a source program/language into a target ...
T2 Bidirectional Transformation of Non hierarchical Models This task aims at defining a generic bidirectional transformation framework for non hierarchical models ...
T4 Application Domain 2: Model Driven Engineering The objective of this task is to provide a MDA compliant bidirectional model transformation language. The proposed ...
T6 Dissemination and Case Studies The first objective of this task is to develop a web site on BT, to serve as visible image of the project. This site should have ...
T1 Formalizing and Reasoning about Bidirectional Transformations Likewise to the functional subset, this research team has considerable expertise in using the PF relational ...
Foundations, Applications and Tools for Bidirectional Transformation
This project aims to propose effective bidirectional transformation (BT) frameworks for three relevant application domains: model-driven engineering, spreadsheet validation and transformation, and language-based editors defined with attribute grammars. Common to these application domains is the fact that models cannot be captured by pure hierarchical (tree-like) data structures. Although effective BT frameworks have been proposed to handle hierarchical models, no generic and effective framework has yet been proposed for non-hierarchical ones. We intend to do so by relying on the point-free relational calculus, a quantifier free formalization of first-order logic, popularized in the algebra of programming community. This calculus deals naturally with non-determinism and partiality, two key issues in the formalization of BTs. It is also amenable to calculation thanks to its purely equational reasoning style, which opens interesting opportunities for BT optimization.
Project info
Supported by
This work is funded by the ERDF through the programme COMPETE and by the Portuguese Government through FCT (Foundation for Science and Technology), project reference FCOMP-01-0124-FEDER-020532
Summary With the ever growing list of programming languages and software development frameworks, transforming a data model into a different format is essential to ...
Summary 5000 With the ever growing list of programming languages and software development frameworks, transforming a data model into a different format is essential ...
Opportunities Nothing available at this moment, but please contact alcino #64;di.uminho.pt if you are interested on working in bidirectional transformations.
Dez 23 New papers accepted for publication at PEPM'14 and FASE'14. Aug 26 Tool demo accepted for publication at ASE'13: Nuno Macedo, Tiago Guimarães, and Alcino ...
Mar 22 Paper accepted for publication at USER'12: J. Cunha, J. P. Fernandes, J. Mendes and J. Saraiva. Towards an Evaluation of Bidirectional Model driven Spreadsheets ...
Publications Journal papers Jácome Cunha, João Paulo Fernandes, Jorge Mendes, João Saraiva: Embedding, Evolution, and Validation of Model Driven Spreadsheets ...
T1 Formalizing and Reasoning about Bidirectional Transformations Likewise to the functional subset, this research team has considerable expertise in using the PF relational ...
T2 Bidirectional Transformation of Non hierarchical Models This task aims at defining a generic bidirectional transformation framework for non hierarchical models ...
T3 Application Domain 1: Spreadsheet Transformation Spreadsheets are widely used by non professional programmers, the so called end users, to develop business applications ...
T4 Application Domain 2: Model Driven Engineering The objective of this task is to provide a MDA compliant bidirectional model transformation language. The proposed ...
T5 Application Domain 3: Attribute Grammars Attribute grammars (AGs) are widely used to specify complex transformations from a source program/language into a target ...
T6 Dissemination and Case Studies The first objective of this task is to develop a web site on BT, to serve as visible image of the project. This site should have ...
Foundations, Applications and Tools for Bidirectional Transformation This project aims to propose effective bidirectional transformation (BT) frameworks for three ...
Research/FATBIT Web Preferences The following settings are web preferences of the Research/FATBIT web. These preferences overwrite the site level preferences ...
This is a subscription service to be automatically notified by e-mail when topics change in this Research/FATBIT web. This is a convenient service, so you do not have to come back and check all the time if something has changed. To subscribe, please add a bullet with your WikiName in alphabetical order to this list:
Each TWiki web has an automatic e-mail notification service that sends you an e-mail with links to all of the topics modified since the last alert.
Users subscribe to email notifications using their WikiName or an alternative email address, and can specify the webs/topics they wish to track using one of these bullet list formats:
three spaces * [ webname . ] wikiName - SMTP mail address three spaces * [ webName . ] wikiName three spaces * SMTP mail address three spaces * SMTP mail address : topics three spaces * [ webname . ] wikiName : topics
In the above examples, topics is a space-separated list of topic names. The user may further customize the specific content they will receive using the following formats:
Specify topics without a Web. prefix
Topics must exist in this web.
Topics may be specified using * wildcards
Each topic may optionally be preceded by a '+' or '-' sign. The '+' sign means "subscribe to this topic" (the same as not putting anything). The '-' sign means "unsubscribe" or "don't send notifications regarding this topic". This allows users to elect to filter out certain topics (and their children, to an arbitrary depth). Topic filters ('-') take precedence over topic includes ('+').
Each topic may optionally be followed by an integer in parentheses, indicating the depth of the tree of children below that topic. Changes in all these children will be detected and reported along with changes to the topic itself. Note This uses the TWiki "Topic parent" feature.
Each topic may optionally be immediately followed by an exclamation mark ! or a question mark ? with no intervening spaces, indicating that the topic (and children if there is a tree depth specifier as well) should be mailed out as complete topics instead of change summaries. ! causes the topic to be mailed every time even if there have been no changes, ? will mail the topic only if there have been changes to it. This only makes sense for subscriptions.
For example:
Subscribe Daisy to all changes to topics in this web.
* daisy.cutter@flowers.com
Subscribe Daisy to all changes in all webs that start with Web.
* daisy.cutter@flowers.com: Web*
Subscribe Daisy to changes to topics starting with Petal, and their immediate children, WeedKillers and children to a depth of 3, and all topics that match start with Pretty and end with Flowers e.g. PrettyPinkFlowers
Subscribe Daisy to the full content of NewsLetter whenever it has changed
* daisy@flowers.com: TWiki.NewsLetter?
Subscribe buttercup to NewsLetter and its immediate children, even if it hasn't changed.
* buttercup@flowers.com: TWiki.NewsLetter! (1)
Subscribe GardenGroup (which includes Petunia) to all changed topics under AllnewsLetters to a depth of 3. Then unsubscribe Petunia from the ManureNewsLetter, which she would normally get as a member of GardenGroup? :
A user may be listed many times in the WebNotify topic. Where a user has several lines in WebNotify that all match the same topic, they will only be notified about changes that topic once (though they will still receive individual mails for news topics).
If a TWiki group is listed for notification, the group will be recursively expanded to the e-mail addresses of all members.
Tip: List names in alphabetical order to make it easier to find the names.
Note for System Administrators: Notification is supported by an add-on to the TWiki kernel called the MailerContrib. See the MailerContrib topic for details of how to set up this service.
Note: If you prefer a news feed, point your reader to WebRss (for RSS 1.0 feeds) or WebAtom (for ATOM 1.0 feeds). Learn more at WebRssBase and WebAtomBase, respectively.
Related topics:WebChangesAlert, TWikiUsers, TWikiRegistration
If yes, set SITEMAPLIST to on, do not set NOSEARCHALL, and add the "what" and "use to..." description for the site map. Make sure to list only links that include the name of the web, e.g. Research/FATBIT.Topic links.
Set SITEMAPLIST = on
Set SITEMAPWHAT = Foundations, Applications and Tools for Bidirectional Transformation
Set SITEMAPUSETO = Foundations, Applications and Tools for Bidirectional Transformation
Exclude web from a web="all" search: (Set to on for hidden webs)
Set NOSEARCHALL =
Prevent automatic linking of WikiWords and acronyms (if set to on); link WikiWords (if empty); can be overwritten by web preferences:
#Set NOAUTOLINK =
Note: You can still use the [[...][...]] syntax to link topics if you disabled WikiWord linking. The <noautolink> ... </noautolink> syntax can be used to prevents links within a block of text.
Default template for new topics for this web:
WebTopicEditTemplate? : Default template for new topics in this web. (Site-level is used if topic does not exist)
Comma separated list of forms that can be attached to topics in this web. See TWikiForms for more information.
Set WEBFORMS =
Users or groups who are not / are allowed to view / change / rename topics in the Research/FATBIT web: (See TWikiAccessControl). Remove the # to enable any of these settings. Remember that an empty setting is a valid setting; setting DENYWEBVIEW to nothing means that anyone can view the web.
Preferences are used as TWikiVariables by enclosing the name in percent signs. Example:
When you write variable %WEBBGCOLOR% , it gets expanded to #D0D0D0
The sequential order of the preference settings is significant. Define preferences that use other preferences first, i.e. set WEBCOPYRIGHT before WIKIWEBMASTER since %WEBCOPYRIGHT% uses the %WIKIWEBMASTER% variable.
You can introduce your own preferences variables and use them in your topics and templates.
TWiki search results for \.*
http://wiki.di.uminho.pt/twiki/bin/view/Research/FATBIT
The Research/FATBIT web of TWiki. TWiki is a Web-Based Collaboration Platform for the Enterprise.en-usCopyright 2020 by contributing authorsTWiki Administrator [webmaster@di.uminho.pt]The contributing authors of TWikiTWikiDIUM.Research/FATBIT
http://wiki.di.uminho.pt/twiki/bin/view/Research/FATBIT
/twiki/pub/Main/LocalLogos/um_eengP.jpgPublications
http://wiki.di.uminho.pt/twiki/bin/view/Research/FATBIT/Publications
Publications Journal papers Jácome Cunha, João Paulo Fernandes, Jorge Mendes, João Saraiva: Embedding, Evolution, and Validation of Model Driven Spreadsheets ... (last changed by NunoMacedo)2015-05-18T14:31:49ZNunoMacedoNews
http://wiki.di.uminho.pt/twiki/bin/view/Research/FATBIT/News
Dez 23 New papers accepted for publication at PEPM'14 and FASE'14. Aug 26 Tool demo accepted for publication at ASE'13: Nuno Macedo, Tiago Guimarães, and Alcino ... (last changed by AlcinoCunha)2013-12-23T18:54:45ZAlcinoCunhaWorkshopOctober2013
http://wiki.di.uminho.pt/twiki/bin/view/Research/FATBIT/WorkshopOctober2013
FATBIT Workshop, Braga, October 3, 2013 Participants Alcino Cunha Jácome Cunha Tiago Guimarães Hu Tiago Jorge Nuno Macedo Nuno ... (last changed by AlcinoCunha)2013-10-02T13:39:08ZAlcinoCunhaWorkshopJuly2013
http://wiki.di.uminho.pt/twiki/bin/view/Research/FATBIT/WorkshopJuly2013
FATBIT Workshop, Braga, July 17, 2013 Participants José Creissac Campos Alcino Cunha João Miguel Fernandes Tiago Guimarães Tiago Jorge ... (last changed by AlcinoCunha)2013-09-30T08:51:15ZAlcinoCunhaWebSideBar
http://wiki.di.uminho.pt/twiki/bin/view/Research/FATBIT/WebSideBar
Home Project Description Research Team Opportunities Publications Workshop 1 Workshop 2 Workshop 3 News (last changed by AlcinoCunha)2013-09-30T08:50:55ZAlcinoCunhaTeam
http://wiki.di.uminho.pt/twiki/bin/view/Research/FATBIT/Team
Research Team Alcino Cunha (University of Minho, Portugal) Van Wyk (University of Minnesota, USA) Nuno Oliveira (University of Minho, Portugal) ... (last changed by AlcinoCunha)2013-07-24T14:21:41ZAlcinoCunhaWorkshop2012
http://wiki.di.uminho.pt/twiki/bin/view/Research/FATBIT/Workshop2012
Joint FATBIT/SSaaPP Workshop, Braga, September 17 18, 2012 Participants José Bacelar Almeida José Creissac Campos Alcino Cunha Jácome Cunha ... (last changed by AlcinoCunha)2013-07-12T13:39:55ZAlcinoCunhaOldNews
http://wiki.di.uminho.pt/twiki/bin/view/Research/FATBIT/OldNews
Mar 22 Paper accepted for publication at USER'12: J. Cunha, J. P. Fernandes, J. Mendes and J. Saraiva. Towards an Evaluation of Bidirectional Model driven Spreadsheets ... (last changed by AlcinoCunha)2012-12-21T10:45:02ZAlcinoCunhaJobs
http://wiki.di.uminho.pt/twiki/bin/view/Research/FATBIT/Jobs
Opportunities Nothing available at this moment, but please contact alcino #64;di.uminho.pt if you are interested on working in bidirectional transformations. (last changed by AlcinoCunha)2012-12-14T20:44:37ZAlcinoCunhaWebHome
http://wiki.di.uminho.pt/twiki/bin/view/Research/FATBIT/WebHome
Foundations, Applications and Tools for Bidirectional Transformation This project aims to propose effective bidirectional transformation (BT) frameworks for three ... (last changed by AlcinoCunha)2012-07-31T16:31:33ZAlcinoCunhaDescription
http://wiki.di.uminho.pt/twiki/bin/view/Research/FATBIT/Description
Summary With the ever growing list of programming languages and software development frameworks, transforming a data model into a different format is essential to ... (last changed by AlcinoCunha)2012-02-07T14:18:11ZAlcinoCunhaWebPreferences
http://wiki.di.uminho.pt/twiki/bin/view/Research/FATBIT/WebPreferences
Research/FATBIT Web Preferences The following settings are web preferences of the Research/FATBIT web. These preferences overwrite the site level preferences ... (last changed by AlcinoCunha)2012-02-07T13:49:00ZAlcinoCunhaT3
http://wiki.di.uminho.pt/twiki/bin/view/Research/FATBIT/T3
T3 Application Domain 1: Spreadsheet Transformation Spreadsheets are widely used by non professional programmers, the so called end users, to develop business applications ... (last changed by JacomeCunha)2011-02-23T14:27:24ZJacomeCunhaFctForm
http://wiki.di.uminho.pt/twiki/bin/view/Research/FATBIT/FctForm
Summary 5000 With the ever growing list of programming languages and software development frameworks, transforming a data model into a different format is essential ... (last changed by AlcinoCunha)2011-02-23T14:20:09ZAlcinoCunhaT5
http://wiki.di.uminho.pt/twiki/bin/view/Research/FATBIT/T5
T5 Application Domain 3: Attribute Grammars Attribute grammars (AGs) are widely used to specify complex transformations from a source program/language into a target ... (last changed by HugoPacheco)2011-02-22T15:33:43ZHugoPachecoT2
http://wiki.di.uminho.pt/twiki/bin/view/Research/FATBIT/T2
T2 Bidirectional Transformation of Non hierarchical Models This task aims at defining a generic bidirectional transformation framework for non hierarchical models ... (last changed by AlcinoCunha)2011-02-22T14:42:23ZAlcinoCunha
Dez 23
New papers accepted for publication at PEPM'14 and FASE'14.
Aug 26
Tool demo accepted for publication at ASE'13: Nuno Macedo, Tiago Guimarães, and Alcino Cunha, Model Repair and Transformation with Echo.
Mar 18
Our FASE'13 paper on Implementing QVT-R Bidirectional Model Transformations using Alloy is one of the nominated for best paper at ETAPS.
Feb 1
Paper accepted for publication at BX'13: N. Macedo, H. Pacheco, A. Cunha, and J. N. Oliveira: Composing Least-change Lenses.
Dec 21
Two new students have joined the project team as BI grant holders. Nuno Sousa will be working on bidirectionalizing spreadsheet formulas, and Tiago Guimarães will help in the implementation of a QVT-R bidirectional transformation tool.
Dec 18
Paper accepted for publication at FASE'13: N. Macedo and A. Cunha: Implementing QVT-R Bidirectional Model Transformations using Alloy.
Oct 10Two 6 month grants available to work on bidirectional transformations!
Jun 16
Paper accepted for publication at RAMICS'12: N. Macedo, H. Pacheco and A. Cunha: Relations as executable specifications: taming partiality and non-determinism using invariants.
Jun 1
Paper accepted for publication at the post-proceedings of BX'12: H. Pacheco, A. Cunha and Z. Hu. Delta Lenses over Inductive Types.
Old News
Hugo Pacheco: Bidirectional Data Transformation by Calculation
The advent of bidirectional programming, in recent years, has led to the development of a vast number of approaches from various computer science disciplines. These are often based on domain-specific languages in which a program can be read both as a forward and a backward transformation that satisfy some desirable consistency properties. Despite the high demand and recognized potential of intrinsically bidirectional languages, they have still not matured to the point of mainstream adoption. This dissertation contemplates some usually disregarded features of bidirectional transformation languages that are vital for deployment at a larger scale. The first concerns efficiency. Most of these languages provide a rich set of primitive combinators that can be composed to build more sophisticated transformations. Although convenient, such compositional languages are plagued by inefficiency and their optimization is mandatory for a serious application. The second relates to configurability. As update translation is inherently ambiguous, users shall be allowed to control the choice of a suitable strategy. The third regards genericity. Writing a bidirectional transformation typically implies describing the concrete steps that convert values in a source schema to values a target schema, making it impractical to express very complex transformations, and practical tools shall support concise and generic coding patterns.
13h00
Lunch
FATBIT 1: Foundations of Bidirectional Transformations (DI-A2)
Alcino Cunha & João Saraiva: Welcome Session
15h00
Zhenjiang Hu: Towards Deterministic Backward Transformations
Bidirectionalization is an automatic program transformation that derives a backward transformation from a given forward transformation. In general, more than one backward transformations exist and the problem is how to choose the "best" backward transformation that not only satisfies the roundtrip property but also meets the user's intention. I would like to discuss the importance of determination of such backward transformation and explain some possible solutions.
15h30
Nuno Macedo: Relations as Executable Specifications: Taming Partiality and Non-determinism Using Invariants
The calculus of relations has been widely used in program specification and reasoning. It is very tempting to use such specifications as running prototypes of the desired program, but, even considering finite domains, the inherent partiality and non-determinism of relations makes this impractical and highly inefficient. To tame partiality we prescribe the usage of invariants, represented by coreflexives, to characterize the exact domains and codomains of relational specifications. Such invariants can be used as pre-condition checkers to avoid runtime errors. Moreover, we show how such invariants can be used to narrow the non-deterministic execution of relational specifications, making it viable for a relevant class of problems. In particular, we show how the proposed techniques can be applied to execute specifications of bidirectional transformations, a domain where partiality and non-determinism are paramount.
16h00
Coffee break
SSaaPP 1: Spreadsheet Engineering (DI-A2)
16h30
Felienne Hermans: Detecting Code Smells in Spreadsheet Formulas
Spreadsheets are used extensively in business processes around the world and just like software, spreadsheets are changed throughout their lifetime causing maintainability issues. This paper adapts known code smells to spreadsheet formulas. To that end we present a list of metrics by which we can detectsmelly formulas and a visualization technique to highlight these formulas in spreadsheets. We implemented the metrics and visualization technique in a prototype tool to evaluate our approach in two ways. Firstly, we analyze the Euses spreadsheet corpus, to study the occurrence of the formula smells. Secondly, we analyze ten real life spreadsheets, and interview the spreadsheet owners about the identified smells. The results of these evaluations indicate that formula smells are common and that they can reveal real errors and weaknesses in spreadsheet formulas.
17h00
Jácome Cunha & João Paulo Fernandes: Model-based Spreadsheet Engineering
Spreadsheets play an important role in software organizations. Indeed, in large software organizations, spreadsheets are not only used to define sheets containing data and formulas, but also to collect information from different systems, to adapt data coming from one system to the format required by another, to perform operations to enrich or simplify data, etc. In fact, over time many spreadsheets turn out to be used for storing and processing increasing amounts of data and supporting increasing numbers of users. Unfortunately, spreadsheet systems provide poor support for modularity, abstraction, and transformation, thus, making the maintenance, update and evolution of spreadsheets a very complex and error-prone task. We present techniques for model-driven spreadsheet engineering where we a ClassSheet model is inferred form legacy spreadsheets. We also present techniques to embedded such models in spreadsheet systems. Finally we employ bidirectional transformations to maintain spreadsheet models and instances synchronized. Our techniques are implemented as part of the MDSheet framework: an extension for a traditional spreadsheet system.
20h00
Workshop Dinner
September 18
FATBIT 2: Applications of Bidirectional Transformations (DI-A2)
10h00
Nuno Macedo: An Implementation of QVT-R using Alloy
The QVT Relations language is widely used to specify transformations between models. However, due to ambiguities in its semantics, development and acceptance of tool support has been slow. Alloy is a lightweight formal specification language with support for automatic verification and model generation. By translating to Alloy both UML models and QVT transformations over them, both annotated with generic OCL constraints, we are able to provide a functional bidirectional transformation framework, whose supported language is more expressive than those of the existing tools. We take into consideration the QVT semantics as defined in the standard, and analyze and compare our results where the specification is incomplete or ambiguous.
10h30
Alcino Cunha: Towards the Bidirectionalization of Spreadsheet Formulas
Bidirectional transformations have application in a wide number of computer science domains. Spreadsheets, on the other hand, are widely used for developing business applications, but their formulas are unidirectional, in the sense that their result can not be edited and propagated back to their input cells. In this poster, we propose the bidirectionalization of such formulas, by recasting them as lenses, a successful bidirectional transformation framework with instantiations in various data domains relevant for this endeavor.
10h45
Pedro Martins: Bidirectional Attribute Grammars
Bidirectionalization is the process of automatically generating a transformation on one direction, from a type of data A to a type B, given the opposite transformation (i.e.: given the transformation that goes from B to A). In this talk we will present a prototype of a bidirectionalization system that handles syntactic information described as Context-free Grammars. Our system is based on a set of mappings between grammar productions and is capable of dealing with situations where there are non-bijective mappings between Non Terminal elements of the Grammars, in any direction. We will also present a prototype implementation of a bidirectionalization engine.
11h00
Coffee break
SSaaPP 2: Fault Localization in Spreadsheets (DI-A2)
11h30
Daniel Kulesz: Which Types of Spreadsheets Faults are Responsible for Significant Failures?
Faults in spreadsheets are common, but seldom easy to spot. The results of our previous work - a controlled experiment with 42 subjects on the creation and modification of spreadsheets - indicated that violations of Best Practices such as "don't put constants in formulae" are not dependable as indicators of correctness. Meanwhile, we have examined the actual faults and possible causes in more detail. In this talk, we would like to present a few of our findings and discuss possible approaches towards more effective detection strategies.
12h00
André Riboira & Rui Maranhão: Spreadsheet debugging using a Spectrum-based Fault Localization approach
Spectrum-based Fault Localization (SFL) approaches are proved to be effective in helping software developers during their debugging tasks. The same principles may also be used with spreadsheets. Traditional SFL approaches use matrices with the software's hit-spectra, obtained from several test executions, as well as the resulting error vectors, denoting the result of each test execution. Although these techniques may not be directly applied to spreadsheets, they may be adapted to this new programming paradigm. Traditional software components considered by the hit-spectra may be replaced by the spreadsheet's cells. The test executions may be replaced by the spreadsheet's output cells (cells not used by any other cell). Thus, the error vector should be associated with the results of these output cells. Consequently we can produce the SFL's input matrix and error vector, to allow the use of any of the existent similarity coefficients to pinpoint the most suspicious spreadsheet's cells.
12h30
Lunch
FATBIT 3: Foundations of Bidirectional Transformations (DI-A2)
14h30
Jeremy Gibbons (joint work with Richard Bird): The Un of Programming
A recent paper by Graham Hutton and Diana Fulger ("Reasoning about Effects: Seeing the Wood through the Trees", in the preproceedings of Trends in Functional Programming 2008) addresses the problem of reasoning about effectful functional programs, introducing a relabelling function on binary trees as a representative illustration. The example is a very fruitful one, but we argue that their approach is less effective than it might be, because they miss two opportunities for higher-level reasoning: abstraction from the particular kinds of effect (the choice of monad) and from the pattern of recursion (the flow of computation). We present an alternative approach using properties of idiomatic traversals, which cleanly separate the twin concerns of the kinds of effect and the pattern of recursion. In particular, we approach the problem by considering its inverse; and we argue that this is an important approach which has so far been missing from discussions of idiomatic traversal.
15h00
Alcino Cunha: A Taxonomy of Bidirectional Transformations
The recent rise of interest in bidirectional transformations (BX) has led to the development of many BX frameworks, originating in diverse computer science disciplines. However, due to lack of a universal classifying system, existing frameworks are still difficult to compare in terms of expressiveness and robustness. In this paper, we analyze the defining features of BX frameworks, namely their scheme, properties and deployment technique, and propose a generic taxonomy that can be used to classify and compare them. Moreover, we applied this taxonomy to a vast number of existing BX frameworks, thus providing a detailed panorama of the current BX state of the art.
15h30
Janis Voigtländer: Ideas for Connecting Inductive Program Synthesis and Bidirectionalization
We share a vision of connecting the topics of bidirectional transformation and inductive program synthesis, by proposing to use the latter in approaching problematic aspects of the former. This research perspective does not present accomplished results, rather opening discussion and describing experiments designed to explore the potential of inductive program synthesis for bidirectionalization (the act of automatically producing a backwards from a forwards transformation), in particular to address the issue of integrating programmer intentions and expectations.
15h45
Hugo Pacheco: Functional Logic Semantic Bidirectionalization for free!
Nowadays, many bidirectional approaches exist, but most depend on some syntactic analysis of a specification in order to equip it with a bidirectional semantics. An interesting alternative, coined semantic bidirectionalization by Voigtländer, allows to bidirectionalize an arbitrary transformation almost for free by inspecting not its syntax but its shape, i.e., the types over which it is defined. In this talk, we attempt to overcome the limitations of Voigtländer's pioneering approach, that relies on the parametric polymorphism of Haskell functional programs. Concretely, we propose first steps for a functional logic bidirectionalization approach that is nearly a superset of its functional parent and resorts to program inversion techniques that enable a more precise non-deterministic bidirectional semantics on-the-fly. We show that the additional computation cost of a prototype Curry implementation is bearable for many interesting examples, demonstrating the potential of our approach.
16h00
Coffee break
SSaaPP 3: Model Driven Spreadsheets (DI-A2)
16h30
Pedro Faria: Security in Model Driven Spreadsheets
Loss of secrecy, theft or fraud are problems regarding the lack of confidentiality and privacy on shared spreadsheets. There are numerous examples in which an inappropriate share of a spreadsheet, due to hacking, negligence, or even a lost pen-drive, causes a leak in private data, which may result in economic and personal disasters. Such problems can be reduced with access control mechanisms over a model-driven paradigm. Each mechanism has its own pros and cons, and even different implementations according to the sharing environment. This presentation will talk about those problems, in particular the ones regarding the update and change of spreadsheets, and possible solutions, as well the next research paths.
16h45
Jorge Mendes: Evolution of Model Driven Spreadsheets
Spreadsheets are the most used programming environment, mostly because they are very flexible. This is due to the lack of restrictions imposed on them which can lead to lots of errors. A first approach to Model-Driven Engineering was already suggested to improve spreadsheets, providing them with specifications and checking tools. However, users have to learn how to use these tools on top of their existing spreadsheet host system. To remove that difficulty, the work for this thesis describes an embedding of spreadsheet models within spreadsheet themselves. This embedding enables users to create models in the same environment that they use for spreadsheet development and that they are familiar with. Moreover, a set of operations that can be performed on these models and respective instances is defined. This way, users interact with models and spreadsheets in the same environment with the objective to improve work performance and reduce errors. Resulting from this work, a prototype was created and is also discussed in this dissertation. This prototype can be used to validate the approach taken in this thesis and to provide a base framework for future developments.
Alcino Cunha: Overview of the FATBIT project (Sala Reuniões)
9h45
Nuno Macedo, Tiago Guimarães: Model repair and transformation with Echo
Models are paramount in model-driven engineering. In a software project many models may coexist, capturing different views of the system or different levels of abstraction. A key and arduous task in this development method is to keep all such models consistent, both with their meta-models (and the respective constraints) and among themselves. This presentation will present and demo Echo, a tool that aims at simplifying this task by automating inconsistency detection and repair using a solver based engine. Consistency between different models can be specified by bidirectional model transformations, and is guaranteed to be recovered by minimal updates on the inconsistent models. The tool is freely available as an Eclipse plugin, developed on top of the popular EMF framework, and supports constraints and transformations specified in the OMG standard languages OCL and QVT-R, respectively.
10h30
Coffee break
10h45
Alcino Cunha: Target oriented model finding (Sala Reuniões)
Model finders are undoubtedly useful. Many already support expressive logics that simplify the specification of typical software engineering requirements. Some allow the encoding of partial knowledge about instances. This is useful, for example, for specifying typical examples in order to validate the specification, or for bounding model verification within a particular class of instances. An example of such model finder is Kodkod, that supports constraints written in relational logic, and that allows the specification of lower and upper bounds for instances. Besides being the model finder that supports the verification of specifications written in (the increasingly popular) Alloy language, due to aforementioned features, Kodkod is also the model finder of choice in the backend of many software engineering applications and tools. In this presentation I will first present an interesting class of software engineering applications that can be implemented using a model finding procedure that tries to yield a SAT instance "as close as possible" to a given target UNSAT instance. I will then show how Kodkod can be extended to support such functionality using two different approaches: via encoding to boolean SAT solvers that support cardinality constraints, and via encoding to PMAX-SAT solvers. Finally, some small case-studies and preliminary evaluation results will be presented to access the viability of this extension.
Bidirectional transformations have application in a wide number of computer science domains. Spreadsheets, on the other hand, are widely used for developing business applications, but their formulas are unidirectional, in the sense that their result can not be edited and propagated back to their input cells. In this presentation we will discuss the bidirectionalization of such formulas, by recasting them as lenses over types enriched with invariants. The presentation includes a small demo of the Excel plugin we are currently developing to implement such bidirectionalization.
12h00
Lunch
14h00
Perdita Stevens: Models in software engineering (Anfiteatro DI A1)
A model is (for purposes of this talk) an abstract, usually graphical, representation of some aspect of a software-intensive system. Software engineering has, since its invention, involved the use of models. In recent decades, a perceived need for greater automation of processes in software engineering, the wish to develop software faster and more cheaply, and the drive for higher quality have motivated ever more reliance on models. Languages for modelling and techniques for working with models have struggled to keep pace, hindered in some cases by conflicting requirements arising from the different motivations. We are currently in a dangerous state in which models sometimes endanger rather than support the developers' aims. I will explain some of the problems, and discuss the progress that I think we will/may/should/must/cannot expect to see in the coming years.
15h00
Coffee break
15h30
Small meeting: Bidirectional model transformation case studies (Sala Reuniões)
Alcino Cunha: Overview of the FATBIT project (Sala Reuniões)
9h45
Nuno Macedo, Tiago Guimarães: Model repair and transformation with Echo
Models are paramount in model-driven engineering. In a software project many models may coexist, capturing different views of the system or different levels of abstraction. A key and arduous task in this development method is to keep all such models consistent, both with their meta-models (and the respective constraints) and among themselves. This presentation will present and demo Echo, a tool that aims at simplifying this task by automating inconsistency detection and repair using a solver based engine. Consistency between different models can be specified by bidirectional model transformations, and is guaranteed to be recovered by minimal updates on the inconsistent models. The tool is freely available as an Eclipse plugin, developed on top of the popular EMF framework, and supports constraints and transformations specified in the OMG standard languages OCL and QVT-R, respectively.
10h15
Alcino Cunha: Target oriented relational model finding (Sala Reuniões)
Model finders are becoming useful in many software engineering problems. Kodkod is one of the most popular, due to its support for relational logic (a combination of first order logic with relational algebra operators and transitive closure), allowing a simpler specification of constraints, and support for partial instances, allowing the specification of a priori (exact, but potentially partial) knowledge about a problem's solution. However, in some software engineering problems, such as model repair or bidirectional model transformation, knowledge about the solution is not exact, but instead require the specification of a known target that the solution should approximate. In this paper we extend Kodkod' partial instances to allow the specification of such targets, and show how its model finding procedure can be adapted to support them (using both MaxSAT solvers or SAT solvers with cardinality constraints). Two case studies are also presented, including a careful performance evaluation to access the viability of the proposed extension.
Bidirectional transformations have application in a wide number of computer science domains. Spreadsheets, on the other hand, are widely used for developing business applications, but their formulas are unidirectional, in the sense that their result can not be edited and propagated back to their input cells. In this paper, we propose the bidirectionalization of such formulas, by recasting them as lenses, a successful bidirectional transformation framework with instantiations in various data domains relevant for this endeavor.
11h30
Rui Pereira: QuerySheet: A Bidirectional Query Environment for Model-Driven Spreadsheets (Sala Reuniões)
11h45
Nuno Souza: Bidirectional Distributed Data Aggregation (Sala Reuniões)
12h00
Lunch
14h00
Zhenjiang Hu: An Introduction to Bidirectional Model Transformation with GRoundTram (DI 1.08)
Bidirectional model transformation is useful for maintaining consistency between two models, and has many potential applications in software development including model synchronization, round-trip engineering, and software evolution. Despite these attractive uses, the lack of a practical tool support for systematic development of well-behaved and efficient bidirectional model transformation prevents it from being widely used. In this tutorial talk, I would like to show how this problem can be resolved with an integrated framework called GRoundTram, which is carefully designed and implemented for compositional development of well-behaved and efficient bidirectional model transformations. GRoundTram is built upon a well-founded bidirectional framework, and is equipped with a user-friendly language for coding bidirectional model transformation, a new tool for validating both models and bidirectional model transformations, an optimization mechanism for improving efficiency, and a powerful debugging environment for testing bidirectional behavior. GRoundTram has been used by people of other groups and their results show its usefulness in practice.
15h30
Coffee break
16h00
Nuno Macedo: Bidirectionalizing ATL within Echo (Sala Reuniões)
16h15
Tiago Jorge: Comparing Bidirectional Transformation Tools with Examples (Sala Reuniões)
16h30
Discussion (Sala Reuniões)
Found 31 topics.
Other search options:
If you already know the name of the topic, enter the name of the topic into the Jump box at the top
Dez 23
New papers accepted for publication at PEPM'14 and FASE'14.
Aug 26
Tool demo accepted for publication at ASE'13: Nuno Macedo, Tiago Guimarães, and Alcino Cunha, Model Repair and Transformation with Echo.
Mar 18
Our FASE'13 paper on Implementing QVT-R Bidirectional Model Transformations using Alloy is one of the nominated for best paper at ETAPS.
Feb 1
Paper accepted for publication at BX'13: N. Macedo, H. Pacheco, A. Cunha, and J. N. Oliveira: Composing Least-change Lenses.
Dec 21
Two new students have joined the project team as BI grant holders. Nuno Sousa will be working on bidirectionalizing spreadsheet formulas, and Tiago Guimarães will help in the implementation of a QVT-R bidirectional transformation tool.
Dec 18
Paper accepted for publication at FASE'13: N. Macedo and A. Cunha: Implementing QVT-R Bidirectional Model Transformations using Alloy.
Oct 10Two 6 month grants available to work on bidirectional transformations!
Jun 16
Paper accepted for publication at RAMICS'12: N. Macedo, H. Pacheco and A. Cunha: Relations as executable specifications: taming partiality and non-determinism using invariants.
Jun 1
Paper accepted for publication at the post-proceedings of BX'12: H. Pacheco, A. Cunha and Z. Hu. Delta Lenses over Inductive Types.
Old News
Hugo Pacheco: Bidirectional Data Transformation by Calculation
The advent of bidirectional programming, in recent years, has led to the development of a vast number of approaches from various computer science disciplines. These are often based on domain-specific languages in which a program can be read both as a forward and a backward transformation that satisfy some desirable consistency properties. Despite the high demand and recognized potential of intrinsically bidirectional languages, they have still not matured to the point of mainstream adoption. This dissertation contemplates some usually disregarded features of bidirectional transformation languages that are vital for deployment at a larger scale. The first concerns efficiency. Most of these languages provide a rich set of primitive combinators that can be composed to build more sophisticated transformations. Although convenient, such compositional languages are plagued by inefficiency and their optimization is mandatory for a serious application. The second relates to configurability. As update translation is inherently ambiguous, users shall be allowed to control the choice of a suitable strategy. The third regards genericity. Writing a bidirectional transformation typically implies describing the concrete steps that convert values in a source schema to values a target schema, making it impractical to express very complex transformations, and practical tools shall support concise and generic coding patterns.
13h00
Lunch
FATBIT 1: Foundations of Bidirectional Transformations (DI-A2)
Alcino Cunha & João Saraiva: Welcome Session
15h00
Zhenjiang Hu: Towards Deterministic Backward Transformations
Bidirectionalization is an automatic program transformation that derives a backward transformation from a given forward transformation. In general, more than one backward transformations exist and the problem is how to choose the "best" backward transformation that not only satisfies the roundtrip property but also meets the user's intention. I would like to discuss the importance of determination of such backward transformation and explain some possible solutions.
15h30
Nuno Macedo: Relations as Executable Specifications: Taming Partiality and Non-determinism Using Invariants
The calculus of relations has been widely used in program specification and reasoning. It is very tempting to use such specifications as running prototypes of the desired program, but, even considering finite domains, the inherent partiality and non-determinism of relations makes this impractical and highly inefficient. To tame partiality we prescribe the usage of invariants, represented by coreflexives, to characterize the exact domains and codomains of relational specifications. Such invariants can be used as pre-condition checkers to avoid runtime errors. Moreover, we show how such invariants can be used to narrow the non-deterministic execution of relational specifications, making it viable for a relevant class of problems. In particular, we show how the proposed techniques can be applied to execute specifications of bidirectional transformations, a domain where partiality and non-determinism are paramount.
16h00
Coffee break
SSaaPP 1: Spreadsheet Engineering (DI-A2)
16h30
Felienne Hermans: Detecting Code Smells in Spreadsheet Formulas
Spreadsheets are used extensively in business processes around the world and just like software, spreadsheets are changed throughout their lifetime causing maintainability issues. This paper adapts known code smells to spreadsheet formulas. To that end we present a list of metrics by which we can detectsmelly formulas and a visualization technique to highlight these formulas in spreadsheets. We implemented the metrics and visualization technique in a prototype tool to evaluate our approach in two ways. Firstly, we analyze the Euses spreadsheet corpus, to study the occurrence of the formula smells. Secondly, we analyze ten real life spreadsheets, and interview the spreadsheet owners about the identified smells. The results of these evaluations indicate that formula smells are common and that they can reveal real errors and weaknesses in spreadsheet formulas.
17h00
Jácome Cunha & João Paulo Fernandes: Model-based Spreadsheet Engineering
Spreadsheets play an important role in software organizations. Indeed, in large software organizations, spreadsheets are not only used to define sheets containing data and formulas, but also to collect information from different systems, to adapt data coming from one system to the format required by another, to perform operations to enrich or simplify data, etc. In fact, over time many spreadsheets turn out to be used for storing and processing increasing amounts of data and supporting increasing numbers of users. Unfortunately, spreadsheet systems provide poor support for modularity, abstraction, and transformation, thus, making the maintenance, update and evolution of spreadsheets a very complex and error-prone task. We present techniques for model-driven spreadsheet engineering where we a ClassSheet model is inferred form legacy spreadsheets. We also present techniques to embedded such models in spreadsheet systems. Finally we employ bidirectional transformations to maintain spreadsheet models and instances synchronized. Our techniques are implemented as part of the MDSheet framework: an extension for a traditional spreadsheet system.
20h00
Workshop Dinner
September 18
FATBIT 2: Applications of Bidirectional Transformations (DI-A2)
10h00
Nuno Macedo: An Implementation of QVT-R using Alloy
The QVT Relations language is widely used to specify transformations between models. However, due to ambiguities in its semantics, development and acceptance of tool support has been slow. Alloy is a lightweight formal specification language with support for automatic verification and model generation. By translating to Alloy both UML models and QVT transformations over them, both annotated with generic OCL constraints, we are able to provide a functional bidirectional transformation framework, whose supported language is more expressive than those of the existing tools. We take into consideration the QVT semantics as defined in the standard, and analyze and compare our results where the specification is incomplete or ambiguous.
10h30
Alcino Cunha: Towards the Bidirectionalization of Spreadsheet Formulas
Bidirectional transformations have application in a wide number of computer science domains. Spreadsheets, on the other hand, are widely used for developing business applications, but their formulas are unidirectional, in the sense that their result can not be edited and propagated back to their input cells. In this poster, we propose the bidirectionalization of such formulas, by recasting them as lenses, a successful bidirectional transformation framework with instantiations in various data domains relevant for this endeavor.
10h45
Pedro Martins: Bidirectional Attribute Grammars
Bidirectionalization is the process of automatically generating a transformation on one direction, from a type of data A to a type B, given the opposite transformation (i.e.: given the transformation that goes from B to A). In this talk we will present a prototype of a bidirectionalization system that handles syntactic information described as Context-free Grammars. Our system is based on a set of mappings between grammar productions and is capable of dealing with situations where there are non-bijective mappings between Non Terminal elements of the Grammars, in any direction. We will also present a prototype implementation of a bidirectionalization engine.
11h00
Coffee break
SSaaPP 2: Fault Localization in Spreadsheets (DI-A2)
11h30
Daniel Kulesz: Which Types of Spreadsheets Faults are Responsible for Significant Failures?
Faults in spreadsheets are common, but seldom easy to spot. The results of our previous work - a controlled experiment with 42 subjects on the creation and modification of spreadsheets - indicated that violations of Best Practices such as "don't put constants in formulae" are not dependable as indicators of correctness. Meanwhile, we have examined the actual faults and possible causes in more detail. In this talk, we would like to present a few of our findings and discuss possible approaches towards more effective detection strategies.
12h00
André Riboira & Rui Maranhão: Spreadsheet debugging using a Spectrum-based Fault Localization approach
Spectrum-based Fault Localization (SFL) approaches are proved to be effective in helping software developers during their debugging tasks. The same principles may also be used with spreadsheets. Traditional SFL approaches use matrices with the software's hit-spectra, obtained from several test executions, as well as the resulting error vectors, denoting the result of each test execution. Although these techniques may not be directly applied to spreadsheets, they may be adapted to this new programming paradigm. Traditional software components considered by the hit-spectra may be replaced by the spreadsheet's cells. The test executions may be replaced by the spreadsheet's output cells (cells not used by any other cell). Thus, the error vector should be associated with the results of these output cells. Consequently we can produce the SFL's input matrix and error vector, to allow the use of any of the existent similarity coefficients to pinpoint the most suspicious spreadsheet's cells.
12h30
Lunch
FATBIT 3: Foundations of Bidirectional Transformations (DI-A2)
14h30
Jeremy Gibbons (joint work with Richard Bird): The Un of Programming
A recent paper by Graham Hutton and Diana Fulger ("Reasoning about Effects: Seeing the Wood through the Trees", in the preproceedings of Trends in Functional Programming 2008) addresses the problem of reasoning about effectful functional programs, introducing a relabelling function on binary trees as a representative illustration. The example is a very fruitful one, but we argue that their approach is less effective than it might be, because they miss two opportunities for higher-level reasoning: abstraction from the particular kinds of effect (the choice of monad) and from the pattern of recursion (the flow of computation). We present an alternative approach using properties of idiomatic traversals, which cleanly separate the twin concerns of the kinds of effect and the pattern of recursion. In particular, we approach the problem by considering its inverse; and we argue that this is an important approach which has so far been missing from discussions of idiomatic traversal.
15h00
Alcino Cunha: A Taxonomy of Bidirectional Transformations
The recent rise of interest in bidirectional transformations (BX) has led to the development of many BX frameworks, originating in diverse computer science disciplines. However, due to lack of a universal classifying system, existing frameworks are still difficult to compare in terms of expressiveness and robustness. In this paper, we analyze the defining features of BX frameworks, namely their scheme, properties and deployment technique, and propose a generic taxonomy that can be used to classify and compare them. Moreover, we applied this taxonomy to a vast number of existing BX frameworks, thus providing a detailed panorama of the current BX state of the art.
15h30
Janis Voigtländer: Ideas for Connecting Inductive Program Synthesis and Bidirectionalization
We share a vision of connecting the topics of bidirectional transformation and inductive program synthesis, by proposing to use the latter in approaching problematic aspects of the former. This research perspective does not present accomplished results, rather opening discussion and describing experiments designed to explore the potential of inductive program synthesis for bidirectionalization (the act of automatically producing a backwards from a forwards transformation), in particular to address the issue of integrating programmer intentions and expectations.
15h45
Hugo Pacheco: Functional Logic Semantic Bidirectionalization for free!
Nowadays, many bidirectional approaches exist, but most depend on some syntactic analysis of a specification in order to equip it with a bidirectional semantics. An interesting alternative, coined semantic bidirectionalization by Voigtländer, allows to bidirectionalize an arbitrary transformation almost for free by inspecting not its syntax but its shape, i.e., the types over which it is defined. In this talk, we attempt to overcome the limitations of Voigtländer's pioneering approach, that relies on the parametric polymorphism of Haskell functional programs. Concretely, we propose first steps for a functional logic bidirectionalization approach that is nearly a superset of its functional parent and resorts to program inversion techniques that enable a more precise non-deterministic bidirectional semantics on-the-fly. We show that the additional computation cost of a prototype Curry implementation is bearable for many interesting examples, demonstrating the potential of our approach.
16h00
Coffee break
SSaaPP 3: Model Driven Spreadsheets (DI-A2)
16h30
Pedro Faria: Security in Model Driven Spreadsheets
Loss of secrecy, theft or fraud are problems regarding the lack of confidentiality and privacy on shared spreadsheets. There are numerous examples in which an inappropriate share of a spreadsheet, due to hacking, negligence, or even a lost pen-drive, causes a leak in private data, which may result in economic and personal disasters. Such problems can be reduced with access control mechanisms over a model-driven paradigm. Each mechanism has its own pros and cons, and even different implementations according to the sharing environment. This presentation will talk about those problems, in particular the ones regarding the update and change of spreadsheets, and possible solutions, as well the next research paths.
16h45
Jorge Mendes: Evolution of Model Driven Spreadsheets
Spreadsheets are the most used programming environment, mostly because they are very flexible. This is due to the lack of restrictions imposed on them which can lead to lots of errors. A first approach to Model-Driven Engineering was already suggested to improve spreadsheets, providing them with specifications and checking tools. However, users have to learn how to use these tools on top of their existing spreadsheet host system. To remove that difficulty, the work for this thesis describes an embedding of spreadsheet models within spreadsheet themselves. This embedding enables users to create models in the same environment that they use for spreadsheet development and that they are familiar with. Moreover, a set of operations that can be performed on these models and respective instances is defined. This way, users interact with models and spreadsheets in the same environment with the objective to improve work performance and reduce errors. Resulting from this work, a prototype was created and is also discussed in this dissertation. This prototype can be used to validate the approach taken in this thesis and to provide a base framework for future developments.
Alcino Cunha: Overview of the FATBIT project (Sala Reuniões)
9h45
Nuno Macedo, Tiago Guimarães: Model repair and transformation with Echo
Models are paramount in model-driven engineering. In a software project many models may coexist, capturing different views of the system or different levels of abstraction. A key and arduous task in this development method is to keep all such models consistent, both with their meta-models (and the respective constraints) and among themselves. This presentation will present and demo Echo, a tool that aims at simplifying this task by automating inconsistency detection and repair using a solver based engine. Consistency between different models can be specified by bidirectional model transformations, and is guaranteed to be recovered by minimal updates on the inconsistent models. The tool is freely available as an Eclipse plugin, developed on top of the popular EMF framework, and supports constraints and transformations specified in the OMG standard languages OCL and QVT-R, respectively.
10h30
Coffee break
10h45
Alcino Cunha: Target oriented model finding (Sala Reuniões)
Model finders are undoubtedly useful. Many already support expressive logics that simplify the specification of typical software engineering requirements. Some allow the encoding of partial knowledge about instances. This is useful, for example, for specifying typical examples in order to validate the specification, or for bounding model verification within a particular class of instances. An example of such model finder is Kodkod, that supports constraints written in relational logic, and that allows the specification of lower and upper bounds for instances. Besides being the model finder that supports the verification of specifications written in (the increasingly popular) Alloy language, due to aforementioned features, Kodkod is also the model finder of choice in the backend of many software engineering applications and tools. In this presentation I will first present an interesting class of software engineering applications that can be implemented using a model finding procedure that tries to yield a SAT instance "as close as possible" to a given target UNSAT instance. I will then show how Kodkod can be extended to support such functionality using two different approaches: via encoding to boolean SAT solvers that support cardinality constraints, and via encoding to PMAX-SAT solvers. Finally, some small case-studies and preliminary evaluation results will be presented to access the viability of this extension.
Bidirectional transformations have application in a wide number of computer science domains. Spreadsheets, on the other hand, are widely used for developing business applications, but their formulas are unidirectional, in the sense that their result can not be edited and propagated back to their input cells. In this presentation we will discuss the bidirectionalization of such formulas, by recasting them as lenses over types enriched with invariants. The presentation includes a small demo of the Excel plugin we are currently developing to implement such bidirectionalization.
12h00
Lunch
14h00
Perdita Stevens: Models in software engineering (Anfiteatro DI A1)
A model is (for purposes of this talk) an abstract, usually graphical, representation of some aspect of a software-intensive system. Software engineering has, since its invention, involved the use of models. In recent decades, a perceived need for greater automation of processes in software engineering, the wish to develop software faster and more cheaply, and the drive for higher quality have motivated ever more reliance on models. Languages for modelling and techniques for working with models have struggled to keep pace, hindered in some cases by conflicting requirements arising from the different motivations. We are currently in a dangerous state in which models sometimes endanger rather than support the developers' aims. I will explain some of the problems, and discuss the progress that I think we will/may/should/must/cannot expect to see in the coming years.
15h00
Coffee break
15h30
Small meeting: Bidirectional model transformation case studies (Sala Reuniões)
Alcino Cunha: Overview of the FATBIT project (Sala Reuniões)
9h45
Nuno Macedo, Tiago Guimarães: Model repair and transformation with Echo
Models are paramount in model-driven engineering. In a software project many models may coexist, capturing different views of the system or different levels of abstraction. A key and arduous task in this development method is to keep all such models consistent, both with their meta-models (and the respective constraints) and among themselves. This presentation will present and demo Echo, a tool that aims at simplifying this task by automating inconsistency detection and repair using a solver based engine. Consistency between different models can be specified by bidirectional model transformations, and is guaranteed to be recovered by minimal updates on the inconsistent models. The tool is freely available as an Eclipse plugin, developed on top of the popular EMF framework, and supports constraints and transformations specified in the OMG standard languages OCL and QVT-R, respectively.
10h15
Alcino Cunha: Target oriented relational model finding (Sala Reuniões)
Model finders are becoming useful in many software engineering problems. Kodkod is one of the most popular, due to its support for relational logic (a combination of first order logic with relational algebra operators and transitive closure), allowing a simpler specification of constraints, and support for partial instances, allowing the specification of a priori (exact, but potentially partial) knowledge about a problem's solution. However, in some software engineering problems, such as model repair or bidirectional model transformation, knowledge about the solution is not exact, but instead require the specification of a known target that the solution should approximate. In this paper we extend Kodkod' partial instances to allow the specification of such targets, and show how its model finding procedure can be adapted to support them (using both MaxSAT solvers or SAT solvers with cardinality constraints). Two case studies are also presented, including a careful performance evaluation to access the viability of the proposed extension.
Bidirectional transformations have application in a wide number of computer science domains. Spreadsheets, on the other hand, are widely used for developing business applications, but their formulas are unidirectional, in the sense that their result can not be edited and propagated back to their input cells. In this paper, we propose the bidirectionalization of such formulas, by recasting them as lenses, a successful bidirectional transformation framework with instantiations in various data domains relevant for this endeavor.
11h30
Rui Pereira: QuerySheet: A Bidirectional Query Environment for Model-Driven Spreadsheets (Sala Reuniões)
11h45
Nuno Souza: Bidirectional Distributed Data Aggregation (Sala Reuniões)
12h00
Lunch
14h00
Zhenjiang Hu: An Introduction to Bidirectional Model Transformation with GRoundTram (DI 1.08)
Bidirectional model transformation is useful for maintaining consistency between two models, and has many potential applications in software development including model synchronization, round-trip engineering, and software evolution. Despite these attractive uses, the lack of a practical tool support for systematic development of well-behaved and efficient bidirectional model transformation prevents it from being widely used. In this tutorial talk, I would like to show how this problem can be resolved with an integrated framework called GRoundTram, which is carefully designed and implemented for compositional development of well-behaved and efficient bidirectional model transformations. GRoundTram is built upon a well-founded bidirectional framework, and is equipped with a user-friendly language for coding bidirectional model transformation, a new tool for validating both models and bidirectional model transformations, an optimization mechanism for improving efficiency, and a powerful debugging environment for testing bidirectional behavior. GRoundTram has been used by people of other groups and their results show its usefulness in practice.
15h30
Coffee break
16h00
Nuno Macedo: Bidirectionalizing ATL within Echo (Sala Reuniões)
16h15
Tiago Jorge: Comparing Bidirectional Transformation Tools with Examples (Sala Reuniões)