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
  • Role

    Area Manager
  • Since

    01st December 2018
005
Publications

2026

Infragenie: Living Software Architecture Diagrams From Docker Compose Files

Authors
Ferreira, R; Correia, FF; Queiroz, PGG;

Publication
SOFTWARE ARCHITECTURE. ECSA 2025 TRACKS AND WORKSHOPS

Abstract
Software architecture is reflected across multiple artifacts, making it difficult to communicate without proper documentation, which often becomes outdated or unreliable. We propose an approach to support Living Documentation by generating architectural diagrams from Docker Compose files. We implement our approach as a prototype tool that we name Infragenie and conduct an empirical study to show the viability of the approach. The study involved sending questionnaires to maintainers of 378 GitHub repositories. We received 36 responses. Infragenie-generated diagrams were rated as better or much better for most of the 12 projects with previous diagrams. Over 70% of the respondents agreed that our approach improved documentation completeness, consistency, and accessibility, and more than 90% recognized its effectiveness in capturing key architectural elements. We conclude that by using Docker Compose files we were able to provide useful architectural diagrams.

2026

Refactoring Towards Microservices: Preparing the Ground for Service Extraction

Authors
Peixoto, R; Correia, FF; Rosa, T; Guerra, E; Goldman, A;

Publication
PATTERN LANGUAGES OF PROGRAMS, PEOPLE AND PRACTICES, EUROPLOP 2025, PT I

Abstract
As organizations increasingly transition from monolithic systems to microservices, they aim to achieve higher availability, automatic scaling, simplified infrastructure management, enhanced collaboration, and streamlined deployments. However, this migration process remains largely manual and labour-intensive. While existing literature offers various strategies for decomposing monoliths, these approaches primarily focus on architecture-level guidance, often overlooking the code-level challenges and dependencies that developers must address during the migration. This article introduces a catalogue of seven refactorings specifically designed to support the transition to a microservices architecture with a focus on handling dependencies. The catalogue provides developers with a systematic guide that consolidates refactorings identified in the literature and addresses the critical gap in systematizing the process at the code level. By offering a structured, step-by-step approach, this work simplifies the migration process and lays the groundwork for its potential automation, empowering developers to implement these changes efficiently and effectively.

2026

Can an LLM Detect Instances of Microservice Infrastructure Patterns?

Authors
Duarte, CE; Harrison, NB; Correia, FF; Aguiar, A; Gonçalves, P;

Publication
CoRR

Abstract

2025

A Pattern Language for Engineering Software for the Cloud

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

Publication
Trans. Pattern Lang. Program.

Abstract
Software businesses are continuously increasing their presence in the cloud. While cloud computing is not a new research topic, designing software for the cloud is still challenging, requiring engineers to invest in research to become proficient at working with it. Design patterns can be used to facilitate cloud adoption, as they provide valuable design knowledge and implementation guidelines for recurrent engineering problems. This work introduces a pattern language for designing software for the cloud. We believe developers can significantly reduce their R&D time by adopting these patterns to bootstrap their cloud architecture. The language comprises 10 patterns, organized into four categories: Automated Infrastructure Management, Orchestration and Supervision, Monitoring, and Discovery and Communication.

2025

Multilanguage Detection of Design Pattern Instances

Authors
Andrade, H; Bispo, J; Correia, FF;

Publication
JOURNAL OF SOFTWARE-EVOLUTION AND PROCESS

Abstract
Code comprehension is often supported by source code analysis tools that provide more abstract views over software systems, such as those detecting design patterns. These tools encompass analysis of source code and ensuing extraction of relevant information. However, the analysis of the source code is often specific to the target programming language. We propose DP-LARA, a multilanguage pattern detection tool that uses the multilanguage capability of the LARA framework to support finding pattern instances in a code base. LARA provides a virtual AST, which is common to multiple OOP programming languages, and DP-LARA then performs code analysis of detecting pattern instances on this abstract representation. We evaluate the detection performance and consistency of DP-LARA with a few software projects. Results show that a multilanguage approach does not compromise detection performance, and DP-LARA is consistent across the languages we tested it for (i.e., Java and C/C++). Moreover, by providing a virtual AST as the abstract representation, we believe to have decreased the effort of extending the tool to new programming languages and maintaining existing ones.