51 research outputs found

    MSE and FAMIX 3.0: an Interexchange Format and Source Code Model Family

    Get PDF
    Software systems exceeding a certain critical size easily become difficult to maintain and adapt. Requirements change, platforms change and if a system does not evolve properly, its usefulness will decay over time. This document presents MSE a robust, scalable, extensible interexchange format and FAMIX 3.0 a family of metamodels to represent source code

    Meta-environment and executable meta-language using smalltalk: an experience report

    Get PDF
    Object-oriented modelling languages such as EMOF are often used to specify domain specific meta-models. However, these modelling languages lack the ability to describe behavior or operational semantics. Several approaches have used a subset of Java mixed with OCL as executable meta-languages. In this experience report we show how we use Smalltalk as an executable meta-language in the context of the Moose reengineering environment. We present how we implemented EMOF and its behavioral aspects. Over the last decade we validated this approach through incrementally building a meta-described reengineering environment. Such an approach bridges the gap between a code-oriented view and a meta-model driven one. It avoids the creation of yet another language and reuses the infrastructure and run-time of the underlying implementation language. It offers an uniform way of letting developers focus on their tasks while at the same time allowing them to meta-describe their domain model. The advantage of our approach is that developers use the same tools and environment they use for their regular tasks. Still the approach is not Smalltalk specific but can be applied to language offering an introspective API such as Ruby, Python, CLOS, Java and C

    Software Knowledge Representation to Understand Software Systems

    Full text link
    A software development process involves numerous persons, including customers, domain experts, software engineers, managers, evaluators and certifiers. Together, they produce some software that satisfies its requirements and its quality criteria at a certain point in time. This software contains faults and flaws of different levels of severity and at different phases of its production (specification, design, etc.) so maintenance is needed in order to correct it. Perfective and adaptive maintenance is also needed to cope with changes in the environment or with new requirements, e.g. new functionalities. In this work, we introduce the Persistent Knowledge Monitor (PKM), which is being developed within the DECODER H2020 project for handling (i.e. storing, retrieving, merging and checking for consistency) all kinds of knowledge and information related to a software project. The PKM will be part of a platform capable of taking advantage of all the artefacts available in a software ecosystem, not only the source code, but also its version control system, abstract specifications, informal documents or reports, etc. for representing the software knowledge and improving the workflow of software developers.This work has been developed with the financial support of the European Union’s Horizon 2020 research and innovation programme under grant agreement No. 824231 and the Spanish State Research Agency under the project TIN2017-84094-R and co-financed with ERDF.Torres Bosch, MV.; Gil Pascual, M.; Pelechano Ferragud, V. (2019). Software Knowledge Representation to Understand Software Systems. Springer. 137-144. https://doi.org/10.1007/978-3-030-35333-9_10S13714

    ProMeTA: A taxonomy for program metamodels in program reverse engineering

    Get PDF
    ABSTRACT: To support program comprehension, maintenance, and evolution, metamodels are frequently used during program reverse engineering activities to describe and analyze constituents of a program and their relations. Reverse engineering tools often define their own metamodels according to the intended purposes and features. Although each metamodel has its own advantages, its limitations may be addressed by other metamodels. Existing works have evaluated and compared metamodels and tools, but none have considered all the possible characteristics and limitations to provide a comprehensive guideline for classifying, comparing, reusing, and extending program metamodels. To aid practitioners and researchers in classifying, comparing, reusing, and extending program metamodels and their corresponding reverse engineering tools according to the intended goals, we establish a conceptual framework with definitions of program metamodels and related concepts. We confirmed that any reverse engineering activity can be clearly described as a pattern based on the framework from the viewpoint of program metamodels. Then the framework is used to provide a comprehensive taxonomy, named Program Metamodel TAxonomy (ProMeTA), which incorporates newly identified characteristics into those stated in previous works, which were identified via a systematic literature review (SLR) on program metamodels, while keeping the orthogonality of the entire taxonomy. Additionally, we validate the taxonomy in terms of its orthogonality and usefulness through the classification of popular metamodels

    Distributed and Collaborative Software Evolution Analysis with Churrasco

    Get PDF
    AbstractAnalyzing the evolution of large and long-lived software systems is a complex problem that requires extensive tool support due to the amount and complexity of the data that needs to be processed. In this paper, we present Churrasco, a tool to support collaborative software evolution analysis through a web interface. After describing the tool and its architecture, we provide a usage scenario of Churrasco on a large open source software system, and we present two collaboration experiments performed with, respectively, 8 and 4 participants

    Extracting Knowledge from Software Artefacts to Assist Software Project Stakeholders

    Get PDF
    Software development methods should foster the exploitation of artefacts from existing code bases in order to improve software development productivity. These artefacts are commonly stored in repositories from which extracting knowledge is very difficult for several reasons, i.e., the stored data is represented in a wide variety of formats or is not usually linked properly to all the related artefacts. In this work, we address the challenge of extracting knowledge from different artefacts that can be produced within a software project. To this end, we present a Persistent Knowledge Monitor (PKM) for handling several kinds of knowledge and information related to a software project. The PKM bases on the JSON format to structure and store the different artefacts. By using a common representation format, we are able to extract knowledge more easily. Also, we provide a query language for searching and reasoning on the stored data
    • …
    corecore