M. Wimmer, Salvador Martínez Perez, F. Jouault, Jordi Cabot
{"title":"A Catalogue of Refactorings for Model-to-Model Transformations","authors":"M. Wimmer, Salvador Martínez Perez, F. Jouault, Jordi Cabot","doi":"10.5381/jot.2012.11.2.a2","DOIUrl":"https://doi.org/10.5381/jot.2012.11.2.a2","url":null,"abstract":"In object-oriented programming, continuous refactorings are used as the main mechanism to increase the maintainability of the code base. Unfortunately, in the field of model transformations, such refac- toring support is so far missing. This paper tackles this limitation by adapting the notion of refactorings to model-to-model (M2M) transfor- mations. In particular, we present a dedicated catalogue of refactorings for improving the quality of M2M transformations. The refactorings have been explored by analyzing existing transformation examples defined in ATL. However, the refactorings are not specifically tailored to ATL, but applicable also to other M2M transformation languages.","PeriodicalId":383341,"journal":{"name":"J. Object Technol.","volume":"6 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2012-08-15","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"127121579","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
M. Wimmer, G. Kappel, A. Kusel, W. Retschitzegger, J. Schönböck, W. Schwinger, D. Kolovos, R. Paige, M. Lauder, Andy Schürr, Dennis Wagelaar
{"title":"Surveying Rule Inheritance in Model-to-Model Transformation Languages","authors":"M. Wimmer, G. Kappel, A. Kusel, W. Retschitzegger, J. Schönböck, W. Schwinger, D. Kolovos, R. Paige, M. Lauder, Andy Schürr, Dennis Wagelaar","doi":"10.5381/jot.2012.11.2.a3","DOIUrl":"https://doi.org/10.5381/jot.2012.11.2.a3","url":null,"abstract":"Model transformations play a significant role in Model-Driven Engineering. However, their reuse mechanisms have yet to receive much attention. In this paper, we propose a comparison framework for rule inheritance in model-to-model transformation languages, and provide an in-depth evaluation of prominent representatives of imperative, declarative and hybrid transformation languages. The framework provides criteria for comparison along orthogonal dimensions, covering static aspects, which indicate whether a set of inheriting transformation rules is well-formed at compile-time, and dynamic aspects, which describe how inheriting rules behave at run-time. The application of this framework to dedicated transformation languages shows that, while providing similar syntactical inheritance concepts, they exhibit different dynamic inheritance semantics and offer basic support for checking static inheritance semantics, only.","PeriodicalId":383341,"journal":{"name":"J. Object Technol.","volume":"1 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2012-08-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"125816078","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
J. Object Technol.Pub Date : 2012-05-29DOI: 10.1007/978-3-642-30561-0_21
Erwann Wernli, M. Lungu, Oscar Nierstrasz
{"title":"Incremental Dynamic Updates with First-class Contexts","authors":"Erwann Wernli, M. Lungu, Oscar Nierstrasz","doi":"10.1007/978-3-642-30561-0_21","DOIUrl":"https://doi.org/10.1007/978-3-642-30561-0_21","url":null,"abstract":"","PeriodicalId":383341,"journal":{"name":"J. Object Technol.","volume":"106 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2012-05-29","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"115573842","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
Christoph Bockisch, Andreas Sewe, Haihan Yin, M. Mezini, M. Aksit
{"title":"An In-Depth Look at ALIA4J","authors":"Christoph Bockisch, Andreas Sewe, Haihan Yin, M. Mezini, M. Aksit","doi":"10.5381/jot.2012.11.1.a7","DOIUrl":"https://doi.org/10.5381/jot.2012.11.1.a7","url":null,"abstract":"New programming languages supporting advanced modularization mechanisms are often implemented as transformations to the imperative intermediate representation of an already established language. But while their core constructs largely overlap in semantics, re-using the corresponding transformations requires re-using their syntax as well; this is limiting. In the ALIA4J approach, we identified dispatching as fundamental to most modularization mechanisms and provide a meta-model of dispatching as a rich, extensible intermediate language. Based on this meta-model, one can modularly implement the semantics of dispatching-related constructs. From said constructs a single execution model can then be derived which facilitates interpretation, bytecode generation, and even optimized machine-code generation. We show the suitability of our approach by mapping five popular languages to this meta-model and find that most of their constructs are shared across multiple languages. We furthermore present implementations of the three different execution strategies together with a generic visual debugger available to any ALIA4J-based language implementation. Intertwined with this paper is a tutorial-style running example that illustrates our approach.","PeriodicalId":383341,"journal":{"name":"J. Object Technol.","volume":"1 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2012-04-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"127055730","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
Philip Langer, Konrad Wieland, M. Wimmer, Jordi Cabot
{"title":"EMF Profiles: A Lightweight Extension Approach for EMF Models","authors":"Philip Langer, Konrad Wieland, M. Wimmer, Jordi Cabot","doi":"10.5381/jot.2012.11.1.a8","DOIUrl":"https://doi.org/10.5381/jot.2012.11.1.a8","url":null,"abstract":"Domain-Specific Modeling Languages (DSMLs) are getting more and more attention as a key element of Model Driven Engineering. As any other software artifact, DSMLs should continuously evolve to adapt to the changing needs of the domain they represent. Unfortunately, right now evolution of DSMLs is a costly process that requires changing the DSML metamodel and re-creating the complete modeling environment. In this paper we advocate for the use of EMF Profiles, an adaptation of the UML Profile concept to DSMLs. Profiles have been a key enabler for the success of UML by providing a lightweight language-inherent extension mechanism which is expressive enough to cover an important subset of extension scenarios. We believe a similar concept for DSMLs would provide a valuable extension mechanism which has been so far neglected by current metamodeling tools. Apart from direct metamodel profiles, we also propose reusable profile definition mechanisms whereby profiles are defined independently of any DSML and, later on, coupled with all DSMLs that can benefit from these profiles. Our approach has been implemented in a prototype integrated in the EMF environment.","PeriodicalId":383341,"journal":{"name":"J. Object Technol.","volume":"1199 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2012-04-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"114838720","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
{"title":"CSOM/PL - A Virtual Machine Product Line","authors":"M. Haupt, Stefan Marr, R. Hirschfeld","doi":"10.5381/jot.2011.10.1.a12","DOIUrl":"https://doi.org/10.5381/jot.2011.10.1.a12","url":null,"abstract":"CSOM/PL is a software product line (SPL) derived from apply- ing multi-dimensional separation of concerns (MDSOC) techniques to the domain of high-level language virtual machine (VM) implementations. For CSOM/PL, we modularised CSOM, a Smalltalk VM implemented in C, using VMADL (virtual machine architecture description language). Several features of the original CSOM were encapsulated in VMADL modules and composed in various combinations. In an evaluation of our approach, we show that applying MDSOC and SPL principles to a domain as complex as that of VMs is not only feasible but beneficial, as it improves under- standability, maintainability, and configurability of VM implementations without harming performance.","PeriodicalId":383341,"journal":{"name":"J. Object Technol.","volume":"69 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2011-12-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"126416900","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
Jean-Rémy Falleri, S. Denier, Jannik Laval, P. Vismara, Stéphane Ducasse
{"title":"Efficient Retrieval and Ranking of Undesired Package Cycles in Large Software Systems","authors":"Jean-Rémy Falleri, S. Denier, Jannik Laval, P. Vismara, Stéphane Ducasse","doi":"10.5381/jot.2012.11.1.a4","DOIUrl":"https://doi.org/10.5381/jot.2012.11.1.a4","url":null,"abstract":"Many design guidelines state that a software system architecture should avoid cycles between its packages. Yet such cycles appear again and again in many programs. We believe that the existing approaches for cycle detection are too coarse to assist the developers to remove cycles from their programs. In this paper, we describe an efficient algorithm that performs a fine-grained analysis of the cycles among the packages of an application. In addition, we define a metric to rank cycles by their level of undesirability, prioritizing the cycles that seems the more undesired by the developers. Our approach is validated on two large and mature software systems in Java and Smalltalk.","PeriodicalId":383341,"journal":{"name":"J. Object Technol.","volume":"25 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2011-06-28","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"122893486","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
{"title":"Lifted Java: A Minimal Calculus for Translation Polymorphism","authors":"Matthias Diehn Ingesman, Erik Ernst","doi":"10.5381/jot.2012.11.1.a2","DOIUrl":"https://doi.org/10.5381/jot.2012.11.1.a2","url":null,"abstract":"To support roles and similar notions involving multiple views on an object, languages like Object Teams and CaesarJ include mechanisms known as lifting and lowering. These mechanisms connect pairs of objects of otherwise unrelated types, and enables programmers to consider such a pair almost as a single object which has both types. In the terminology of Object Teams this is called translation polymorphism. In both Object Teams and CaesarJ the type system of the Java programming language has been extended to support this through the use of advanced language features. However, so far the soundness of translation polymorphism has not been proved. \u0000 \u0000This paper presents a simple model that extends Featherweight Java with the core operations of translation polymorphism, provides a Coq proof that its type system is sound, and shows that the ambiguity problem associated with the so-called smart lifting mechanism can be eliminated by a very simple semantics for lifting.","PeriodicalId":383341,"journal":{"name":"J. Object Technol.","volume":"23 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2011-06-28","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"121856030","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
{"title":"Ontological Behavior Modeling","authors":"C. Bock, J. Odell","doi":"10.5381/jot.2011.10.1.a3","DOIUrl":"https://doi.org/10.5381/jot.2011.10.1.a3","url":null,"abstract":"This article gives an example of improving the effectiveness of behavior modeling languages using ontological techniques. The techniques are applied to behaviors in the Unified Modeling Language (UML), using the logical meanings for classification introduced in UML 2. The article suggests unifying UML's three kinds of behavior languages around the abstract syntax and semantics of composite structure, UML's model for capturing interconnection of parts of classes. This significantly simplifies the UML metamodel, provides a formal semantics to clarify ambiguities in the current informal semantics, and increases the expressiveness of UML behaviors.","PeriodicalId":383341,"journal":{"name":"J. Object Technol.","volume":"57 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2011-05-20","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"121569230","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
{"title":"Computational Abstraction Steps","authors":"L. L. Thomsen, Bent Thomsen, K. Nørmark","doi":"10.5381/jot.2010.9.6.a1","DOIUrl":"https://doi.org/10.5381/jot.2010.9.6.a1","url":null,"abstract":"In this paper we discuss computational abstraction steps as a way to create class abstractions from concrete objects, and from examples. Computational abstraction steps are regarded as symmetric counterparts to computational concretisation steps, which are well-known in terms of function calls and class instantiations. Our teaching experience shows that many novice programmers find it dicult to write programs with abstractions that materialise to concrete objects later in the development process. The contribution of this paper is the idea of initiating a pro- gramming process by creating or capturing concrete values, objects, or actions. As the next step, some of these are lifted to a higher level by computational means. In the object-oriented paradigm the target of such steps is classes. We hypothesise that the proposed approach primarily will be beneficial to novice programmers or during the exploratory phase of a program development process. In some specific niches it is also expected that our approach will benefit professional programmers.","PeriodicalId":383341,"journal":{"name":"J. Object Technol.","volume":"8 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2010-11-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"126096582","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}