Marco Túlio de Oliveira Valente


Adjunto  Professor 


Bolsa produtividade CNPq nível   1D


Doutor, UFMG, Brasil, 2002

  mtov@dcc.ufmg.br   www
 ICEx/DCC, room 6310, +55 (31) 3409-5586
Research areas

Information extracted from Lattes platform


Last update: 2017/10/08

Degrees

Ph.D. Ciências da Computação na Universidade Federal de Minas Gerais em 2002
M.Sc. Ciências da Computação na Universidade Federal de Minas Gerais em 1995
B.Sc. Informática na Universidade Federal de Viçosa em 1992

Current projects

2017 a AtualAvaliaçã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

See all projects in Lattes

Recent publications

Articles in journals

The shape of feature code: an analysis of twenty C-preprocessor-based systems
2017. Software and Systems Modeling (Print).
DCL 2.0: modular and reusable specification of architectural constraints
2017. JOURNAL OF THE BRAZILIAN COMPUTER SOCIETY (IMPRESSO).
Identifying Classes in Legacy JavaScript Code
2017. Journal of Software-Evolution and Process.
Mining architectural violations from version history
2016. Empirical Software Engineering.
Architecture Conformance Checking in Dynamically Typed Languages.
2016. Journal of Object Technology.
NextBug: a Bugzilla extension for recommending similar bugs
2015. Journal of Software Engineering Research and Development.
Automatic Detection of System-Specific Conventions Unknown to Developers
2015. The Journal of Systems and Software.
Mining usage patterns for the Android API
2015. PeerJ Computer Science.
BugMaps-Granger: a tool for visualizing and predicting bugs using Granger causality tests
2014. Journal of Software Engineering Research and Development.
Predicting Software Defects with Causality Tests
2014. The Journal of Systems and Software.
Mining the Impact of Evolution Categories on Object-Oriented Metrics
2013. Software Quality Journal.
Static Correspondence and Correlation between Field Defects and Warnings Reported by a Bug Finding Tool
2013. Software Quality Journal.
COMETS: A Dataset for Empirical Research on Software Evolution using Source Code Metrics and Time Series Analysis
2013. Software Engineering Notes.
Qualitas.class corpus
2013. Software Engineering Notes.
A recommendation system for repairing violations detected by static architecture conformance checking
2013. Software, Practice & Experience (Print).
On-the-fly extraction of hierarchical object graphs
2013. Journal of The Brazilian Computer Society (Online).
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

