1,721,097 research outputs found

    User-centered performance engineering of declarative model transformations

    No full text
    The software to be developed is becoming increasingly extensive and complex, which can lead to classic development methods reaching their limits. Model-driven software development (MDSD) is an effort to reduce the ever-increasing complexity of software development by abstraction. In MDSD models describe the system to be developed on an abstract level and replace code as first-class citizens. These models are then automatically enriched with information, updated, or synchronized with other models during the development process. So-called model transformation languages have been developed to define these operations on models conveniently and easily. These domain-specific languages define rules by which models are translated from one formalism to another or to update a given model. Models and model transformations are not only utilized for the development of software but also at runtime. [email protected] are used, for example, to plan the execution steps of an adaptation of a self-adaptive system. To update such models at runtime, transformations are an obvious choice. This makes the performance of the applied transformations an important quality criterion, as a transformation that is too slow leads to delayed reactions or worse hazards. To ensure a desired execution time, it is essential to be able to analyze and improve the performance of transformations. Current work in the area of model transformations hardly or only insufficiently considers these challenges. For example, empirical studies focus on analyzing the effectiveness and efficiency of model-driven development methods, but not on the challenges faced by developers when trying to improve the performance of their transformations. A large body of work looks at the transformation engine that executes a given transformation. There are various approaches to improving performance through parallel, distributed, or incremental transformation execution. These optimizations help to speed up the execution of a transformation, but they also reach their limits if the transformation has been poorly implemented in terms of performance. Software performance engineering (SPE) techniques and support to leverage application performance management (APM) are missing, which help transformation developers analyze, understand, and resolve the causes of performance issues. Furthermore, known SPE and APM techniques from general-purpose languages, like Java or C, cannot easily be adapted to transformations because, e.g., they do not adequately address the influence of the input model on the execution time. Our contributions to support transformation developers are three-fold: 1) We carried out a mixed-methods study to examine the experiences of transformations in terms of performance. Based on our survey with 84 participants, we see that more than half of the participants have already tried to analyze or improve the performance of their transformations. With the help of 14 semi-structured follow-up interviews, we identified the challenges faced by developers and the existing gaps that prevent established SPE and APM techniques from being applied in the context of transformations. 2) We developed a profiling approach that supports model transformation developers to leverage APM by providing different model transformation-specific performance visualizations. To evaluate these visualizations, we performed a case study with 18 participants. The participants had to analyze four different transformations with the help of our visualizations. Almost all of our 18 participants were able to suggest beneficial improvements for the different transformations based on the information provided by our visualizations. 3) Since the application of our profiler is reduced to analyzing the performance of a given model, we propose a prediction approach as further support for transformation developers. This prediction approach enables transformation developers to evaluate whether the execution time of a transformation will still meet his or her expectations for other input models in the future. We have carried out various experiments in which we have examined whether it is possible to predict the execution time of a transformation based on different sets of model characteristics with the help of machine learning approaches. The results of our experiments show that the random forest approach is a suitable machine learning approach that yields a mean absolute percentage error (MAPE) between 1.12% and 34.53% for predicting the execution time of different transformations. As input for the prediction serves a characterization of the input model consisting of the number of model elements, the number of references, the number of attributes, and the average size of string attributes per model element type filtered by their variance using the 85th percentile of the variances of the complete set of model characteristics

    Graph Rewriting and Relabeling with PBPO <sup>+</sup>

    Full text link
    We extend the powerful Pullback-Pushout (PBPO) approach for graph rewriting with strong matching. Our approach, called PBPO +, exerts more control over the embedding of the pattern in the host graph, which is important for a large class of graph rewrite systems. In addition, we show that PBPO + is well-suited for rewriting labeled graphs and certain classes of attributed graphs. For this purpose, we employ a lattice structure on the label set and use order-preserving graph morphisms. We argue that our approach is simpler and more general than related relabeling approaches in the literature.</p

    On the scalability of the GPUexplore explicit-state model checker

    Full text link
    The use of graphics processors (GPUs) is a promising approach to speed up model checking to such an extent that it becomes feasible to instantly verify software systems during development. GPUexplore is an explicit-state model checker that runs all its computations on the GPU. Over the years it has been extended with various techniques, and the possibilities to further improve its performance have been continuously investigated. In this paper, we discuss how the hash table of the tool works, which is at the heart of its functionality. We propose an alteration of the hash table that in isolated experiments seems promising, and analyse its effect when integrated in the tool. Furthermore, we investigate the current scalability of GPUexplore, by experimenting both with input models of varying sizes and running the tool on one of the latest GPUs of NVIDIA

    Patch Graph Rewriting

    Full text link
    The basic principle of graph rewriting is the stepwise replacement of subgraphs inside a host graph. A challenge in such replacement steps is the treatment of the patch graph, consisting of those edges of the host graph that touch the subgraph, but are not part of it. We introduce patch graph rewriting, a visual graph rewriting language with precise formal semantics. The language has rich expressive power in two ways. First, rewrite rules can flexibly constrain the permitted shapes of patches touching matching subgraphs. Second, rules can freely transform patches. We highlight the framework’s distinguishing features by comparing it against existing approaches.</p

    Proceedings Third Workshop on Graphs as Models

    No full text
    Graphs are used as models in many areas of computer science and computer engineering. For example graphs are used to represent syntax, control and data flow, dependency, state spaces, models such as UML and other types of domain-specific models, and social network graphs. In all of these examples, the graph serves as an intuitive yet mathematically precise foundation for many purposes, both in theory building as well as in practical applications. Graph-based models serve as an abstract communication medium and are used to describe various concepts and phenomena. Moreover, once such graph-based models are constructed, they can be analyzed and transformed to verify the correctness of static and dynamic properties, to discover new properties, to deeply study a particular domain of interest or to produce new equivalent and/or optimized versions of graph-based models. The Graphs as Models (GaM) workshop series combines the strengths of two pre-existing workshop series: GT-VMT (Graph Transformation and Visual Modelling Techniques) and GRAPHITE (Graph Inspection and Traversal Engineering), but also solicits research from other related areas, such as social network analysis. GaM offers a platform for exchanging new ideas and results for active researchers in these areas, with a particular aim of boosting inter- and transdisciplinary research exploiting new applications of graphs as models in any area of computational science. This year (2017), the third edition of the GaM workshop was co-located with the European Joint Conferences on Theory and Practice of Software 2017 (ETAPS'17), held in Uppsala, Sweden
    corecore