1,721,001 research outputs found
A modeling assistant to manage technical debt in coupled evolution
Context: Model-Driven Engineering helps formalize problem domains by using metamodels. Modeling ecosystems consisting of purposely designed editors, transformations, and code generators are defined on top of the metamodels. Similar to other software artifacts, metamodels can evolve by possibly compromising the validity of existing artifacts. Coupled evolution provides techniques for restoring artifacts’ validity in response to metamodel evolution. Objective: In this paper, we propose the adoption of deprecation in metamodeling to mitigate the difficulties in performing manual model adaptations in response to metamodel evolutions. Moreover, we aim to measure and resolve the technical debt during the co-evolution, which can be seen as the outcome of procrastinating artifact migrations. Methods: We propose a novel approach and supporting tool to manage the concepts of deprecation and technical debt in metamodeling. Results: We conducted a judgment study using the focus group methodology to assess the proposed approach's usefulness in migrating models affected by breaking non-resolvable changes completely. Conclusions: The proposed approach can identify the technical debt in metamodel evolution. Furthermore, it deals with the coupled evolution problem by assisting the modeler through interactive visualization tools, which highlight and quantify the technical dept of the artifacts under analysis that need to be evolved
Supporting reusable model migration with Edelta
In Model-Driven Engineering, metamodels define the vocabulary of concepts and relations that designers use to define a wide range of artifacts, including models, transformations, and editors. Therefore, whenever a metamodel undergoes modifications, the depending artifacts may no longer be valid, and consistency needs to be repaired through coupled evolution techniques. While several approaches have been proposed over the last decades, they are artifact- and domain-specific and do not facilitate the reuse of migration strategies. Indeed, migration strategies are often hard-coded for a given project in a specific domain. In this paper, we propose the novel concept of migration patterns to leverage reuse across different domains and projects. The approach extends the existing Edelta framework and has been evaluated by considering several case studies identified in a systematic literature review
Towards Adaptable and Evolving Service Choreography in the Future Internet
The Future Internet is becoming a reality, providing a large-scale computing environments where a virtually infinite number of available services can be discovered and composed so to fit users' needs. In order to enable this large-scale and evolvable computing environment, the ability to automatically compose and dynamically coordinate heterogeneous software services is of paramount importance. Service choreographies are an emergent Service Engineering (SE) approach to compose together and coordinate services in a distributed way. They represent a global specification of the interactions between the participant services. Choreographies will play a central role in Future Internet as an effective means to allow heterogeneous services to suitably collaborate. This new ideas paper briefly describes the experience of choreography development that we have been doing so far within the CHOReOS project, and proposes the novel idea we are currently investigating within the IDEAS project to achieve choreography adaptation and evolution through complex data mappings
Synthesizing an Automata-based Representation of BPMN2 Choreography Diagrams
Choreographies are an emergent Service Engineering approach
to compose together and coordinate distributed services. They
represent a global specication of the interactions between the participant
services. BPMN2 provides a dedicated notation, called Choreography
Diagrams, to dene choreographies. This paper presents a model
transformation to automatically transform a BPMN2 choreography speci
cation into an automata-based representation called Choreography
LTS (CLTS). The latter is a LTS suitably extended to, on one side
model the complex interactions that can be specied by choreography diagrams,
on the other provide modelers with a means to precisely extract
the not-easy-to-grasp coordination logic \hidden" into BPMN2 Choreography
Diagrams. Dedicated Eclipse plugins, within the CHOReOSynt
tool, have been developed to support the presented transformation
On the Automated Synthesis of Enterprise Integration Patterns to Adapt Choreography-based Distributed Systems
The Future Internet is becoming a reality, providing a large-scale computing environments where a virtually infinite number of available services can be composed so to fit users' needs. Modern service-oriented applications will be more and more often built by reusing and assembling distributed services. A key enabler for this vision is then the ability to automatically compose and dynamically coordinate software services. Service choreographies are an emergent Service Engineering (SE) approach to compose together and coordinate services in a distributed way. When mismatching third-party services are to be composed, obtaining the distributed coordination and adaptation logic required to suitably realize a choreography is a non-trivial and error prone task. Automatic support is then needed. In this direction, this paper leverages previous work on the automatic synthesis of choreography-based systems, and describes our preliminary steps towards exploiting Enterprise Integration Patterns to deal with a form of choreography adaptation
EnseSmells : Deep ensemble and programming language models for automated code smells detection
A smell in software source code denotes an indication of suboptimal design and implementation decisions, potentially hindering the code understanding and, in turn, raising the likelihood of being prone to changes and faults. Identifying these code issues at an early stage in the software development process can mitigate these problems and enhance the overall quality of the software. Current research primarily focuses on the utilization of deep learning-based models to investigate the contextual information concealed within source code instructions to detect code smells, with limited attention given to the importance of structural and design-related features. This paper proposes a novel approach to code smell detection, constructing a deep learning architecture that places importance on the fusion of structural features and statistical semantics derived from pre-trained models for programming languages. We further provide a thorough analysis of how different source code embedding models affect the detection performance with respect to different code smell types. Using four widely-used code smells from well-designed datasets, our empirical study shows that incorporating design-related features significantly improves detection accuracy, outperforming state-of-the-art methods on the MLCQ dataset with improvements ranging from 5.98% to 28.26%, depending on the type of code smell
Dependable Composition of Software and Services in the Internet of Things: A Biological Approach
Binary and multi-class classification of Self-Admitted Technical Debt: How far can we go?
Context: Aiming for a trade-off between short-term efficiency and long-term stability, software teams resort to sub-optimal solutions, neglecting the best software development practices. Such solutions may induce technical debt (TD), triggering maintenance issues. To facilitate future fixing, developers mark code with any issues using textual comments, resulting in Self-Admitted Technical Debt (SATD). Detecting SATD in source code is crucial since it helps programmers locate potentially erroneous snippets, allowing for suitable interventions, and improving code quality. There are two main types of SATD detection, i.e., binary classification and multi-class classification, grouping TD comments into SATD/Non-SATD categories, and multiple categories, respectively. Objective: We attempt to understand to which extent state-of-the-art research has addressed the issue of detecting SATD, both binary and multi-class classification. Based on this investigation, we also propose a practical approach for the detection of SATD using Large Language Models (LLMs). Methods: First, we conducted a literature review to understand to which extent the two types of classification have been tackled by existing research. Second, we developed SALA, a dual-purpose tool on top of Natural Language Processing (NLP) techniques and neural networks to deal with both types of classification. An empirical evaluation has been performed to compare SALA with state-of-the-art baselines. Results: The literature review reveals that while binary classification has been well studied, multi-class classification has not received adequate attention. The empirical evaluation shows that SALA obtains a promising performance, and outperforms the baselines with respect to various quality metrics. Conclusion: We conclude that more effort needs to be spent to tackle multi-class classification of SATD. To this end, LLMs hold the potential, albeit with more rigorous investigation on possible fine-tuning and prompt engineering strategies
- …
