5 research outputs found

    Applying static code analysis for domain-specific languages

    Get PDF
    The use of code quality control platforms for analysing source code is increasingly gaining attention in the developer community. These platforms are prepared to parse and check source code written in a variety of general-purpose programming languages. The emergence of domain-specific languages enables professionals from different areas to develop and describe problem solutions in their disciplines. Thus, source code quality analysis methods and tools can also be applied to software artefacts developed with a domain-specific language. To evaluate the quality of domain-specific language code, every software component required by the quality platform to parse and query the source code must be developed. This becomes a time-consuming and error-prone task, for which this paper describes a model-driven interoperability strategy that bridges the gap between the grammar formats of source code quality parsers and domain-specific text languages. This approach has been tested on the most widespread platforms for designing text-based languages and source code analysis. This interoperability approach has been evaluated on a number of specific contexts in different domain areas

    Comparing Reuse Mechanisms for Model Transformation Languages: Design for an Empirical Study

    Get PDF
    ABSTRACT Reuse mechanisms for model transformation languages help avoid duplication, thereby increasing maintainability and enabling a more systematic overall development process. As the introduction of such reuse mechanisms to model transformation languages is still in its preliminary stages, however, language designers are currently faced with the challenge of choosing from amongst diverse proposed approaches. Although there are a few surveys comparing syntactic and semantic differences, there is still a need for empirical studies on the actual effectiveness of different reuse mechanisms for transformation developers. In this paper, therefore, we present a study design for a controlled experiment to investigate the benefits and drawbacks of two specific reuse mechanisms for model transformation languages: rule refinement and variability-based rules. Both mechanisms are tailored to graph-based model transformation languages, yet represent two contrasting reuse paradigms: modularizing rules by composing them from smaller, shared fragments, versus maintaining a single, integrated representation via variability annotations. We propose to compare these two approaches using comprehension and bug-finding tasks to investigate understandability, and bug-fixing and modification tasks to study changeability

    On the Value of Quality Attributes for Refactoring Model Transformations Using a Multi-Objective Algorithm

    Full text link
    Peer Reviewedhttps://deepblue.lib.umich.edu/bitstream/2027.42/152454/1/QMOOD_for_ATL__Copy_.pd

    Assessing and improving quality of QVTo model transformations

    Get PDF
    We investigate quality improvement in QVT operational mappings (QVTo) model transformations, one of the languages defined in the OMG standard on model-to-model transformations. Two research questions are addressed. First, how can we assess quality of QVTo model transformations? Second, how can we develop higher-quality QVTo transformations? To address the first question, we utilize a bottom–up approach, starting with a broad exploratory study including QVTo expert interviews, a review of existing material, and introspection. We then formalize QVTo transformation quality into a QVTo quality model. The quality model is validated through a survey of a broader group of QVTo developers. We find that although many quality properties recognized as important for QVTo do have counterparts in general purpose languages, a number of them are specific to QVTo or model transformation languages. To address the second research question, we leverage the quality model to identify developer support tooling for QVTo. We then implemented and evaluated one of the tools, namely a code test coverage tool. In designing the tool, code coverage criteria for QVTo model transformations are also identified. The primary contributions of this paper are a QVTo quality model relevant to QVTo practitioners and an open-source code coverage tool already usable by QVTo transformation developers. Secondary contributions are a bottom–up approach to building a quality model, a validation approach leveraging developer perceptions to evaluate quality properties, code test coverage criteria for QVTo, and numerous directions for future research and tooling related to QVTo quality

    Desarrollo de una herramienta de verificación para interoperabilidad de soluciones dirigidas por modelo

    Get PDF
    Tesis (Ingeniero Civil Informático)Este trabajo de título está orientado al desarrollo de una herramienta de verificación automática para interoperabilidad de modelos, específicamente para modelos de análisis y de diseño. Se entiende por interoperabilidad al intercambio de información entre dos o más sistemas que utilizan dicha información para realizar procesos específicos (IEEE, 1991). En el desarrollo dirigido por modelos este intercambio de información se realiza mediante el uso de modelos que son transformados para poder adaptarlos a las propuestas MDD involucradas. Para garantizar que la interoperabilidad en entornos MDD es correcta, se debe asegurar que los modelos son correctamente transformados y que pueden ser reconocidos y utilizados por las distintas tecnologías que participan. Si en el proceso de transformación, algún elemento no puede ser transformado, entonces la información que será intercambiada es incompleta y por lo tanto la interoperabilidad presentará problemas. En resumen, es fundamental tener un mecanismo de verificación para garantizar que la interoperabilidad de las soluciones MDD sea completa. Para desarrollar una solución MDD, es importante contar con lenguajes de modelado adecuados. Estos lenguajes de modelado son definidos en base a ciertas reglas, la cuales están determinadas por su metamodelo. El proceso de transformación de modelos se realiza tomando en cuenta un modelo fuente o de entrada (source model) para generar un modelo objetivo o de salida (target model) y la transformación o reglas de transformación involucran un mapping, el cual se realiza conforme a los meta modelos respectivos. En la Ilustración 2 se muestra un esquema de la transformación entre modelos
    corecore