André Restivo

André Restivo
Verified
André verified their affiliation via an institutional email.
Verified
André verified their affiliation via an institutional email.
  • PhD
  • Professor (Associate) at University of Porto

About

53
Publications
8,814
Reads
How we measure 'reads'
A 'read' is counted each time someone views a publication summary (such as the title, abstract, and list of authors), clicks on a figure, or views or downloads the full-text. Learn more
359
Citations
Introduction
I'm an Associate Professor at FEUP/DEI and a Research Fellow at LIACC. I hold a Ph.D. in Informatics Engineering from FEUP, and my research focuses on software engineering, IoT, automated program repair, software testing, and machine learning. I've been involved in various research projects, published in conferences and journals, and supervised M.Sc. and Ph.D. students. I also contribute to the development of informatics and computing engineering programs at FEUP.
Current institution
University of Porto
Current position
  • Professor (Associate)

Publications

Publications (53)
Preprint
Full-text available
Generative modeling for tabular data has recently gained significant attention in the Deep Learning domain. Its objective is to estimate the underlying distribution of the data. However, estimating the underlying distribution of tabular data has its unique challenges. Specifically, this data modality is composed of mixed types of features, making i...
Preprint
Full-text available
The increasing use of deep learning across various domains highlights the importance of understanding the decision-making processes of these black-box models. Recent research focusing on the decision boundaries of deep classifiers, relies on generated synthetic instances in areas of low confidence, uncovering samples that challenge both models and...
Article
Full-text available
Solar wind forecasting is a core component of Space Weather, a field that has been the target of many novel machine-learning approaches. The continuous monitoring of the Sun has provided an ever-growing ensemble of observations, facilitating the development of forecasting models that predict solar wind properties on Earth and other celestial object...
Conference Paper
Full-text available
Space weather refers to the dynamic conditions in the solar system, particularly the interactions between the solar wind — a stream of charged particles emitted by the Sun — and the Earth’s magnetic field and atmosphere. Accurate space weather forecasting is crucial for mitigating potential impacts on satellite operations, communication systems, po...
Preprint
Full-text available
Complex software can be hard to read, adapt, and maintain. Refactoring it can create cleaner and self-explanatory code. Refactoring tools try to guide developers towards better code, with more quality. However, most of them take too long to provide feedback, support, and guidance on how developers should improve their software. To reduce this probl...
Chapter
Concerns with the interpretability of ML models are growing as the technology is used in increasingly sensitive domains (e.g., health and public administration). Synthetic data can be used to understand models better, for instance, if the examples are generated close to the frontier between classes. However, data augmentation techniques, such as Ge...
Conference Paper
The widespread use of Internet-of-Things (IoT) across different application domains leads to an increased concern regarding their dependability, especially as the number of potentially mission-critical systems becomes considerable. Fault-tolerance has been used to reduce the impact of faults in systems, and their adoption in IoT is becoming a neces...
Article
The current complexity of IoT systems and devices is a barrier to reach a healthy ecosystem, mainly due to technological fragmentation and inherent heterogeneity. Meanwhile, the field has scarcely adopted any engineering practices currently employed in other types of large-scale systems. Although many researchers and practitioners are aware of the...
Preprint
The widespread use of Internet-of-Things (IoT) across different application domains leads to an increased concern regarding their dependability, especially as the number of potentially mission-critical systems becomes considerable. Fault-tolerance has been used to reduce the impact of faults in systems, and their adoption in IoT is becoming a neces...
Chapter
Internet-of-Things (IoT) systems are considered one of the most notable examples of complex, large-scale systems. Some authors have proposed visual programming (VP) approaches to address part of their inherent complexity. However, in most of these approaches, the orchestration of devices and system components is still dependent on a centralized uni...
Chapter
The Internet-of-Things (IoT) has transformed everyday manual tasks into digital and automatable ones, giving way to the birth of several end-user development solutions that attempt to ease the task of configuring and automating IoT systems without requiring prior technical knowledge. While some studies reflect on the automation rules that end-users...
Preprint
Internet-of-Things (IoT) systems have spread among different application domains, from home automation to industrial manufacturing processes. The rushed development by competing vendors to meet the market demand of IoT solutions, the lack of interoperability standards, and the overall lack of a defined set of best practices have resulted in a highl...
Conference Paper
With the increasing complexity of software systems, software developers would benefit from instant and continuous guidance about the system they are maintaining and evolving. Despite existing several solutions providing feedback and suggesting improvements, many tools require explicit invocation, leading to developers missing improvement opportunit...
Article
Full-text available
Automatic test case generation is usually based on models of the software under test. However, those models may not exist or may be outdated and so, the test case generation must resort to other artifacts. In a software maintenance context, test cases must adapt to software changes and should be improved continuously to test adequately the new vers...
Conference Paper
A number of approaches have been proposed to identify service boundaries when decomposing a monolith to microservices. However, only a few use systematic methods and have been demonstrated with replicable empirical studies. We describe a systematic approach for refactoring systems to microservice architectures that uses static analysis to determine...
Preprint
Full-text available
A number of approaches have been proposed to identify service boundaries when decomposing a monolith to microservices. However, only a few use systematic methods and have been demonstrated with replicable empirical studies. We describe a systematic approach for refactoring systems to microservice architectures that uses static analysis to determine...
Conference Paper
Internet-of-Things systems are assemblies of highly-distributed and heterogeneous parts that, in orchestration, work to provide valuable services to end-users in many scenarios. These systems depend on the correct operation of sensors, actuators, and third-party services, and the failure of a single one can hinder the proper functioning of the whol...
Chapter
Internet-of-Things systems are comprised of highly heterogeneous architectures, where different protocols, application stacks, integration services, and orchestration engines co-exist. As they permeate our everyday lives, more of them become safety-critical, increasing the need for making them testable and fault-tolerant, with minimal human interve...
Chapter
Full-text available
Cloud computing has been playing a significant role in the provisioning of services over the Internet since its birth. However, developers still face several challenges limiting its full potential. The difficulties are mostly due to the large, ever-growing, and ever-changing catalog of services offered by cloud providers. As a consequence, develope...
Chapter
Regression testing is of paramount importance to ensure that the quality of software does not suffer when code changes are implemented. However, having a large set of tests is mostly done by hand and is time-consuming. Regression tests are written to test functionality that is already implemented and thus are a prime target for automatic test gener...
Conference Paper
Full-text available
Every year, thousands of new students begin their Masters in STEM-related topics. Despite being regarded as a common occurrence by the faculty, it represents the culmination of years of studying and preparation for their professional life. Notwithstanding, these students face well-known recurrent problems: how to choose a topic, how to choose an ad...
Conference Paper
Full-text available
Trusted open data can be used for auditing, accountability, business development, or as an anti-corruption mechanism. Metadata information can address provenance concerns, and trust issues can somehow be mitigated by digital signatures. Those approaches can trace the data origin, but usually lack information about the transformation process. Creati...
Conference Paper
Live Programming is an idea pioneered by programming environments from the earliest days of computing, such as those for Lisp and Smalltalk. One thing they had in common is liveness: an always accessible evaluation and nearly instantaneous feedback, usually focused on coding activities. In this paper, we argue for Live Software Development (LiveSD)...
Article
Full-text available
The explosion of blockchain projects in last couple of years shows the general interest in the blockchain technology. Looking towards the current state of the art regarding this technology it becomes clear that the main driver of innovation is the private sector. We believe that understanding main applications of the technology, academic contributi...
Conference Paper
Full-text available
The applications of the blockchain technology are still being discovered. When a new potential disruptive technology emerges, there is a tendency to try to solve every problem with that technology. However, it is still necessary to determine what approach is the best for each type of application. To find how distributed ledgers solve existing probl...
Preprint
Full-text available
The applications of the blockchain technology are still being discovered. When a new potential disruptive technology emerges, there is a tendency to try to solve every problem with that technology. However, it is still necessary to determine what approach is the best for each type of application. To find how distributed ledgers solve existing probl...
Conference Paper
Nowadays, web applications play an important role in our society and in the business world. Many companies earn a large part of their revenues through web applications that provide support services that must be maintained and improved over time. Most of these services operate on a large scale and are in constant change due to the environment in whi...
Conference Paper
Full-text available
Breaking down applications into smaller modules is a common way for software developers to cope with the increasing complexity of their projects. A common barrier to this endeavor is the presence of crosscutting concerns that prevent reusability and reduce comprehensibility. The promise of AOP (Aspect-Oriented Programming) is that, by using it, dev...
Article
The exponential growth of mobile usage in developing countries, the tendencies between the usage of Apps and Responsive Websites, the characteristics as well as advantages and disadvantages between the two, urge this study to be conducted. This study aims to compare the effectiveness, the efficiency, and satisfaction (usability) between different m...
Article
Full-text available
This paper presents a case study of an existing web application of inventory management for electronics laboratories, accounting for usability principles and best practices for user interface design. The iLab project efficiently manages the inventory, requests, users (borrowings, purchases, etc.) and associated historic and workflow information. Th...
Conference Paper
Full-text available
As with most disciplines, the best way to learn and understand the relevant theoretical aspects related to industrial automation is by applying them to solve concrete problems. In order to increase the motivation of students a physical model of a manufacturing cell was acquired, which is, however, easily susceptible to being damaged through incorre...
Conference Paper
Full-text available
Aspect Oriented Programming (AOP) is a powerful programming technique with the objective of improving modularity by encapsulating crosscutting concerns. The nature of AOP makes it prone to unexpected and harmful interactions between the different components of a system. The claim behind this PhD is that unit tests can be used to detect these intera...
Article
Full-text available
A large part of the software development effort is typically spent on maintenance and evolution, namely on adding new and unanticipated features. As aspect-oriented program-ming (AOP) can be easily used to compose software in non-planned ways, many researchers are investigating AOP as a technique that can play an important role in this particular f...
Article
Full-text available
Aspect Oriented Programming (AOP) is a programming paradigm that aims at solving the problem of crosscutting concerns being normally scattered throughout several units of an application. Although an important step forward in the search for modularity, by breaking the notion of encapsulation introduced by Object Oriented Programming (OOP), AOP has p...
Article
Full-text available
Aspect Oriented Programming (AOP) deals with what are called cross-cutting concerns. AOP practitioners believe that single ab-straction frameworks (like OOP) are not sufficiently powerful to separate cross-cutting concerns. They also state that the tangling of concerns is one of the major contributors to the complexity of large software appli-catio...
Article
Full-text available
The application of optimization algorithms to parameter driven simulations and agents has been thoroughly explored in literature. However, classical optimization algorithms do not take into account the fact that simulations normally have dynamic scenarios. This paper analyzes the possibility of using the classical optimization methods, combined wit...
Article
Full-text available
The optimization of parameter driven simulations has been the focus of many research papers. Algorithms like Hill Climbing, Tabu-Search and Simulated Annealing have been thoroughly discussed and analyzed. However, these algorithms do not take into account the fact that simulations can have dynamic scenarios. In this dissertation, the possibility of...
Article
Full-text available
A three-dimensional data acquisition system, using a structured-light technique, based on the fast projection of a sequence of patterns on the scene under analysis, is described. This system has multiple applications, namely, in anthropometry. Its first application will be the estimation of woman breast volume, aiming at the sizing of prosthesis an...
Article
Full-text available
Server Administrators often have to analyze server logs to find if something is wrong with their machines. In larger systems these logs can become too large to inspect manually so some tools have been developed to aid the Server Administrator in this task. Most of these tools force the server administrator to define what he is expecting to find in...
Article
Full-text available
This document describes the work plan and state of the art for the PhD work of André Restivo started in 2006. Acceptance of this document by a steering committee is mandatory for the final registration in the Doctoral Programme in Informatics Engineering (ProDEI) at the Engineering Faculty of University of Porto.

Network

Cited By