Relatório de produção acadêmica da Universidade Federal de São Carlos (UFSCar)
Departamento de Computação (DC)

Centro de Ciências Exatas e de Tecnologia (CCET)
Campus São Carlos

Plataforma Lattes / outubro de 2020

Fabiano Cutigi Ferrari

É Bacharel em Informática (2005) e Doutor em Ciências de Computação e Matemática Computacional (2010), ambos pelo Instituto de Ciências Matemáticas e de Computação da Universidade de São Paulo (ICMC/USP). Em seu doutorado, foi orientado pelo Prof. José Carlos Maldonado e realizou estágio de um ano na Universidade de Lancaster (Reino Unido) sob orientação do Prof. Awais Rashid. Desde 2011, é Professor Adjunto na Universidade Federal de São Carlos (UFSCar - Brasil), e realizou Pós-Doutorado na Universidade George Mason (EUA) sob supervisão do Prof. Jeff Offutt entre 2017 e 2018. Tem experiência na área de Ciência da Computação, com ênfase em Engenharia de Software, atuando principalmente nos seguintes temas: teste de software, programação orientada a objetos, programação orientada a aspectos, teste de mutação, sistemas adaptativos, revisão sistemática da literatura, gestão do conhecimento e gamificação em Engenharia de Software. É membro da Sociedade Brasileira de Computação (SBC) e da Association for Computing Machinery (ACM). (Texto informado pelo autor)

  • http://lattes.cnpq.br/3154345471250570 (22/07/2020)
  • Rótulo/Grupo:
  • Bolsa CNPq:
  • Período de análise: 2011-2020
  • Endereço: Universidade Federal de São Carlos, Centro de Ciências Exatas e de Tecnologia, Departamento de Computação. Rodovia Washington Luis km 235 Jardim Guanabara 13565905 - São Carlos, SP - Brasil - Caixa-postal: 668 Telefone: (16) 33518232 Fax: (16) 33518233 URL da Homepage: http://www.dc.ufscar.br
  • Grande área: Ciências Exatas e da Terra
  • Área: Ciência da Computação
  • Citações: Google Acadêmico

Produção bibliográfica

Produção técnica

Produção artística

Orientações em andamento

Supervisões e orientações concluídas

Projetos de pesquisa

Prêmios e títulos

Participação em eventos

Organização de eventos

Lista de colaborações


Produção bibliográfica

Produção técnica

Produção artística

Orientações em andamento

Supervisões e orientações concluídas

