1,458 research outputs found

    Introducing Simulation and Model Animation in the MDE Topcased Toolkit

    Get PDF
    International audienceThe Topcased project aims at developing a modular and generic CASE environment for model driven development of safety critical systems. Model validation is a key feature in this project and model simulation is a major way for validation. The purpose of this paper is to present the current Topcased process for building model simulators and animators. After introducing the functional requirements for model simulation and animation, it is explained how simulation is currently being integrated in the Topcased environment, presenting the main components of a simulator: a model animator, a scenario builder and a simulation engine. The approach is illustrated by the presentation of the first simulation experiment conducted in the project: the UML 2 StateMachines case study

    Semantics and Execution of Domain Specific Models

    Get PDF
    In this paper we present a two-level approach to extend the abstract syntax of models with concrete semantics. First, a light-weight execution interface for iteratable models with a generic user interface allows the tool smith to provide arbitrary execution and visualization engine implementations for his or her Domain Specific Modeling Language (DSML). We discuss how the common execution manager runtime allows co-simulations of different model types and engine implementations to provide a flexible framework in the diverse DSML scenery. Second, as a concrete but nevertheless generic implementation of a simulation engine for behavior models, we present semantic model specifications and a runtime interfacing to the Ptolemy II tool suite. As a project in the area of model simulation, the latter provides a mature sophisticated and formally grounded backbone for model execution. We present our approach as an open source Eclipse integration to be an extension to the Eclipse modeling projects. After introducing basic concepts, the paper explains how simulations are currently being integrated into the framework and presents some illustrative case studies also covering UML approaches

    A Design Pattern for Executable DSML

    Get PDF
    Model executability is now a key concern in model-driven engineering, mainly to support early validation and verification (V&V). Some approaches have allowed to weave executability into metamodels, defining executable domain-specific modeling languages (DSML). Then, model validation may be achieved by direct interpretation of the conforming models. Other approaches address model executability by model compilation, allowing to reuse the virtual machines or V&V tools existing in the target domain. Nevertheless, systematic methods are not available to help the language designer in the definition of such an execution semantics and related support tools. For instance, simulators are mostly hand-crafted in a tool specific manner for each DSML. In this paper, we propose to reify the elements commonly used to support execution in a DSML. We infer a design pattern (called Executable DSML pattern) providing a general reusable solution for the expression of the executability concerns in DSML. It favors flexibility and improves reusability in the definition of semantics-based tools for DSML. We illustrate how this pattern can be applied to V&V and models at runtime, and give insights on the development of generic and generative tools for model animators

    Adding Rule-Based Model Transformation to Modelling Languages in MetaEdit+

    Get PDF
    MetaEdit+ is a commercial tool by MetaCase for creating domain-specific, syntax-directed visual modelling environments. MetaEdit+ synthesizes such environments from user-provided metamodels and contains a Generator Editor for code/report generation. An API is provided to allow external manipulation of models through SOAP. Currently, the MetaEdit+ tool does not natively support rule-based model-to-model transformation. Such transformations are useful as they allow domain experts to intuitively (using domain-specific notations) model either operational semantics (a simulator) or denotational semantics (through model-to-model transformation onto a model in a known formalism) of a modelling language. We will demonstrate how to add rule-based operational semantics to modelling languages in MetaEdit+. In our approach, transformation rules are visually created in MetaEdit+. The rule editor is synthesized using modified versions of the original language's metamodel. This modification is performed in a structured fashion using a process called RAMification. Both the model and the rules are exported from MetaEdit+ to Python code. This code is combined with Py-T-Core, our library of transformation language primitives, to apply the rules on the model. Our demonstration has a client-server architecture, with the MetaEdit+ visual modelling environment as the client and the transformation engine as the server. After each transformation step, in-place changes to the model are propagated to MetaEdit+ for visualization using the SOAP API. A simple (manufacturing) Production System modelling language is used as an example

    The Future of Modeling in Material Handling Systems

    Get PDF
    Today, when we talk about “modeling” in the context of material handling systems, invariably we are referring to a mathematical or computational model for analyzing some aspect of the system, such as its throughput rate, response time, cost of ownership, required storage capacity, etc. Creating these kinds of models requires considerable knowledge in at least two domains the material handling system domain, and the analysis methodology domain—and considerable skill in the “art of modeling” in order to express the former in the terms of the latter. The results can be somewhat ad hoc—e.g., two different modelers are likely to create two somewhat different simulation models of exactly the same material handling system. In the past, the situation in software development was very similar, with individual programming experts idiosyncratically driving software development. Over the past twenty years, however, computer scientists and software engineers have created a radically different approach to the process of software “modeling” called Model Driven Architecture, or MDA, that is used to create software for standard applications. The thesis of this paper is that MDA can be adapted to the kind of modeling done to support design and operational decision making in material handling systems. The paper describes MDA technologies in the context of material handling system modeling, and explains how adapting this approach to our context will transform the way we do research and the way material handling systems are analyzed and designed in practice

    Code Generation with the Model Transformation of Visual Behavior Models

    Get PDF
    There exist numerous techniques to define the abstract and the concrete syntax of metamodeled languages. However, only a few solutions are available to describe the dynamic behavior (animation) of visual languages. The aim of our research is to provide visual modeling techniques to define the dynamic behavior of the languages. Previously, we have created languages to describe animation. In this paper, we describe how these models can be processed by model transformation techniques. We elaborate the main steps of the transformation and show the details as well. We use graph rewriting-based model transformation, therefore we provide a highly generic solution which can be easily modified, and analyzed with the techniques borrowed from the field of graph rewriting. The termination analysis for the presented method is also provided

    A heuristic-based approach to code-smell detection

    Get PDF
    Encapsulation and data hiding are central tenets of the object oriented paradigm. Deciding what data and behaviour to form into a class and where to draw the line between its public and private details can make the difference between a class that is an understandable, flexible and reusable abstraction and one which is not. This decision is a difficult one and may easily result in poor encapsulation which can then have serious implications for a number of system qualities. It is often hard to identify such encapsulation problems within large software systems until they cause a maintenance problem (which is usually too late) and attempting to perform such analysis manually can also be tedious and error prone. Two of the common encapsulation problems that can arise as a consequence of this decomposition process are data classes and god classes. Typically, these two problems occur together – data classes are lacking in functionality that has typically been sucked into an over-complicated and domineering god class. This paper describes the architecture of a tool which automatically detects data and god classes that has been developed as a plug-in for the Eclipse IDE. The technique has been evaluated in a controlled study on two large open source systems which compare the tool results to similar work by Marinescu, who employs a metrics-based approach to detecting such features. The study provides some valuable insights into the strengths and weaknesses of the two approache
    • …
    corecore