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.

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.

2025

Multilanguage Detection of Design Pattern Instances

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

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

2025

Can ChatGPT Suggest Patterns? An Exploratory Study About Answers Given by AI-Assisted Tools to Design Problems

Autores
Maranhao, JJ Jr; Correia, FF; Guerra, EM;

Publicação
AGILE PROCESSES IN SOFTWARE ENGINEERING AND EXTREME PROGRAMMING-WORKSHOPS, XP 2024 WORKSHOPS

Abstract
General-purpose AI-assisted tools, such as ChatGPT, have recently gained much attention from the media and the general public. That raised questions about in which tasks we can apply such a tool. A good code design is essential for agile software development to keep it ready for change. In this context, identifying which design pattern can be appropriate for a given scenario can be considered an advanced skill that requires a high degree of abstraction and a good knowledge of object orientation. This paper aims to perform an exploratory study investigating the effectiveness of an AI-assisted tool in assisting developers in choosing a design pattern to solve design scenarios. To reach this goal, we gathered 56 existing questions used by teachers and public tenders that provide a concrete context and ask which design pattern would be suitable. We submitted these questions to ChatGPT and analyzed the answers. We found that 93% of the questions were answered correctly with a good level of detail, demonstrating the potential of such a tool as a valuable resource to help developers to apply design patterns and make design decisions.

2024

Towards Living Software Architecture Diagrams

Autores
Correia, FF; Ferreira, R; Queiroz, PGG; Nunes, H; Barra, M; Figueiredo, D;

Publicação
CoRR

Abstract