Davide Taibi

Davide Taibi
Tampere University | UTA · Unit of Computing Sciences

Ph.D

About

179
Publications
146,825
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
2,987
Citations
Citations since 2017
116 Research Items
2636 Citations
20172018201920202021202220230200400600
20172018201920202021202220230200400600
20172018201920202021202220230200400600
20172018201920202021202220230200400600
Additional affiliations
March 2020 - present
Tampere University
Position
  • Professor (Associate)
January 2018 - February 2020
Tampere University
Position
  • Professor (Assistant)
January 2015 - December 2017
Free University of Bozen-Bolzano
Position
  • Professor (Assistant)

Publications

Publications (179)
Conference Paper
Full-text available
Technical Debt analysis is increasing in popularity as nowadays researchers and industry are adopting various tools for static code analysis to evaluate the quality of their code. Despite this, empirical studies on software projects are expensive because of the time needed to analyze the projects. In addition, the results are difficult to compare a...
Article
Full-text available
Code smells and architectural smells (also called bad smells) are symptoms of poor design that can hinder code understandability and decrease maintainability. Several bad smells have been defined in the literature for both generic architectures and specific architectures. However, cloud-native applications based on microservices can be affected by...
Article
Full-text available
Microservices have been getting more and more popular in recent years, and several companies are migrating monolithic applications to microservices. Microservices allow developers to independently develop and deploy services, and ease the adoption of agile processes. However, many companies are still hesitant to migrate because they consider micros...
Conference Paper
Full-text available
Decomposition is one of the most complex tasks during the migration from monolithic systems to microser-vices, generally performed manually, based on the experience of the software architects. In this work, we propose a 6-step framework to reduce the subjectivity of the decomposition process. The framework provides software architects with a set of...
Conference Paper
Full-text available
Microservices is an architectural style increasing in popularity. However, there is still a lack of understanding how to adopt a microservice-based architectural style. We aim at characterizing different microservice architectural style patterns and the principles that guide their definition. We conducted a systematic mapping study in order to iden...
Conference Paper
Full-text available
Coupling is one of the most frequently mentioned metric in software systems. However, to measure logical coupling between microservices, runtime information is needed or the availability of service-log files to analyze the calls between services is required. This work presents our emerging results, in which we propose a metric to statically calcula...
Article
Full-text available
In the world of microservices, companies must be able to create systems that operate in the most efficient way. To achieve this, anti-patterns must be avoided because of their detriment to the quality of the system. Some of the most troubling anti-patterns are hard to detect because of their appearance at runtime. Effectively removing anti-patterns...
Conference Paper
Full-text available
Technical debt management is a critical activity that is gaining the attention of both practitioners and researchers. Several tools providing automatic support for technical debt management have been introduced over the last years. SonarQube is one of the most widely applied tools to automatically measure technical debt in software systems. SonarQu...
Chapter
Cognitive Cloud has drawn increasing attention from practitioners, academics, and funding agencies and has been adopted progressively. However, the concept remains mired in various definitions with different studies providing contrasting descriptions. Therefore, to understand the concept of cognitive cloud and to provide its definition, in this wor...
Article
Full-text available
As microservices become more popular, more drawbacks become apparent to developers. One issue that many teams face today is the failure to visualize the entire system architecture holistically. Without a full view of the system, the architecture can become convoluted as teams add and subtract from their system without reconciling their changes. One...
Article
Micro-Frontends is an emerging approach aimed at decomposing the frontend into individual and semi-independent micro applications. Micro-Frontends enable teams to develop the full-stack, from the database to the back-end to the frontend part. Teams are independent and can follow the same guardrails and can make technical decisions associated with t...
Conference Paper
Full-text available
Serverless computing is increasing its popularity in the industry. However, practitioners still have issues when using it, also because serverless bad practices, bad smells, and anti-patterns have not been deeply investigated. In this work, we identify the main bad practices experienced by practitioners during the development of serverless-based ap...
Conference Paper
Full-text available
It is well recognized that design patterns improve system development and maintenance in many aspects. While we commonly recognize these patterns in monolithic systems, many patterns emerged for cloud computing, specifically microservices. Unfortunately, while various patterns have been proposed, available quality assessment tools often do not reco...
Conference Paper
Full-text available
Cognitive Cloud has drawn increasing attention from practitioners , academics, and funding agencies and has been adopted progressively. However, the concept remains mired in various definitions with different studies providing contrasting descriptions. Therefore, to understand the concept of cognitive cloud and to provide its definition, in this wo...
Preprint
Full-text available
Microservices bring various benefits to software systems. They also bring decentralization and lose coupling across self-contained system parts. Since these systems likely evolve in a decentralized manner, they need to be monitored to identify when possibly poorly designed extensions deteriorate the overall system quality. For monolith systems, suc...
Preprint
Full-text available
Microservices are supporting digital transformation; however, fundamental tools and system perspectives are missing to better observe, understand, and manage these systems, their properties, and their dependencies. Microservices architecture leans toward decentralization, which yields many advantages to system operation; it, however, brings challen...
Preprint
Full-text available
Microservice system solutions are driving digital transformation; however, fundamental tools and system perspectives are missing to better observe, understand, and manage these systems, their properties, and their dependencies. Microservices architecture leads towards decentralization, which implies many advantages to system operation; it, however,...
Article
Full-text available
Systems with unmaintained embedded open source software (OSS) components are vulnerable to severe risks. This article introduces the OSS Abandonment Risk Assessment model to help companies avoid potentially dire consequences.
Preprint
Full-text available
It is well recognized that design patterns improve system development and maintenance in many aspects. While we commonly recognize these patterns in monolithic systems, many patterns emerged for cloud computing, specifically microservices. Unfortunately, while various patterns have been proposed, available quality assessment tools often do not reco...
Preprint
Full-text available
Microservices fuel cloud-native systems with small service sets developed and deployed independently. The independent nature of this modular architecture also leads to challenges and gaps. The intended system design might deviate far from what is eventually produced and maintained as the architecture tends to degrade over time. This paper challenge...
Conference Paper
Full-text available
Microservices fuel cloud-native systems with small service sets developed and deployed independently. The independent nature of this modular architecture also leads to challenges and gaps. The intended system design might deviate far from what is eventually produced and maintained as the architecture tends to degrade over time. This paper challenge...
Chapter
Full-text available
Commonly, software developers are faced with situations to compromise internal quality to achieve short term goals, e.g. time-to-market. In software engineering, such compromises are described with Technical Debt (TD) concept. TD implies cost of additional rework—usually expressed as effort—and when the code is compromised, it is called code debt....
Conference Paper
Full-text available
With serverless-based applications are increasing their popularity, little is known on testing practices and tools available to test serverless functions. This work aims to identify testing approaches for serverless functions built for the Amazon Web Services cloud platform, and to demonstrate how to implement them to a full-stack application. For...
Conference Paper
Full-text available
DevOps practices are the de facto sandard when developing software. The increased adoption of machine learning (ML) to solve problems urges us to adapt all the current approaches to developing a new standard that can take full benefit from the new solution. In this work we propose a graphical representation for DevOps for ML-based applications, nam...
Article
Full-text available
Accelerate metrics are increasing their popularity in industry. They are composed by four key metrics to evaluate the software delivery performance: average lead time, deployment frequency, mean time to recover, change fail rate. However, their benefit in monitoring the development process performance of microservice-based systems has not been eval...
Article
Full-text available
Context Open Source Software (OSS) is nowadays used and integrated in most of the commercial products. However, the selection of OSS projects for integration is not a simple process, mainly due to a of lack of clear selection models and lack of information from the OSS portals. Objective We investigate the factors and metrics that practitioners cu...
Article
Full-text available
The cloud continuum concept has drawn increasing attention from practitioners, academics, and funding agencies and been adopted progressively. However, the concept remains mired in various definitions with different studies providing contrasting descriptions. Therefore, to understand the concept of cloud continuum and to provide its definition, in...
Conference Paper
Full-text available
Background. Complex software systems produce a large amount of data depicting their internal state and activities. The data can be monitored to make estimations and predictions of the status of the system, helping taking preventative actions in case of impending malfunctions and failures. However, a complex system may reveal thousands of internal m...
Conference Paper
Full-text available
Open-source projects commonly receive new feature requests from different types of users from layperson end users to developers, who actively contribute code to the project. However, the submission of new feature requests and the processes adopted for handling them is not always clear. In this work, we aim at investigating the availability of the c...
Article
Full-text available
There are numerous commercial tools and research prototypes that offer support for measuring technical debt. However, different tools adopt different terms, metrics, and ways to identify and measure technical debt. These tools offer diverse features, and their popularity / community support varies significantly. Therefore, (a) practitioners face di...
Conference Paper
Full-text available
Cloud-native Applications are distributed, elastic and horizontal-scalable systems composed of (micro)services which isolates states in a minimum of stateful components. Hence, an important property is to ensure a low coupling and a high cohesion among the (micro)services composing the cloud-native application.. Loosely coupled and highly cohesive...
Article
Full-text available
Context Re-architecting monolithic systems with Microservices-based architecture is a common trend. Various companies are migrating to Microservices for different reasons. However, making such an important decision like re-architecting an entire system must be based on real facts and not only on gut feelings. Objective The goal of this work is to...
Chapter
Full-text available
The continuous demand for low latency, high reliability, and context-aware content has pushed the existing computational models to their limit. The cloud with its infinite resources can accommodate many of the existing scenarios, however, as new scenarios emerge in the IoT area, the cloud falls short. In this context, the Edge Computing model emerg...
Preprint
Full-text available
Cloud-native Applications are 'distributed, elastic and horizontal-scalable systems composed of (micro)services which isolate states in a minimum of stateful components'. Hence, an important property is to ensure a low coupling and a high cohesion among the (micro)services composing the cloud-native application. Loosely coupled and highly cohesive...
Article
Full-text available
Context Micro-Frontends are increasing in popularity, being adopted by several large companies, such as DAZN, Ikea, Starbucks and may others. Micro-Frontends enable splitting of monolithic frontends into independent and smaller micro applications. However, many companies are still hesitant to adopt Micro-Frontends, due to the lack of knowledge conc...
Conference Paper
Full-text available
Born from a need for a pure "pay-per-use" model and highly scalable platform, the "Serverless" paradigm emerged and has the potential to become a dominant way of building cloud applications. Although it was originally designed for cloud environments, Serverless is finding its position in the Edge Computing landscape, aiming to bring computational r...
Preprint
Full-text available
[Context] Open Source Software (OSS) is nowadays used and integrated in most of the commercial products. However, the selection of OSS projects for integration is not a simple process, mainly due to a of lack of clear selection models and lack of information from the OSS portals. [Objective] We investigated the current factors and measures that pra...
Article
Full-text available
Serverless is getting more and more popular, being adopted from a large number of companies. Serverless computing is a new paradigm that provides a platform to efficiently develop and deploy applications to the market without having to manage any underling infrastructure. However, serverless introduces several new issues that companies need to ta...
Chapter
Full-text available
Artificial Intelligence is getting more and more popular, being adopted in a large number of applications and technology we use on a daily basis. However, a large number of Artificial Intelligence applications are produced by developers without proper training on software quality practices or processes, and in general, lack in-depth knowledge regar...
Article
Full-text available
Background Software companies need to manage and refactor Technical Debt issues. Therefore, it is necessary to understand if and when refactoring of Technical Debt should be prioritized with respect to developing features or fixing bugs. Objective The goal of this study is to investigate the existing body of knowledge in software engineering to un...
Conference Paper
Full-text available
Software developers commonly faced with situations to compromise internal quality ta=hat achieve short term goals, e.g. time-to-market. In software engineering, such compromises are described with Technical Debt (TD) concept. TD implies cost of additional rework-usually expressed as effort-and when the code is compromised, it is called code debt. O...
Conference Paper
Full-text available
The continuous demand for low latency, high reliability, and context-aware content has pushed the existing computational models to their limit. The cloud with its infinite resources can accommodate many of the existing scenarios, however, as new scenarios emerge in the IoT area, the cloud falls short. In this context, the Edge Computing model emerg...
Conference Paper
Full-text available
Anomaly detection has been attracting interest from both the industry and the research community for many years, as the number of published papers and services adopted grew exponentially over the last decade. One of the reasons behind this is the wide adoption of cloud systems from the majority of players in multiple industries, such as online shop...
Conference Paper
Full-text available
Background. Most Mining Software Repositories (MSR) studies cannot obtain causal relations because they are not controlled experiments. The use of cohort studies as defined in epidemiology could help to overcome this shortcoming. Objective. Propose the adoption of cohort studies in MSR research in particular and empirical Software Engineering (SE)...
Conference Paper
Full-text available
Background. Software engineering is one of the engineering fields with the highest inflow of junior engineers. Tools that utilize source code analysis to provide feedback on internal software quality, i.e. Technical Debt (TD), are valuable to junior developers who can learn and improve their coding skills with minimal consultations with senior coll...
Conference Paper
Full-text available
Artificial Intelligence is getting more and more popular, being adopted in a large number of applications and technology we use on a daily basis. However, a large number of Artificial Intelligence applications are produced by developers without proper training on software quality practices or processes, and in general, lack in-depth knowledge regar...
Article
Full-text available
Background Pull requests are a common practice for making contributions and reviewing them in both open-source and industrial contexts. Objective Our goal is to understand whether quality flaws such as code smells, anti-patterns, security vulnerabilities, and coding style violations in a pull request’s code affect the chance of its acceptance when...
Preprint
Full-text available
Background. The migration from monolithic systems to microservices involves deep refactoring of the systems. Therefore, the migration usually has a big economic impact and companies tend to postpone several activities during this process, mainly to speed-up the migration itself, but also because of the need to release new features. Objective. We mo...
Article
Full-text available
Background The migration from a monolithic system to microservices requires a deep refactoring of the system. Therefore, such a migration usually has a big economic impact and companies tend to postpone several activities during this process, mainly to speed up the migration itself, but also because of the demand for releasing new features. Object...
Preprint
Full-text available
[Context] Micro-Frontends are increasing in popularity, being adopted by several large companies, such as DAZN, Ikea, Starbucks and may others. Micro-Frontends enable splitting of monolithic frontends into independent and smaller micro applications. However, many companies are still hesitant to adopt Micro-Frontends, due to the lack of knowledge co...
Article
Context Companies frequently invest effort to remove technical issues believed to impact software qualities, such as removing anti-patterns or coding styles violations. Objective We aim to analyze the diffuseness of SonarQube issues in software systems and to assess their impact on code changes and fault-proneness, considering also their different...
Chapter
Full-text available
Migrating from monolithic systems into microservice is a very complex task. Companies are commonly decomposing the monolithic system manually, analyzing dependencies of the monolith and then assessing different decomposition options. The goal of our work is two-folded: 1) we provide a microservice measurement framework to objectively evaluate and c...