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
Sobre

Sobre

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.

Tópicos
de interesse
Detalhes

Detalhes

  • Nome

    Filipe Figueiredo Correia
  • Cargo

    Responsável de Área
  • Desde

    01 dezembro 2018
006
Publicações

2026

Infragenie: Living Software Architecture Diagrams From Docker Compose Files

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

Publicação
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

Tracing and Metrics Design Patterns for Monitoring Cloud-Native Applications

Autores
Albuquerque, C; Correia, F;

Publicação
Lecture Notes in Computer Science

Abstract
Observability helps ensure the reliability and maintainability of cloud-native applications. As software architectures become increasingly distributed and subject to change, it becomes a greater challenge to diagnose system issues effectively, often having to deal with fragmented observability and more difficult root cause analysis. This paper builds upon our previous work and introduces three design patterns that address key challenges in monitoring cloud-native applications. Distributed Tracing improves visibility into request flows across services, aiding in latency analysis and root cause detection, Application Metrics provides a structured approach to instrumenting applications with meaningful performance indicators, enabling real-time monitoring and anomaly detection, and Infrastructure Metrics focuses on monitoring the environment in which the system is operated, helping teams assess resource utilization, scalability, and operational health. These patterns are derived from industry practices and observability frameworks and aim to offer guidance for software practitioners. © The Author(s), under exclusive license to Springer Nature Switzerland AG 2026.

2026

Patterns for Teaching Agile with Student Projects – Team and Project Setup

Autores
Pinho, D; Pícha, P; Correia, F; Brada, P;

Publicação
Lecture Notes in Computer Science

Abstract
Higher education courses teaching about agile software development (ASD) have increased in commonality as the ideas behind the Agile Manifesto became more commonplace in the industry. However, a lot of the literature on how ASD is applied in the classroom does not provide much actionable advice, focusing on frameworks or even moving beyond the software development area into teaching in an agile way. We, therefore, showcase early work on a pattern language that focuses on teaching ASD practices to university students, which stems from our own experiences as educators in higher education contexts. We present five patterns, specifically focused on team and project setup phase: Capping Team Size, Smaller Project Scope, Business Non-Critical Project, Self-assembling Teams, and Team Chooses Topic as a starting point for developing the overall pattern language. © The Author(s), under exclusive license to Springer Nature Switzerland AG 2026.

2026

Can an LLM Detect Instances of Microservice Infrastructure Patterns?

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

Publicação
CoRR

Abstract

2025

A Pattern Language for Engineering Software for the Cloud

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

Publicação
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.