A Comparison of Three Algorithms for Computing Truck Factors
2017. 2017 IEEE/ACM 25th International Conference on Program Comprehension (ICPC).
How Clear is Your Code? An Empirical Study with Programming Challenges
2017. XX Congresso Ibero-americano de Engenharia de Software (CIbSE).
RefDiff: Detecting Refactorings in Version Histories
2017. 2017 IEEE/ACM 14th International Conference on Mining Software Repositories (MSR).
Historical and impact analysis of API breaking changes: A large-scale study
2017. 2017 IEEE 24th International Conference on Software Analysis, Evolution and Reengineering (SANER).
Why modern open source projects fail
2017. the 2017 11th Joint Meeting.
A novel approach for estimating Truck Factors
2016. 2016 IEEE 24th International Conference on Program Comprehension (ICPC).
Learning from Source Code History to Identify Performance Failures
2016. the 7th ACM/SPEC.
Do Developers Deprecate APIs with Replacement Messages? A Large-Scale Analysis on Java Systems
2016. 2016 IEEE 23rd International Conference on Software Analysis, Evolution, and Reengineering (SANER).
Does Technical Debt Lead to the Rejection of Pull Requests?
2016. XII Simpósio Brasileiro de Sistemas de Informação (SBSI).
An Empirical Study on Recommendations of Similar Bugs
2016. 2016 IEEE 23rd International Conference on Software Analysis, Evolution and Reengineering (SANER).
Predicting the Popularity of GitHub Repositories
2016. the The 12th International Conference.
A Comparative Study of Algorithms for Estimating Truck Factor
2016. 2016 X Brazilian Symposium on Software Components, Architectures and Reuse (SBCARS).
Characterizing Bug Workflows in Mozilla Firefox
2016. the 30th Brazilian Symposium.
Identifying Utility Functions in Java and JavaScript
2016. 2016 X Brazilian Symposium on Software Components, Architectures and Reuse (SBCARS).
Understanding the Factors That Impact the Popularity of GitHub Repositories
2016. 2016 IEEE International Conference on Software Maintenance and Evolution (ICSME).
Perceptions of 395 Developers on Software Architecture's Documentation and Conformance
2016. 2016 X Brazilian Symposium on Software Components, Architectures and Reuse (SBCARS).
A Lightweight Remodularization Process Based on Structural Similarity
2016. 2016 X Brazilian Symposium on Software Components, Architectures and Reuse (SBCARS).
Modular Specification of Architectural Constraints
2016. 2016 X Brazilian Symposium on Software Components, Architectures and Reuse (SBCARS).
AngularJS in the wild: a survey with 460 developers
2016. the 7th International Workshop.
Why we refactor? confessions of GitHub contributors
2016. the 2016 24th ACM SIGSOFT International Symposium.
When should internal interfaces be promoted to public?
2016. the 2016 24th ACM SIGSOFT International Symposium.
Um Estudo sobre Extração de Métodos para Reutilização de Código
2015. XII Workshop em Engenharia de Software Experimental (ESELAW).
Conformidade e Visualização Arquitetural em Linguagens Dinâmicas
2015. XVIII Congresso Ibero-americano de Engenharia de Software (CIbSE).
Does JavaScript software embrace classes?
2015. 2015 IEEE 22nd International Conference on Software Analysis, Evolution and Reengineering (SANER).
Feature scattering in the large: a longitudinal study of Linux kernel device drivers
2015. the 14th International Conference.
Recording and Replaying System Specific, Source Code Transformations
2015. 15th IEEE International Working Conference on Source Code Analysis and Manipulation.
Validating metric thresholds with developers: An early result
2015. 2015 IEEE International Conference on Software Maintenance and Evolution (ICSME).
Developers' perception of co-change patterns: An empirical study
2015. 2015 IEEE International Conference on Software Maintenance and Evolution (ICSME).
System Specific, Source Code Transformations
2015. 31st IEEE International Conference on Software Maintenance and Evolution (ICSME).
How Do Developers React to API Evolution? The Pharo Ecosystem Case
2015. 31st IEEE International Conference on Software Maintenance and Evolution (ICSME).
Recommending automated extract method refactorings
2014. the 22nd International Conference.
Assessing modularity using co-change clusters
2014. the 13th international conference.
Remodularization analysis using semantic clustering
2014. 2014 Software Evolution Week IEEE Conference on Software Maintenance, Reengineering and Reverse Engineering (CSMRWCRE).
Extracting relative thresholds for source code metrics
2014. 2014 Software Evolution Week IEEE Conference on Software Maintenance, Reengineering and Reverse Engineering (CSMRWCRE).
Object-Business Process Mapping Frameworks: Abstractions, Architecture, and Implementation
2014. 2014 IEEE 18th International Enterprise Distributed Object Computing Conference (EDOC 2014).
Documenting APIs with examples: Lessons learned with the APIMiner platform
2013. 2013 20th Working Conference on Reverse Engineering (WCRE).
Mining system specific rules from change patterns
2013. 2013 20th Working Conference on Reverse Engineering (WCRE).
Heuristics for discovering architectural violations
2013. 2013 20th Working Conference on Reverse Engineering (WCRE).
Recommending Move Method refactorings using dependency sets
2013. 2013 20th Working Conference on Reverse Engineering (WCRE).
Mining Architectural Patterns Using Association Rules
2013. 25th International Conference on Software Engineering and Knowledge Engineering (SEKE).
A quantitative approach for evaluating software maintenance services
2013. the 28th Annual ACM Symposium.
Uncovering Causal Relationships between Software Metrics and Bugs
2012. 16th European Conference on Software Maintenance and Reengineering.
Uma Abordagem para Verificação de Similaridade entre Sistemas Orientados a Objetos
2012. XI Simpósio Brasileiro de Qualidade de Software.
Detecção de Violações Arquiteturais usando Histórico de Versões
2012. XI Simpósio Brasileiro de Qualidade de Software.

Extended abstracts in conferences