Projetos de pesquisa

  • Total de projetos de pesquisa (8)
    1. 2020-Atual. Validacao de Aplicacoes para Cidades Inteligentes: Uma Abordagem Baseada em Defeitos
      Descrição: Contexto: Aplicações para Cidades Inteligentes já são uma realidade para diversos domínios críticos como transporte e mobilidade urbana, saúde, residências, e segurança pública, dentre outros. Por exemplo, tecnologias para o controle de tráfego ajudam a reduzir o tempo no trânsito em grandes cidades; porém, falhas em tempos semafóricos, por exemplo, podem causar acidentes, trazendo sérios danos à população e elevando o nível de desconfiança em relação a essas tecnologias. Assim, essas aplicações precisam ser robustas e corretas. A despeito disso, observa-se que técnicas atuais para se implementar tais atributos de qualidade focam em partes específicas dos sistemas (por exemplo, nas redes de sensores) ou não são suficientemente refinadas para serem aplicadas em nível de código fonte. Objetivo: Definir uma abordagem baseada em defeitos, contemplando-se técnicas de tolerância a defeitos e teste de mutação, para o desenvolvimento e a validação de aplicações para Cidades Inteligentes, com foco nos domínios de mobilidade urbana e gestão de tráfego. Método: Será construído um catálogo de tipos de defeitos, erros e falhas inerentes a esses sistemas. O catálogo embasará a definição de abordagens de tolerância a defeitos e de teste de mutação para o contexto investigado. Ferramental de apoio (injeção de erros, e teste de mutação) será desenvolvido e integrado entre si, e também integrado em um simulador de aplicações para Cidades Inteligentes. Estudos experimentais serão conduzidos para avaliar e refinar as abordagens e ferramentas propostas. Resultados Esperados: Contribuições teóricas (catálogo de tipos de defeitos, erros e falhas; e as abordagens de tolerância a defeitos e de teste de mutação), de automatização (ferramentas) e experimentais (resultados de estudos de avaliação), as quais promovem avanço no desenvolvimento de aplicações para Cidades Inteligentes e contribuem para a transferência tenológica academia-indústria nesse importante domínio de sistemas computacionais.. Situação: Em andamento; Natureza: Pesquisa. Alunos envolvidos: Graduação: (0) / Especialização: (0) / Mestrado acadêmico: (3) / Doutorado: (2) . Integrantes: Fabiano Cutigi Ferrari - Coordenador / Márcio de Medeiros Ribeiro - Integrante. Financiador(es): Fundação de Amparo à Pesquisa do Estado de São Paulo - Auxílio financeiro.
      Membro: Fabiano Cutigi Ferrari.
    2. 2018-2018. TOCSYC - Testing of Critical System Characteristics
      Descrição: TOCSYC is a Swedish distributed research environment dedicated to furthering the knowledge in testing of complex embedded systems. The goal of TOCSYC is to enable and support cost-effective testing by providing Swedish industry with new and improved tools and techniques for efficient and effective testing as well as the decision-support procedures necessary to select the right testing tools or techniques for their context.. Situação: Concluído; Natureza: Pesquisa. Integrantes: Fabiano Cutigi Ferrari - Integrante / Jeff Offutt - Integrante / Paul Pettersson - Coordenador / Sten F. Andler - Integrante / Mehrdad Saadatmand - Integrante / Nils Müllner - Integrante.
      Membro: Fabiano Cutigi Ferrari.
    3. 2017-2019. Uma Abordagem apoiada por Testes para Modernizacao Arquitetural de Sistemas Adaptativos
      Descrição: Sistemas adaptativos (SAs) alteram seu comportamento em decorrência de mudanças de contexto ou variações no ambiente operacional. Sua arquitetura envolve loops de controle, cujo objetivo é monitorar o sistema, analisar o comportamento atual, planejar adaptaçções e aplicá-las. Os principais conceitos dos loops de controle são os monitores, analisadores, planejadores e executores. Geralmente SAs são projetados sem levar em conta os loops, fazendo com que o código-fonte que os implementa torne-se misturado com outros módulos, dificultando manutenções que envolvem esses conceitos. Uma alternativa aparente é a aplicação de refatorações tradicionais para remodularizar os loops, entretanto esse tipo de refatoração não leva em conta o tipo da aplicação, comprometendo a produtividade da equipe. Já refatorações especiais de SAs destinadas a modularização dos loops são escassas. Um outro problema é que refatorações são geralmente implementadas com base em modelos proprietários, dificultando a interoperabilidade entre ferramentas de modernização. A Modernização Orientada a Arquitetura (ADM/OMG) é uma proposta de reestruturação de sistemas com base em um metamodelo ISO chamado KDM (Knowledge Discovery Metamodel). O emprego desse metamodelo faz com que algoritmos de refatoração tornem-se independentes de soluções proprietárias, promovendo o reúso. O objetivo neste projeto é desenvolver uma abordagem de modernização arquitetural de SAs com enfoque na modularização dos loops de controle. Um enfoque grande da abordagem será a aplicação de testes para averiguar se o comportamento e o desempenho do sistema não foram alterados após as refatorações. As avaliações terão como objetivo i) averiguar o suporte fornecido pela abordagem na produtividade das equipes; ii) analisar se as versões refatoradas apresentam melhores níveis de manutenção do que as anteriores e iii) se os algoritmos desenvolvidos possuem alto nível de reusabilidade.. Situação: Concluído; Natureza: Pesquisa. Integrantes: Fabiano Cutigi Ferrari - Integrante / Valter Vieira de Camargo - Coordenador / Ricardo Menotti - Integrante / Guilherme Horta Travassos - Integrante / Mario Piattini Velthuis - Integrante / Ignacio García Rodríguez de Guzmán - Integrante.
      Membro: Fabiano Cutigi Ferrari.
    4. 2017-Atual. Investigacao e Automatizacao de Tecnicas de Reducao de Custo para o Teste de Mutacao
      Descrição: O critério de seleção de testes Análise de Mutantes, também conhecido como teste de mutação, é uma importante opção para avaliar tanto sistemas de software quanto conjuntos de testes utilizados para testá-los. Porém, esse critério impõe alto custo de aplicação. Devido a isso, técnicas de redução de custo têm sido enfatizadas, visando a reduzir significativamente o custo do critério, sem comprometer a qualidade dos conjuntos de testes gerados. Os resultados da aplicação dessas técnicas são válidos somente para os programas que foram alvos dos experimentos realizados, sendo essa uma limitação ressaltada em pesquisas relacionadas. A questão que permanece refere-se à utilidade dos resultados das técnicas de redução de custo para serem aplicados em outros programas que ainda não foram testados com o teste de mutação. O trabalho proposto neste projeto tem como objetivo geral definir uma estratégia para a aplicação de técnicas de redução de custo do teste de mutação que reutiliza conhecimento empírico obtido de estudos prévios. Inicialmente, será feita uma caracterização do estado da arte sobre técnicas de redução de custo para o teste de mutação. Um ranqueamento das melhores técnicas de redução de custo direcionará a definição de uma estratégia de aplicação dessas técnicas. A estratégia deverá considerar a similaridade entre os programas já testados e de novos programas aos quais o teste com custo reduzido será aplicado. Os resultados dos novos testes serão avaliados sob o ponto de vista de manutenção da qualidade dos conjuntos de teste criados.. Situação: Em andamento; Natureza: Pesquisa. Alunos envolvidos: Mestrado acadêmico: (2) Doutorado: (2) . Integrantes: Fabiano Cutigi Ferrari - Coordenador / Márcio de Medeiros Ribeiro - Integrante / Leonardo Fernandes - Integrante / Alessandro Viola Pizzoleto - Integrante / Jeff Offutt - Integrante / Lucas Diniz Dallilo - Integrante / Giovanni Francesco Guarnieri - Integrante. Financiador(es): Conselho Nacional de Desenvolvimento Científico e Tecnológico - Bolsa / Fundação de Amparo à Pesquisa do Estado de São Paulo - Bolsa. Número de produções C, T A: 4 / Número de orientações: 3
      Membro: Fabiano Cutigi Ferrari.
    5. 2016-Atual. Explorando Gamificacao para Melhorar o Ensino e a Pratica de Engenharia de Software
      Descrição: Este projeto consiste em gamificar (ou seja, introduzir elementos de jogos) os ambientes de ensino e prática de Engenharia de Software, com o objetivo de aumentar atributos como eficiência, motivação, engajamento de alunos e de equipes de desenvolvimento de software.. Situação: Em andamento; Natureza: Pesquisa. Alunos envolvidos: Mestrado acadêmico: (1) Doutorado: (1) . Integrantes: Fabiano Cutigi Ferrari - Coordenador / Sandra Camargo Pinto Ferraz Fabbri - Integrante / Gabriela Martins de Jesus - Integrante / Daniel de Paula Porto - Integrante. Financiador(es): Conselho Nacional de Desenvolvimento Científico e Tecnológico - Bolsa / Coordenação de Aperfeiçoamento de Pessoal de Nível Superior - Bolsa. Número de produções C, T A: 3 / Número de orientações: 2
      Membro: Fabiano Cutigi Ferrari.
    6. 2014-2016. Evolucao e Avaliacao de Tecnicas de Teste e de Busca de Codigo-Fonte no Desenvolvimento de Software Contemporaneo
      Descrição: As técnicas contemporâneas de desenvolvimento como a Programação Orientada a Objetos (POO) e a Programação Orientada a Aspectos (POA) trazem diversos benefícios ao desenvolvimento de software, como código mais coeso, menos acoplado e mais legível. Entretanto, essas mesmas técnicas podem apresentar obstáculos, como novos tipos de defeitos que não ocorriam com o uso das técnicas anteriores. Além disso, mesmo que as técnicas apresentem benefícios ao desenvolvimento de software, ainda existem maneiras de fazer com que se obtenha maior confiança no código implementado, ou que o mesmo seja produzido com menor custo. No que diz respeito ao aumento da qualidade, recentemente foi introduzida uma nova família de critérios de teste estrutural - chamada de cobertura de arestas multi-ponto -, que generaliza a cobertura de arestas tradicional para a cobertura de tuplas de arestas obtidas na sequência de execução de um programa. Estudos iniciais indicam que os critérios são efetivos e inclusive comparáveis aos critérios de fluxo de dados, tidos anteriormente como entre os mais efetivos (apesar de bastante custosos). Essa família de critérios ainda não foi explorada no contexto de POA, o que abre um novo caminho de pesquisa importante, já que os programas OA também contêm condicionais. No que diz respeito à diminuição de custos de desenvolvimento, recentemente o grupo de pesquisa do proponente desenvolveu um protótipo que implementa a correção automática de programas utilizando busca de código em repositórios de código aberto. A ideia básica é procurar código similar a trechos defeituosos do programa - detectados via casos de teste -, e substituí-los por implementações corretas encontradas nesses repositórios. Apesar da ferramenta apresentar evidências de ser efetiva, ainda existem diversas maneiras de estendê-la e avaliá-la. Outra técnica proposta pelo grupo e que ainda não foi avaliada adequadamente é a expansão de query automática utilizando tesauros. O objetivo deste projeto de pesquisa é evoluir e avaliar as técnicas de teste e de busca de código-fonte nesses e em outros pontos relacionados para a melhoria do desenvolvimento de software contemporâneo.. Situação: Concluído; Natureza: Pesquisa. Integrantes: Fabiano Cutigi Ferrari - Integrante / Lemos, Otavio Auguste Lazzarini - Coordenador.
      Membro: Fabiano Cutigi Ferrari.
    7. 2014-Atual. Investigacao de Estrategias de Teste e de Tolerancia a Defeitos para Sistemas Auto-Adaptativos
      Descrição: Este projeto irá investigar estratégias de teste e estratégias de tolerância a defeitos para sistemas de software auto-adaptativos (SAAs). A principal característica de SAAs que os diferem de sistemas de software convencionais refere-se à sua capacidade de modificar sua estrutura e comportamento para se adaptar a mudanças em seu contexto de execução. Dada a componente de incerteza presente nesse cenário, estratégias de teste e de tolerância a defeitos precisam ser personalizadas para esse tipo de sistemas.. Situação: Em andamento; Natureza: Pesquisa. Alunos envolvidos: Mestrado acadêmico: (1) Doutorado: (3) . Integrantes: Fabiano Cutigi Ferrari - Coordenador / Valter Vieira de Camargo - Integrante / Bento Rafael Siqueira - Integrante / Daniel Gustavo San Martín Santibáñez - Integrante / Kathiani Elisa de Souza - Integrante. Financiador(es): Coordenação de Aperfeiçoamento de Pessoal de Nível Superior - Bolsa. Número de produções C, T A: 5
      Membro: Fabiano Cutigi Ferrari.
    8. 2013-2016. Avaliacao Experimental da Testabilidade de Programas Orientados a Aspectos
      Descrição: Na última década, a Programação Orientada a Aspectos (POA) recebeu especial atenção da comunidade de pesquisa em Engenharia de Software. Para lidar com os conceitos e propriedades subjacentes da POA e garantir a qualidade dos produtos gerados, ou seja, dos programas orientados a aspectos~(OA), diversas abordagens de teste de software e tecnologias de apoio foram propostas. Em geral, essas abordagens são baseadas em técnicas de teste largamente exploradas como, por exemplo, o teste estrutural e o teste baseado em defeitos. Entretanto, há poucas evidências sobre os reais desafios impostos pela POA à atividade de teste; em geral, a caracterização das dificuldades para se testar programas OA é feita de forma teórica, com base nos conceitos introduzidos por esse novo paradigma de programação. Além disso, observa-se uma clara limitação em relação à avaliação experimental das abordagens propostas para o teste desse tipo de software. Em vista dessas limitações, o presente projeto de pesquisa tem como objetivo investigar, sob o ponto de vista empírico, a adequação de conjuntos de testes em dois diferentes contextos: inter- e intra-paradigma de programação. No primeiro contexto, busca-se confirmar ou refutar a hipótese de que testar programas OA é mais difícil do que testar programas desenvolvidos em outros paradigmas. No segundo contexto, objetiva-se investigar as propriedades complementares de critérios de seleção de casos de teste aplicados em programas OA. Para atingir os objetivos propostos, uma série de estudos experimentais serão conduzidos como forma de gerar evidências que permitam o delineamento de respostas aos problemas investigados. Chamada: Universal 14/2013 (Processo 485235/2013-7). Situação: Concluído; Natureza: Pesquisa. Alunos envolvidos: Mestrado acadêmico: (2) . Integrantes: Fabiano Cutigi Ferrari - Coordenador / Otávio Augusto Lazzarini Lemos - Integrante / Thiago Gaspar Levin - Integrante / Jesus Thiago Sousa Lacerda - Integrante. Financiador(es): Conselho Nacional de Desenvolvimento Científico e Tecnológico - Auxílio financeiro.
      Membro: Fabiano Cutigi Ferrari.

