Cookies
O website necessita de alguns cookies e outros recursos semelhantes para funcionar. Caso o permita, o INESC TEC irá utilizar cookies para recolher dados sobre as suas visitas, contribuindo, assim, para estatísticas agregadas que permitem melhorar o nosso serviço. Ver mais
Aceitar Rejeitar
  • Menu
Publicações

Publicações por Jácome Costa Cunha

2012

Bidirectional transformation of model-driven spreadsheets

Autores
Cunha, J; Fernandes, JP; Mendes, J; Pacheco, H; Saraiva, J;

Publicação
Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics)

Abstract
Spreadsheets play an important role in software organizations. Indeed, in large software organizations, spreadsheets are not only used to define sheets containing data and formulas, but also to collect information from different systems, to adapt data coming from one system to the format required by another, to perform operations to enrich or simplify data, etc. In fact, over time many spreadsheets turn out to be used for storing and processing increasing amounts of data and supporting increasing numbers of users. Unfortunately, spreadsheet systems provide poor support for modularity, abstraction, and transformation, thus, making the maintenance, update and evolution of spreadsheets a very complex and error-prone task. We present techniques for model-driven spreadsheet engineering where we employ bidirectional transformations to maintain spreadsheet models and instances synchronized. In our setting, the business logic of spreadsheets is defined by ClassSheet models to which the spreadsheet data conforms, and spreadsheet users may evolve both the model and the data instances. Our techniques are implemented as part of the MDSheet framework: an extension for a traditional spreadsheet system. © 2012 Springer-Verlag.

2011

Type-Safe Evolution of Spreadsheets

Autores
Cunha, J; Visser, J; Alves, T; Saraiva, J;

Publicação
FUNDAMENTAL APPROACHES TO SOFTWARE ENGINEERING

Abstract
Spreadsheets are notoriously error-prone. To help avoid the introduction of errors when changing spreadsheets, models that capture the structure and interdependencies of spreadsheets at a conceptual level have been proposed. Thus, spreadsheet evolution can be made safe within the confines of a model. As in any other model/instance setting, evolution may not only require changes at the instance level but also at the model level. When model changes are required, the safety of instance evolution can not be guarded by the model alone. We have designed an appropriate representation of spreadsheet models, including the fundamental notions of formulteand references. For these models and their instances, we have designed coupled transformation rules that cover specific spreadsheet evolution steps, such as the insertion of columns in all occurrences of a repeated block of cells. Each model-level transformation rule is coupled with instance level migration rules from the source to the target model and vice versa. These coupled rules can be composed to create compound transformations at the model level inducing compound transformations at the instance level. This approach guarantees safe evolution of spreadsheets even when models change.

2023

A methodology for refactoring ORM-based monolithic web applications into microservices

Autores
Freitas, F; Ferreira, A; Cunha, J;

Publicação
JOURNAL OF COMPUTER LANGUAGES

Abstract
In the last few years we have been seeing a drastic change in the way software is developed. Large-scale software projects are being assembled by a flexible composition of many (small) components possibly written in different programming languages and deployed anywhere in the cloud - the so-called microservices-based applications. The dramatic growth in popularity of microservices-based applications has pushed several companies to apply major refactorings to their software systems. However, this is a challenging task that may take several months or even years. We propose a methodology to automatically evolve monolithic web applications that use object-relational mapping into microservices-based ones. Our methodology receives the source code and a microservices proposal and refactors the original code to create each microservice. Our methodology creates an API for each method call to classes that are in other services. The database entities are also refactored to be included in the corresponding service. The evaluation performed in 120 applications shows that our tool can successfully refactor about 72% of them. The execution of the unit tests in both versions of the applications yield exactly the same results.

2022

Energy Efficiency of Web Browsers in the Android Ecosystem

Autores
Gonçalves, N; Rua, R; Cunha, J; Pereira, R; Saraiva, J;

Publicação
CoRR

Abstract

2021

Green Software Lab: Towards an Engineering Discipline for Green Software

Autores
Abreu, R; Couto, M; Cruz, L; Cunha, J; Fernandes, JP; Pereira, R; Perez, A; Saraiva, J;

Publicação
CoRR

Abstract

2025

A Metamodel for Reengineering CI/CD Pipelines

Autores
Gião, HD; Amaral, V; Engels, G; Flores, A; Pereira, R; Sauer, S; Cunha, J;

Publicação
MODELS

Abstract
In the realm of industrial software development, DevOps has emerged as the preferred approach for handling the highly iterative software production process. DevOps refers to the tight integration of development and operations activities, with Continuous Integration, Continuous Delivery, and Continuous Deployment (CI/CD) being pivotal methodologies for ensuring the iterative delivery of high-quality software. To achieve CI/CD, pipelines of activities are deployed using commercial tools. Due to the dynamic nature of these tools, CI/CD pipelines are often migrated to new versions or even new tools. Since this is mostly a manual process, it is a cumbersome and error-prone activity. To assist software engineers during this process, we propose a novel approach that leverages model-driven engineering (MDE) to support the migration of CI/CD pipelines. Our approach is inspired by the traditional reengineering horseshoe model, which abstracts existing pipeline artifacts into a comprehensive model as an intermediate representation. From these models, we can then generate semantic-equivalent pipelines for any novel CI/CD tool. Thus, our main contribution comprises a metamodel designed to represent the structure of existing CI/CD pipelines and build the foundation for MDE-based migration of CI/CD pipelines. We validated our metamodel by successfully modeling 400 existing pipelines. This evaluation demonstrated a 100% applicability rate when applied to configuration files from technologies that collectively account for over 92% of CI/CD scripts in use. Furthermore, we conducted a detailed case study demonstrating the practical applicability of our approach in real-world migration scenarios. Finally, we demonstrate that our metamodel promotes equivalence between an original pipeline and a new one generated from it in a different technology by showing through test cases that the execution traces of both pipelines are identical. © 2025 IEEE.

  • 15
  • 16