Why do we break APIs? First answers from developers
2017. 2017 IEEE 24th International Conference on Software Analysis, Evolution and Reengineering (SANER).
Statically identifying class dependencies in legacy JavaScript systems: First results
2017. 2017 IEEE 24th International Conference on Software Analysis, Evolution and Reengineering (SANER).
Uma Caracterização em Larga Escala da Arquitetura de Sistemas Docker
2017. 5th Brazilian Workshop on Software Visualization, Evolution and Maintenance (VEM).
Caracterização do Papel Desempenhado por Desenvolvedores Responsáveis pelo Truck Factor de Projetos de Software
2017. 5th Brazilian Workshop on Software Visualization, Evolution and Maintenance (VEM).
Como Pesquisadores Usam o Dataset GHTorrent?
2017. 5th Brazilian Workshop on Software Visualization, Evolution and Maintenance (VEM).
Distribuição de Conhecimento de Código em Times de Desenvolvimento -- uma Análise Arquitetural
2016. 4th Brazilian Workshop on Software Visualization, Evolution and Maintenance.
Inferência de Tipos em Ruby: Uma Comparação entre Técnicas de Análise Estática e Dinâmica
2016. 4th Brazilian Workshop on Software Visualization, Evolution and Maintenance (VEM).
Um Estudo em Larga Escala sobre o Uso de APIs Internas
2016. 4th Brazilian Workshop on Software Visualization, Evolution and Maintenance (VEM).
Um Estudo em Larga Escala sobre Estabilidade de APIs
2016. 4th Brazilian Workshop on Software Visualization, Evolution and Maintenance (VEM).
Uma Ferramenta para Conversão de Código JavaScript Orientado a Objetos em ECMA 5 para ECMA 6
2016. 4th Brazilian Workshop on Software Visualization, Evolution and Maintenance (VEM).
JAVALI: Uma Ferramenta para Análise de Popularidade de APIs Java
2016. Sessão de ferramentas do CBSoft.
Identifying Utility Functions Using Random Forests
2016. 2016 IEEE 23rd International Conference on Software Analysis, Evolution, and Reengineering (SANER).
Towards a Technique for Extracting Microservices from Monolithic Enterprise Systems.
2015. 3rd Brazilian Workshop on Software Visualization, Evolution and Maintenance.
Um Estudo sobre a Utilização de Mensagens de Depreciação de APIs
2015. 3rd Brazilian Workshop on Software Visualization, Evolution and Maintenance.
JSCity: Visualização de Sistemas JavaScript em 3D.
2015. 3rd Brazilian Workshop on Software Visualization, Evolution and Maintenance.
ArchRuby: Conformidade e Visualização Arquitetural em Linguagens Dinâmicas
2015. Sessão de ferramentas do CBSoft.
JSClassFinder: A Tool to Detect Class-like Structures in JavaScript
2015. Sessão de ferramentas do CBSoft.
Using JavaScript Static Checkers on GitHub Systems: A First Evaluation
2015. 3rd Brazilian Workshop on Software Visualization, Evolution and Maintenance (VEM).
OrionPlanning: Improving Modularization and Checking Consistency on Software Architecture
2015. 3rd IEEE Working Conference on Software Visualization (VISSOFT), Tool Demos.
apiwave: Keeping Track of API Popularity and Migration.
2015. 31st IEEE International Conference on Software Maintenance and Evolution (ICSME), Tool Demonstrations Track.
ArchGraph: Modularização Automática de Sistemas Usando Clusterização de Grafos de Dependência
2014. 2nd Brazilian Workshop on Software Visualization, Evolution and Maintenance.
APIEvolutionMiner: Keeping API evolution under control
2014. 2014 Software Evolution Week IEEE Conference on Software Maintenance, Reengineering and Reverse Engineering (CSMRWCRE).
JExtract: An Eclipse Plug-in for Recommending Automated Extract Method Refactorings
2014. Sessão de ferramentas do CBSoft.
Coleta e Análise de Métricas Estáticas para Sistemas JavaScript
2014. 2nd Brazilian Workshop on Software Visualization, Evolution and Maintenance.
NextBug: A Tool for Recommending Similar Bugs in Open-Source Systems
2014. Sessão de ferramentas do CBSoft.
Does feature scattering follow power-law distributions?
2014. the 6th International Workshop.
RTTool: A Tool for Extracting Relative Thresholds for Source Code Metrics
2014. 2014 IEEE International Conference on Software Maintenance and Evolution (ICSME).
Uma Ferramenta para Verificação de Conformidade Visando Diferentes Percepções de Arquiteturas de Software
2014. Sessão de ferramentas do CBSoft.
ModularityCheck: A Tool for Assessing Modularity using Co-Change Clusters
2014. Sessão de ferramentas do CBSoft.
JMove: Seus Métodos em Classes Apropriadas
2013. IV Congresso Brasileiro de Software: Teoria e Prática.
ArchLint: Uma Ferramenta para Detecção de Violações Arquiteturais usando Histórico de Versões
2013. IV Congresso Brasileiro de Software: Teoria e Prática.
APIMiner 2.0: Uma Plataforma para Recomendação de Exemplos de Uso de APIs Baseados em Padrões de Uso
2013. IV Congresso Brasileiro de Software: Teoria e Prática.
NextFlow: Um Framework para Mapeamento de Processos de Negócio e Objetos
2013. IV Congresso Brasileiro de Software: Teoria e Prática.
TopicViewer: Evaluating Remodularizations Using Semantic Clustering
2013. IV Congresso Brasileiro de Software: Teoria e Prática.
BugMaps-Granger: A Tool for Causality Analysis between Source Code Metrics and Bugs
2013. IV Congresso Brasileiro de Software: Teoria e Prática.
Metrics-based Detection of Similar Software
2013. 25th International Conference on Software Engineering and Knowledge Engineering (SEKE).
Measuring the Structural Similarity between Source Code Entities
2013. 25th International Conference on Software Engineering and Knowledge Engineering (SEKE).
BugMaps: A Tool for the Visual Exploration and Analysis of Bugs
2012. 16th European Conference on Software Maintenance and Reengineering.
Recommending Refactorings to Reverse Software Architecture Erosion
2012. 16th European Conference on Software Maintenance and Reengineering.
An Approach for Extracting Modules from Monolithic Software Architectures
2012. IX Workshop de Manutenção de Software Moderna.
DCLfix: A Recommendation System for Repairing Architectural Violations
2012. III Congresso Brasileiro de Software: Teoria e Prática.
APIMiner: Uma Plataforma para Recomendação de Exemplos de Uso de APIs
2012. III Congresso Brasileiro de Software: Teoria e Prática.