Prêmios e títulos

  • Total de prêmios e títulos (7)
    1. Melhor Artigo do 4th Brazilian Symposium on Systematic and Automated Software Testing (SAST), Sociedade Brasileira de Computação.. 2019.
      Membro: Fabiano Cutigi Ferrari.
    2. Prémio três melhores médias de notas dos formandos em 20 anos (1999-2018) do curso e Bacharelado em Informática, Instituto de Ciências Matemáticas e de Computação - USP.. 2019.
      Membro: Fabiano Cutigi Ferrari.
    3. Mehor artigo da Trilha de Educação do XVIII Simpósio Brasileiro de Qualidade de Software (SBQS), Sociedade Brasileira de Computação.. 2019.
      Membro: Fabiano Cutigi Ferrari.
    4. Melhor Artigo do 13th International Workshop on Mutation Analysis, IEEE Computer Society.. 2018.
      Membro: Fabiano Cutigi Ferrari.
    5. Dois Melhores Artigos do 3rd Brazilian Symposium on Systematic and Automated Software Testing (SAST), Sociedade Brasileira de Computação.. 2018.
      Membro: Fabiano Cutigi Ferrari.
    6. Melhor Artigo do 8th Brazilian Workshop on Systematic and Automated Software Testing (SAST), Sociedade Brasileira de Computação.. 2014.
      Membro: Fabiano Cutigi Ferrari.
    7. Terceiro Melhor Artigo do XXVII Simpósio Brasileiro de Engenharia de Software, Sociedade Brasileira de Computação... 2013.
      Membro: Fabiano Cutigi Ferrari.

