Cookies Policy
The website need some cookies and similar means to function. If you permit us, we will use those means to collect data on your visits for aggregated statistics to improve our service. Find out More
Accept Reject
  • Menu
About

About

Currently professor at FEUP and researcher at INESC TEC, formerly software architect, coach, and developer. His research interests focus in software engineering topics, namely on Software Architecture, Design Patterns, Cloud Computing, Continuous Delivery, Agility and Live Software Development. He is especially interested in microservice-based architectures and the highly maintainable and flexible systems that they allow to create.

Interest
Topics
Details

Details

  • Name

    Filipe Figueiredo Correia
  • Cluster

    Computer Science
  • Role

    Area Manager
  • Since

    01st December 2018
001
Publications

2023

CharM — Evaluating a model for characterizing service-based architectures

Authors
Rosa, TDO; Guerra, EM; Correia, FF; Goldman, A;

Publication
Journal of Systems and Software

Abstract
Service-based architecture is an approach that emerged to overcome software development challenges such as difficulty to scale, low productivity, and strong dependence between elements. Microservice, an architectural style that follows this approach, offers advantages such as scalability, agility, resilience, and reuse. This architectural style has been well accepted and used in industry and has been the target of several academic studies. However, analyzing the state-of-the-art and -practice, we can notice a fuzzy limit when trying to classify and characterize the architecture of service-based systems. Furthermore, it is possible to realize that it is difficult to analyze the trade-offs to make decisions regarding the design and evolution of this kind of system. Some concrete examples of these decisions are related to how big the services should be, how they communicate, and how the data should be divided/shared. Based on this context, we developed the CharM, a model for characterizing the architecture of service-based systems that adopts microservices guidelines. To achieve this goal, we followed the guidelines of the Design Science Research in five iterations, composed of an ad-hoc literature review, discussions with experts, two case studies, and a survey. As a contribution, the CharM is an easily understandable model that helps professionals with different profiles to understand, document, and maintain the architecture of service-based systems. © 2023 Elsevier Inc.

2023

Foundational DevOps Patterns

Authors
Marques, P; Correia, FF;

Publication
CoRR

Abstract

2022

A Survey on the Adoption of Patterns for Engineering Software for the Cloud

Authors
Sousa, TB; Ferreira, HS; Correia, FF;

Publication
IEEE TRANSACTIONS ON SOFTWARE ENGINEERING

Abstract
This work takes as a starting point a collection of patterns for engineering software for the cloud and tries to find how they are regarded and adopted by professionals. Existing literature assesses the adoption of cloud computing with a focus on business and technological aspects and falls short in grasping a holistic view of the underlying approaches. Other authors delve into how independent patterns can be discovered (mined) and verified, but do not provide insights on their adoption. We investigate (1) the relevance of the patterns for professional software developers, (2) the extent to which product and company characteristics influence their adoption, and (3) how adopting some patterns might correlate with the likelihood of adopting others. For this purpose, we survey practitioners using an online questionnaire (n = 102). Among other findings, we conclude that most companies use these patterns, with the overwhelming majority (97 percent) using at least one. We observe that the mean pattern adoption tends to increase as companies mature, namely when varying the product operation complexity, active monthly users, and company size. Finally, we search for correlations in the adoption of specific patterns and attempt to infer causation, providing further clues on how some practices depend or influence the adoption of others. We conclude that the adoption of some practices correlates with specific company and product characteristics, and find relationships between the patterns that were not covered by the original pattern language and which might deserve further investigation.

2022

Developing Docker and Docker-Compose Specifications: A Developers' Survey

Authors
Reis, D; Piedade, B; Correia, FF; Dias, JP; Aguiar, A;

Publication
IEEE ACCESS

Abstract
Cloud computing and Infrastructure-as-Code (IaC), supported by technologies such as Docker, have shaped how many software systems are built and deployed. Previous research has identified typical issues for some types of IaC specification but not why they come to be, or they have delved into collaboration aspects but not into technical ones. This work aims to characterize the activities around two particular kinds of IaC specification-Dockerfiles and docker-compose.yml files. We seek to know how they can be better supported and therefore study also what approaches and tools practitioners employ. We used an online questionnaire to gather data. The first part of the study reached 68 graduate students from a study program on informatics engineering, and the second one 120 professional software developers. The results show that most of the activities of the process of developing a Dockerfile are perceived as time-consuming, especially when the respondents are beginners with this technology. We also found that solving issues using trial-and-error approaches is very common and that many developers do not use ancillary tools to support the development of Dockerfiles and docker-compose.yml files.

2022

Summary of the artifact accompanying the article "Designing Microservice Systems Using Patterns: An Empirical Study on Quality Trade-Offs"

Authors
Vale, G; Correia, FF; Guerra, EM; Rosa, TD; Fritzsch, J; Bogner, J;

Publication
2022 IEEE 19TH INTERNATIONAL CONFERENCE ON SOFTWARE ARCHITECTURE COMPANION (ICSA-C 2022)

Abstract
This package provides all published resources used and produced in the context of the research study leading to the article "Designing Microservice Systems Using Patterns: An Empirical Study on Quality Trade-Offs", presented in ICSA 2022's technical track. It includes materials used to conduct the study as well as aggregated and anonymized data produced in its context. Making this package available intends to foster transparency and to support researchers attempting to replicate the study. The package complies with the Research Object Reviewed (ROR) and Open Research Object (ORO) badges, awarded by the Artifact Evaluation Track at ICSA 2022, and is available under Creative Commons Attribution 4.0 International. The package is openly available in Zenodo [1] and the article is available in ICSA 2022's proceedings [2] and as a pre-print [3]. © 2022 IEEE.

Supervised
thesis

2022

Multi-Language Detection of Design Pattern Instances

Author
Hugo Miguel Felgueira de Andrade

Institution
UP-FEUP

2022

Service Mesh Design Patterns

Author
João Tiago Duarte Maia

Institution
UP-FEUP

2022

Trusted Data Transformation with Blockchain Technology in Open Data

Author
Bruno Mário Tavares

Institution
UP-FEUP

2022

Monitoring Design Patterns For Cloud Applications

Author
Carlos Jorge Direito Albuquerque

Institution
UP-FEUP

2022

Adoption of DevOps Patterns at UPDigital

Author
Paulo Daniel da Silva Araújo Marques

Institution
UP-FEUP