Marco Túlio de Oliveira Valente
CNPq research fellow: 1D
Research areas: Degrees:
PhD, UFMG, Brasil, 2002
Phone: 5586
mtov@dcc.ufmg.br
Home page Lattes Google scholar
Information extracted from Lattes platform
Last update: 2023/10/10ORCID: https://orcid.org/0000-0002-8180-7548
Current projects
2023 a Atual | Modernização Tecnológica de Sistemas de Software usando Modelos de Linguagens (FAPEMIG Universal 2023) Neste projeto, pretende-se avaliar, projetar e implementar ferramentas para ajudar desenvolvedores a adaptar seus sistemas de software a novas tecnologias de programação, incluindo linguagens, bibliotecas e frameworks. Apesar de ser um problema conhecido (mas ainda não resolvido), nossa principal motivação para investigá-lo deve-se ao surgimento e popularização de modelos de linguagens (Large Language Models), sendo o mais conhecido deles o ChatGPT. Ou seja, acreditamos que os avanços recentes proporcionados por esses modelos podem viabilizar novas ferramentas para apoiar desenvolvedores na relevante tarefa de modernização tecnológica dos seus sistemas. Assim, temos quatro objetivos específicos: (1) pretendemos investigar o uso de de modelos de linguagens para adaptar sistemas a versões mais novas de uma linguagem de programação. Por exemplo, pretendemos investigar soluções que permitam migrar sistemas escritos em uma versão antiga de uma linguagem (exemplo: Python 2.7) para uma versão mais nova (exemplo: Python 3). (2) planejamos investigar soluções baseadas em modelos de linguagens para adaptar sistemas a versões mais novas de uma biblioteca ou framework. Por exemplo, as APIs fornecidas para criação de aplicativos móveis frequentemente mudam a forma de acesso aos dados e sensores disponíveis nos smartphones, forçando os desenvolvedores a adaptarem manualmente seus aplicativos para as novas restrições. (3) Pretendemos também investigar soluções para adaptar sistemas a uma nova biblioteca ou framework. A migração entre APIs de componentes distintosde pytest para unittest, por exemploocorre muitas vezes manualmente. Portanto, pretendemos investigar soluções para apoiar o processo de troca dos componentes de um sistema. (4) por fim, mas não menos importante, estamos propondo uma investigação de soluções para adaptar a organização arquitetural de sistemas. Por exemplo, migrar sistemas legados para arquiteturas modernas baseadas em microsserviços. Financiamento: FAPEMIG (Processo APQ-02419-23) - Valor financiado: R$ 99.690,88 Integrantes: Marco Tulio de Oliveira Valente (coordenador), João Eduardo Montandon de Araujo Filho, Luciana Silva. |
2022 a Atual | Avaliação de Técnicas Modernas para Melhoria da Produtividade de Atividades de Desenvolvimento de Software (CNPq Universal 2021) Segundo algumas consultorias, o mercado global de desenvolvimento de software deve crescer a taxas anuais de dois dígitos ao longo desta década. Essa demanda é causada pela digitalização da economia, que se acelerou bastante com a pandemia. Por outro lado, existe uma grande escassez de desenvolvedores de software, o que limita a velocidade de tais processos de digitalização. Essa escassez é global, mas ocorre de forma nítida também no Brasil. Por exemplo, estima-se que serão abertas 420 mil vagas para desenvolvedores até 2024, enquanto apenas 46 mil profissionais são formados por ano pelas universidades brasileiras. Para atenuar esse problema, duas iniciativas têm se destacado. (1) Está surgindo uma nova geração de ferramentas que facilitam a implementação de sistemas por parte de pessoas sem formação em programação, as quais são conhecidas pelo nome genérico de ferramentas no-code/low-code. Um estudo recente do Gartner Group estima que, em 2024, 65% dos sistemas serão implementados por meio de tais ferramentas (evidentemente, esses sistemas estão na ?base da pirâmide?, em termos de complexidade). (2) Diversos sistemas de Inteligência Artificial estão surgindo para incrementar a produtividade dos atuais desenvolvedores de software. Recentemente, por exemplo, a plataforma CoPilot foi proposta pelo GitHub para apoiar a geração automática do código de funções a partir apenas do nome de tais elementos. Porém, não conhecemos os benefícios e limitações dessas duas categorias de ferramentas, incluindo seus impactos em termos de evolução, manutenção e qualidade do código gerado. Assim, neste projeto, pretendemos conduzir uma avaliação sistemática de aspectos técnicos -- ancorados em bons princípios de Engenharia de Software -- que decorrem do uso de plataformas modernas para aumento da produtividade de atividades de desenvolvimento de software, incluindo plataformas no-code/low-code e também ferramentas para geração automática de código usando técnicas de IA. Financiamento: CNPq (Processo: 403512/2021-2) - Valor financiado: R$ 100.700,00. Integrantes: Marco Tulio de Oliveira Valente (coordenador), João Eduardo Montandon de Araujo Filho, Guilherme Avelino, Pedro de Alcântara dos Santos Neto, LOURDES SILVA, LUCIANA. |
2020 a Atual | Mineração em Larga Escala de Repositórios de Código Fonte - Bolsa de Produtividade em Pesquisa (CNPq) Neste projeto de pesquisa, pretende-se utilizar grandes repositórios de software para aprender e derivar propriedades tanto de sistemas de software como de seus desenvolvedores. Mais especificamente, pretende-se: (1) identificar experts em tecnologias de software minerando em larga escala suas atividades em projetos de código-aberto; (2) derivar regras para migração de APIs por meio do aprendizado de transformações semelhantes realizadas em projetos de código-aberto; (3) investigar heurísticas para documentação automática de refactorings, incluindo documentação sobre a motivação que levou à aplicação do refactoring; (4) Tipagem de APIs REST, com o objetivo principal de proporcionar que usuários dessas APIs tenham benefícios semelhantes àqueles obtidos com GraphQL. Financiamento: CNPq (Processo: 308164/2019-9) - Valor financiado: R$ 105.600,00 Integrantes: Marco Tulio de Oliveira Valente (coordenador). |
2017 a Atual | Avaliação em Larga Escala de Práticas de Gerenciamento de Projetos de Código Aberto -- Programa Pesquisador Mineiro (PPM XI) O objetivo central deste projeto é revelar e aperfeiçoar práticas de gerenciamento e monitoramento de projetos de código aberto, com ênfase em: (a) monitoramento de popularidade de sistemas open-source; (b) gerenciamento de fatores de riscos de sistemas open-source; (c) controle de breaking changes em APIs providas por bibliotecas e frameworks open-source. Financiamento: FAPEMIG (processo CEX-PPM-00490-17). Valor financiado: R$ 25.200,00 Integrantes: Marco Tulio de Oliveira Valente (coordenador). |
Current applied research projects
Recent publications
Articles in journals
Detecting code smells in react-based Web apps2023. INFORMATION AND SOFTWARE TECHNOLOGY.
Understanding code smells in Elixir functional language
2023. EMPIRICAL SOFTWARE ENGINEERING.
Snapshot testing in practice: Benefits and drawbacks
2023. JOURNAL OF SYSTEMS AND SOFTWARE.
On the (un-)adoption of JavaScript front-end frameworks
2022. SOFTWARE: PRACTICE AND EXPERIENCE.
Comments or Issues: Where to Document Technical Debt?
2022. IEEE SOFTWARE.
On the documentation of self-admitted technical debt in issues
2022. EMPIRICAL SOFTWARE ENGINEERING.
Are game engines software frameworks? A three-perspective study
2021. JOURNAL OF SYSTEMS AND SOFTWARE.
What skills do IT companies look for in new developers? A study with Stack Overflow jobs
2021. INFORMATION AND SOFTWARE TECHNOLOGY.
Mining the Technical Roles of GitHub Users
2021. INFORMATION AND SOFTWARE TECHNOLOGY.
Characterizing refactoring graphs in Java and JavaScript projects
2021. EMPIRICAL SOFTWARE ENGINEERING.
RefDiff 2.0: A Multi-Language Refactoring Detection Tool
2021. IEEE TRANSACTIONS ON SOFTWARE ENGINEERING.
You broke my code: understanding the motivations for breaking changes in APIs
2020. EMPIRICAL SOFTWARE ENGINEERING.
Prioritizing versions for performance regression testing: The Pharo case
2020. SCIENCE OF COMPUTER PROGRAMMING.
Is this GitHub project maintained? Measuring the level of maintenance activity of open-source projects
2020. INFORMATION AND SOFTWARE TECHNOLOGY.
How Do Developers Promote Open Source Projects?
2019. COMPUTER.
Measuring and analyzing code authorship in 1+118 open source projects
2019. SCIENCE OF COMPUTER PROGRAMMING.
Co-Change Patterns: A Large Scale Empirical Study
2019. JOURNAL OF SYSTEMS AND SOFTWARE.
Algorithms for estimating truck factors: a comparative study
2019. SOFTWARE QUALITY JOURNAL.
A Semi-automatic Approach for Extracting Software Product Lines
2012. IEEE Transactions on Software Engineering.
A dependency constraint language to manage object-oriented software architectures
2009. Software, Practice & Experience.
Papers in conferences
Understanding Refactoring Tasks over Time: A Study Using Refactoring Graphs2022. Congresso IberoAmericano em Engenharia de Software.
Identifying Source Code File Experts
2022. ESEM '22: ACM / IEEE International Symposium on Empirical Software Engineering and Measurement.
TechSpaces: Identifying and Clustering Popular Programming Technologies
2022. SBCARS 2022: 16th Brazilian Symposium on Software Components, Architectures, and Reuse.
Software engineering meets deep learning
2021. SAC '21: The 36th ACM/SIGAPP Symposium on Applied Computing.
REST vs GraphQL: A Controlled Experiment
2020. 2020 IEEE International Conference on Software Architecture (ICSA).
Refactoring Graphs: Assessing Refactoring over Time
2020. 2020 IEEE 27th International Conference on Software Analysis, Evolution and Reengineering (SANER).
RefDiff4Go
2020. SBCARS '20: 14th Brazilian Symposium on Software Components, Architectures, and Reuse.
Surveying the impacts of COVID-19 on the perceived productivity of Brazilian software developers
2020. SBES '20: 34th Brazilian Symposium on Software Engineering.
Migrating to GraphQL: A Practical Assessment
2019. 2019 IEEE 26th International Conference on Software Analysis, Evolution and Reengineering (SANER).
Identifying Experts in Software Libraries and Frameworks Among GitHub Users
2019. 2019 IEEE/ACM 16th International Conference on Mining Software Repositories (MSR).
Beyond Textual Issues
2019. the XXXIII Brazilian Symposium.
On the abandonment and survival of open source projects: An empirical investigation
2019. 2019 ACM/IEEE International Symposium on Empirical Software Engineering and Measurement (ESEM).
Assessing the threat of untracked changes in software evolution
2018. the 40th International Conference.
Why modern open source projects fail
2017. the 2017 11th Joint Meeting.
Why we refactor? confessions of GitHub contributors
2016. the 2016 24th ACM SIGSOFT International Symposium.
Extended abstracts in conferences
GitHub Proxy Server: A tool for supporting massive data collection on GitHub2022. SBES 2022: XXXVI Brazilian Symposium on Software Engineering.
Code smells in Elixir
2022. ICPC '22: 30th International Conference on Program Comprehension.
Como os mantenedores usam GitHub Reactions? Um estudo exploratório
2022. Brazilian Workshop on Software Visualization, Evolution and Maintenance (VEM).
GoCity: Code City for Go
2019. 2019 IEEE 26th International Conference on Software Analysis, Evolution and Reengineering (SANER).
APIDiff: Detecting API breaking changes
2018. 2018 IEEE 25th International Conference on Software Analysis, Evolution and Reengineering (SANER).
Abstracts in conferences
Modelo de Gestão de Demandas de Manutenção de Software: a Experiência da PUC Minas2009. VI Workshop de Manutenção de Software Moderna.
Uma Extensão de Pascal Orientada a Objetos
1992. XV Congresso Nacional de Matemática Aplicada e Computacional.
EdTeX: Um Editor de Textos para o LaTeX
1991. V Simpósio Brasileiro de Engenharia de Software - Feira de Ferramentas.
See all publications in Lattes
Current students
MS
Aylton Almeida. Tema a definir. Início: 2023. Universidade Federal de Minas Gerais (Orientador principal)Ian Guelman. Tema a definir. Início: 2023. Universidade Federal de Minas Gerais (Orientador principal)
Maurício Monteiro da Silva. End-to-End Software Construction Supported by ChatGPT. Início: 2022. Universidade Federal de Minas Gerais (Orientador principal)
Larissa Bicalho. Code Smells em Testes End-to-End Implementados com Cypress. Início: 2021. Universidade Federal de Minas Gerais (Orientador principal)
Victor Pezzi Gazzinelli Cruz. Snapshot testing in practice: Benefits and drawbacks. Início: 2021. Universidade Federal de Minas Gerais (Orientador principal)
PhD
Lucas Francisco da Matta Vegi. Code Smells and Refactorings in Elixir Functional Language. Início: 2021. Universidade Federal de Minas Gerais (Orientador principal)See all students in Lattes