Participação em eventos

  • Total de participação em eventos (20)
    1. XXXI Simpósio Brasileiro de Engenharia de Software (SBES).Coordanador da Trilha de Trabalhos Técnicos de Pesquisa. 2017. (Simpósio).
    2. I Brazilian Symposium on Systematic and Automated Software Testing (SAST).Characterisation of Challenges for Testing of Adaptive Systems. 2016. (Simpósio).
    3. VII Congresso Brasileiro de Software: Teoria e Prática (CBSoft). Coordenador da Sessão de Ferramentas. 2016. (Congresso).
    4. IEEE International Symposium on Software Reliability Engineering (ISSRE).Experience Report: Can Software Testing Education Lead to More Reliable Software?. 2015. (Simpósio).
    5. 11th Workshop on Software Modularity (WMod). 2014. (Oficina).
    6. 8th Brazilian Workshop on Systematic and Automated Software Testing (SAST). 2014. (Oficina).
    7. V Congresso Brasileiro de Software: Teoria e Prática (CBSoft). 2014. (Congresso).
    8. XVIII Simpósio Brasileiro de Linguagens de Programação (SBLP). 2014. (Seminário).
    9. XXVIII Simpósio Brasileiro de Engenharia de Software (SBES). 2014. (Simpósio).
    10. 7th Latin American Workshop on Aspect-Oriented Software Development (LA-WASP).Difficulties for Testing Aspect-Oriented Programs: A Report based on Practical Experience on Structural and Mutation Testing. 2013. (Oficina).
    11. IV Congresso Brasileiro de Software: Teoria e Prática (CBSoft). 2013. (Congresso).
    12. XXVII Simpósio Brasileiro de Engenharia de Software (SBES).Visualization, Analysis, and Testing of Java and AspectJ Programs with Multi-Level System Graphs / Identifying a Subset of TMMi Practices to Establish a Streamlined Software Testing Process. 2013. (Simpósio).
    13. 34th International Conference on Software Engineering (ICSE). Development of Auxiliary Functions: Should You Be Agile? An Empirical Assessment of Pair Programming and Test-First Programming. 2012. (Congresso).
    14. 6th Latin American Workshop on Aspect-Oriented Software Development (LA-WASP).A Design Strategy to Facilitate the Instantiation Process of White-Box Frameworks. 2012. (Oficina).
    15. II Congresso Brasileiro de Sistemas Embarcados Críticos (CBSEC). 2012. (Congresso).
    16. III Congresso Brasileiro de Software: Teoria e Prática (CBSoft). 2012. (Congresso).
    17. 10th International Conference on Aspect-Oriented Software Development (AOSD). Proteum/AJ: A Mutation System for AspectJ Programs. 2011. (Congresso).
    18. 2nd International Workshop on Variability Composition (VariComp).Investigating Testing Approaches for Dynamically Adaptive Systems. 2011. (Oficina).
    19. 5th Latin American Workshop on Aspect-Oriented Software Development (LA-WASP). 2011. (Oficina).
    20. II Congresso Brasileiro de Software: Teoria e Prática (CBSoft). Sessão Técnica 3: Software Testing and Cost Estimation. 2011. (Congresso).

