92 research outputs found

    Co-Transformation of Type and Instance Graphs Supporting Merging of Types and Retyping

    Get PDF
    Algebraic graph transformation is a well-known rule-based approach to manipulate graphs that can be applied in several contexts. In this paper we use it in the context of model-driven engineering. Graph transformation rules usually specify changes to only one graph per application, however there are use cases such as model co-evolution where not only a single graph should be manipulated but also related ones. The co-transformation of type graphs together with their instance graphs has shown to be a promising approach to formalize model and meta-model co-evolution. In this paper, we extend our earlier work on co-evolution by allowing transformation rules that have less restrictions so that graph manipulations such as merging of types and retyping of graph elements are allowed

    Coupled Transformations of Graph Structures applied to Model Migration

    Get PDF
    Model-Driven Engineering (MDE) is a relatively new paradigm in software engineering that pursues the goal to master the increased complexity of modern software products. While software applications have been developed for a specific platform in the past, today they are targeting various platforms and devices from classical desktop PCs to smart phones. In addition, they interact with other applications. To easier cope with these new requirements, software applications are specified in MDE at a high abstraction level in so called models prior to their implementation. Afterward, model transformations are used to automate recurring development tasks as well as to generate software artifacts for different runtime environments. Thereby, software artifacts are not necessarily files containing program code, they can also cover configuration files as well as machine readable input for model checking tools. However, MDE does not only address software engineering problems, it also raises new challenges. One of these new challenges is connected to the specification of modeling languages, which are used to create models. The creation of a modeling language is a creative process that requires several iterations similar to the creation of models. New requirements as well as a better understanding of the application domain result in an evolution of modeling languages over time. Models developed in an earlier version of a modeling language often needs to be co-adopted (migrated) to language changes. This migration should be automated, as migrating models manually is time consuming and error-prone. While application modelers use ad-hoc solutions to migrate their models, there is still a lack of theory to ensure well-defined migration results. This work contributes to a formalization of modeling language evolution with corresponding model migration on the basis of algebraic graph transformations that have successfully been used earlier as theoretical foundations of model transformation. The goal of this research is to develop a theory that considers the problem of modeling language evolution with corresponding model migration on a conceptual level, independent of a specific modeling framework

    Well-formed Model Co-evolution with Customizable Model Migration

    Get PDF
    Model-driven engineering (MDE) is a software engineering discipline which focuses on models as the primary artifact of the software development process while programs are mainly generated by means of model-to-code transformations. In particular, modeling languages tailored to specific domains promise to increase the productivity and quality of software. Nevertheless due to e.g. evolving requirements, modeling languages evolve and existing models have to be migrated. Corresponding manual model migration is tedious and error-prone, therefore tools have been developed to (partly) automate this process. We follow the idea of considering such modeling language and model co-evolutions as related graph transformations ensuring a correct and unique typing of migrated models. In this paper, we present a general and formal construction of well-formed model migration schemes that are able to co-adapt any model of a given modeling language to a performed meta-model change. We show how appropriate model migration schemes can be constructed and discuss how they may be customized

    Towards the flexible reuse of model transformations: A formal approach based on Graph Transformation

    Full text link
    This is the author’s version of a work that was accepted for publication in Journal of Logical and Algebraic Methods in Programming. Changes resulting from the publishing process, such as peer review, editing, corrections, structural formatting, and other quality control mechanisms may not be reflected in this document. Changes may have been made to this work since it was submitted for publication. A definitive version was subsequently published in Journal of Logical and Algebraic Methods in Programming 83.5-6 (2014) , DOI:10.1016/j.jlamp.2014.08.005This special issue of the Journal of Logic and Algebraic Methods in Programming (JLAMP) includes full revised versions of selected papers that were presented at the 24th Nordic Workshop on Programming Theory (NWPT 2012). The workshop took place in Bergen, Norway, during 31 October–2 November 2012 and was organized by the Department of Informatics, University of Bergen, and the Bergen University College.Model transformations are the heart and soul of Model Driven Engineering (MDE). However, in order to increase the adoption of MDE by industry, techniques for developing model transformations in the large and raising the quality and productivity in their construction, like reusability, are still needed. In previous works, we developed a reutilization approach for graph transformations based on the definition of concepts, which gather the structural requirements needed by meta-models to qualify for the transformations. Reusable transformations are typed by concepts, becoming transformation templates. Transformation templates are instantiated by binding the concept to a concrete meta-model, inducing a retyping of the transformation for the given meta-model. This paper extends the approach allowing heterogeneities between the concept and the metamodel, thus increasing the reuse opportunities of transformation templates. Heterogeneities are resolved by using algebraic adapters which induce both a retyping and an adaptation of the transformation. As an alternative, the adapters can also be employed to induce an adaptation of the meta-model, and in this work we show the conditions for equivalence of both approaches to transformation reuse.We thank the referees for their detailed comments, which helped to greatly improve the paper. This work has been supported by the Spanish Ministry of Economy and Competitivity with project Go-Lite (TIN2011-24139)

    Transformation Tool Contest 2010, 1-2 July 2010, Malaga, Spain

    Get PDF

    Automated Software Transplantation

    Get PDF
    Automated program repair has excited researchers for more than a decade, yet it has yet to find full scale deployment in industry. We report our experience with SAPFIX: the first deployment of automated end-to-end fault fixing, from test case design through to deployed repairs in production code. We have used SAPFIX at Facebook to repair 6 production systems, each consisting of tens of millions of lines of code, and which are collectively used by hundreds of millions of people worldwide. In its first three months of operation, SAPFIX produced 55 repair candidates for 57 crashes reported to SAPFIX, of which 27 have been deem as correct by developers and 14 have been landed into production automatically by SAPFIX. SAPFIX has thus demonstrated the potential of the search-based repair research agenda by deploying, to hundreds of millions of users worldwide, software systems that have been automatically tested and repaired. Automated software transplantation (autotransplantation) is a form of automated software engineering, where we use search based software engineering to be able to automatically move a functionality of interest from a ‘donor‘ program that implements it into a ‘host‘ program that lacks it. Autotransplantation is a kind of automated program repair where we repair the ‘host‘ program by augmenting it with the missing functionality. Automated software transplantation would open many exciting avenues for software development: suppose we could autotransplant code from one system into another, entirely unrelated, system, potentially written in a different programming language. Being able to do so might greatly enhance the software engineering practice, while reducing the costs. Automated software transplantation manifests in two different flavors: monolingual, when the languages of the host and donor programs is the same, or multilingual when the languages differ. This thesis introduces a theory of automated software transplantation, and two algorithms implemented in two tools that achieve this: µSCALPEL for monolingual software transplantation and τSCALPEL for multilingual software transplantation. Leveraging lightweight annotation, program analysis identifies an organ (interesting behavior to transplant); testing validates that the organ exhibits the desired behavior during its extraction and after its implantation into a host. We report encouraging results: in 14 of 17 monolingual transplantation experiments involving 6 donors and 4 hosts, popular real-world systems, we successfully autotransplanted 6 new functionalities; and in 10 out of 10 multlingual transplantation experiments involving 10 donors and 10 hosts, popular real-world systems written in 4 different programming languages, we successfully autotransplanted 10 new functionalities. That is, we have passed all the test suites that validates the new functionalities behaviour and the fact that the initial program behaviour is preserved. Additionally, we have manually checked the behaviour exercised by the organ. Autotransplantation is also very useful: in just 26 hours computation time we successfully autotransplanted the H.264 video encoding functionality from the x264 system to the VLC media player, a task that is currently done manually by the developers of VLC, since 12 years ago. We autotransplanted call graph generation and indentation for C programs into Kate, (a popular KDE based test editor used as an IDE by a lot of C developers) two features currently missing from Kate, but requested by the users of Kate. Autotransplantation is also efficient: the total runtime across 15 monolingual transplants is 5 hours and a half; the total runtime across 10 multilingual transplants is 33 hours

    Electronic text processing in the large South African life assurance companies

    Get PDF
    Includes bibliographical references.The use of computer technology and magnetic storage media for production typing led to a new term "word processing". In this research word processing is considered to be part only of a more comprehensive concept - electronic text processing. This research project is directed towards the role of electronic text processing as an integral part of information management and integrated administrative support in the large South African life assurance companies. As far as could be determined this is the first comprehensive research done on electronic text processing against a business administration background at university level

    View-based textual modelling

    Get PDF
    This work introduces the FURCAS approach, a framework for view-based textual modelling. FURCAS includes means that allow software language engineers to define partial and overlapping textual modelling languages. Furthermore, FURCAS provides an incremental update approach that enables modellers to work with multiple views on the same underlying model. The approach is validated against a set of formal requirements, as well as several industrial case studies showing its practical applicability

    A formal framework for model management

    Full text link
    El Desarrollo de Software Dirigido por Modelos es una rama de la Ingeniería del Software en la que los artefactos software se representan como modelos para incrementar la productividad, calidady eficiencia económica en el proceso de desarrollo de software, donde un modelo proporciona una representación abstracta del código final de una aplicación. En este campo, la iniciativa Model-Driven Architecture (MDA), patrocinada por la OMG, está constituida por una familia de estándares industriales, entre los que se destacan: Meta-Object Facility (MOF), Unified Modeling Language (UML), Object Constraint Language (OCL), XML Metadata Interchange (XMI), y Query/Views/Transformations (QVT). Estos estándares proporcionan unas directrices comunes para herramientas basadas en modelos y para procesos de desarrollo de software dirigidos por modelos. Su objetivo consiste en mejorar la interoperabilidad entre marcos de trabajo ejecutables, en automatizar el proceso desarrollo de software de software y en proporcionar técnicas que eviten errores durante ese proceso. El estándar MOF describe un marco de trabajo genérico que permite definir la sintaxis abstracta de lenguajes de modelado. Este estándar persigue la definición de los conceptos básicos que son utilizados en procesos de desarrollo de software dirigidos por modelos: que es un modelo, que es un metamodelo, qué es reflexión en un marco de trabajo basado en MOF, etc. Sin embargo, la mayoría de estos conceptos carecen de una semántica formal en la versión actual del estándar MOF. Además, OCL se utiliza como un lenguage de definición de restricciones que permite añadir semántica a un metamodelo MOF. Desafortunadamente, la relación entre un metamodelo y sus restricciones OCL también carece de una semántica formal. Este hecho es debido, en parte, a que los metamodelos solo pueden ser definidos como dato en un marco de trabajo basado en MOF. El estándar MOF también proporciona las llamadas facilidades de reflexión de MOF (MOF ReflectiBoronat Moll, A. (2007). A formal framework for model management [Tesis doctoral no publicada]. Universitat Politècnica de València. https://doi.org/10.4995/Thesis/10251/1964Palanci
    corecore