Abstracts in conferences

Modelo de Gestão de Demandas de Manutenção de Software: a Experiência da PUC Minas
2009. 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

Thais Mombach. Algoritmos para Estimativa de Concentração de Conhecimento em Equipes de Desenvolvimento de Software. Início: 2017. Universidade Federal de Minas Gerais (Orientador principal)
Aline Norberta de Brito. API Usage and Evolution. Início: 2016. Universidade Federal de Minas Gerais (Orientador principal)

PhD

Mívian Marques Ferreira. Concentration of Knowledge in Software Projects. Início: 2017. Universidade Federal de Minas Gerais (Orientador principal)
José Laerte Pires Xavier Júnior. API Design and Evolution. Início: 2017. Universidade Federal de Minas Gerais (Orientador principal)
Gleison Brito Batista. API Usage and Evolution. Início: 2016. Universidade Federal de Minas Gerais (Orientador principal)
João Eduardo Montandon de Araújo Filho. Mining software repositories. Início: 2016. Universidade Federal de Minas Gerais (Orientador principal)
Jailton Junior de Sousa Coelho. Open-source Software Development. Início: 2015. Universidade Federal de Minas Gerais (Orientador principal)
Guilherme Amaral Avelino. Measuring Code Authorship: Algorithms and Applications. Início: 2014. Universidade Federal de Minas Gerais (Orientador principal)
Hudson Silva Borges. Assessing the Popularity of Open-Source Projects: A Conceptual Framework. Início: 2014. Universidade Federal de Minas Gerais (Orientador principal)
Danilo Ferreira e Silva. Detecting refactorings using version histories. Início: 2014. Universidade Federal de Minas Gerais (Orientador principal)

See all students in Lattes