Organização de eventos

  • Total de organização de eventos (8)
    1. ALVES, E. L. G. ; FERRARI, FABIANO C.. Congresso Brasileiro de Software: Teoria e Prática - Workshops e Painel. 2019. Congresso
    2. MALDONADO, José Carlos ; FERRARI, Fabiano Cutigi. Simpósio Brasileiro de Engenharia de Software (SBES) - Research Track. 2017. Congresso
    3. FERRARI, Fabiano Cutigi. Congresso Brasileiro de Software: Teoria e Prática - Sessão de Ferramentas. 2016. (Congresso).. . 0.
    4. MALDONADO, José Carlos ; MENDONCA NETO, M. G. ; FERRARI, Fabiano Cutigi. Congresso Brasileiro de Software: Teoria e Prática - Trilha da Indústria. 2015. Congresso
    5. SANT'ANNA, C. ; RIBEIRO, M. M. ; FERRARI, Fabiano Cutigi ; REBÊLO, Henrique. 7th Latin American Workshop on Aspect-Oriented Software Development (LA-WASP). 2013. Congresso
    6. CHAVEZ, Christina von Flach Garcia ; FERRARI, Fabiano Cutigi ; BONIFACIO, Rodrigo ; MACIA, I. ; LEMOS, Otávio Augusto Lazzarini ; COELHO, Roberta Souza ; LUCENA, Marcia. 6th Latin American Workshop on Aspect-Oriented Software Development (LA-WASP). 2012. Congresso
    7. CAMARGO, Valter Vieira de ; FIGUEIREDO, Eduardo ; FERRARI, Fabiano Cutigi ; DANTAS, Francisco ; BONIFACIO, Rodrigo ; GHEYI, Rohit. 5th Latin-American Workshop on Aspect-Oriented Software Development (LA-WASP). 2011. Congresso
    8. FERRARI, Fabiano Cutigi. 32nd International Conference on Software Engineering (ICSE) (estudante voluntário). 2010. (Congresso).. . 0.

Lista de colaborações



Data de processamento: 12/10/2020 22:29:19