Marco Túlio Valente

ORCID: 0000-0002-8180-7548
Publications
Citations
Views
---
Saved
---
About
Contact & Profiles
Research Areas
  • Software Engineering Research
  • Software System Performance and Reliability
  • Advanced Software Engineering Methodologies
  • Software Engineering Techniques and Practices
  • Software Reliability and Analysis Research
  • Open Source Software Innovations
  • Software Testing and Debugging Techniques
  • Advanced Malware Detection Techniques
  • Service-Oriented Architecture and Web Services
  • Web Data Mining and Analysis
  • Scientific Computing and Data Management
  • Wikis in Education and Collaboration
  • Distributed systems and fault tolerance
  • Mobile Agent-Based Network Management
  • Big Data and Business Intelligence
  • Peer-to-Peer Network Technologies
  • Cloud Computing and Resource Management
  • Distributed and Parallel Computing Systems
  • Knowledge Management and Sharing
  • Academic Research in Diverse Fields
  • Multimedia Communication and Technology
  • Digital and Cyber Forensics
  • Law, AI, and Intellectual Property
  • Natural Language Processing Techniques
  • Regional Development and Policy

Universidade Federal de Minas Gerais
2015-2024

Hospital das Clínicas da Universidade Federal de Minas Gerais
2013-2024

University of Florence
2022

Azienda Ospedaliero-Universitaria Careggi
2022

Universidade Federal de Mato Grosso do Sul
2022

Federico Villarreal National University
2022

Software602 (Czechia)
2019

Software (Germany)
2019

Universidade Federal de Lavras
2015-2016

Federal Center for Technological Education of Minas Gerais
2014

Refactoring is a widespread practice that helps developers to improve the maintainability and readability of their code. However, there limited number studies empirically investigating actual motivations behind specific refactoring operations applied by developers. To fill this gap, we monitored Java projects hosted on GitHub detect recently refactorings, asked ex- plain reasons decision refactor By applying thematic analysis collected responses, compiled catalogue 44 distinct for 12...

10.1145/2950290.2950305 preprint EN 2016-11-01

Software popularity is a valuable information to modern open source developers, who constantly want know if their systems are attracting new users, releases gaining acceptance, or they meeting user's expectations. In this paper, we describe study on the of software hosted at GitHub, which world's largest collection software. GitHub provides an explicit way for users manifest satisfaction with repository: stargazers button. our study, reveal main factors that impact number stars projects,...

10.1109/icsme.2016.31 preprint EN 2016-10-01

Refactoring is a well-known technique that widely adopted by software engineers to improve the design and enable evolution of system. Knowing which refactoring operations were applied in code change valuable information understand evolution, adapt components, merge changes, other applications. In this paper, we present RefDiff, an automated approach identifies refactorings performed between two revisions git repository. RefDiff employs combination heuristics based on static analysis...

10.1109/msr.2017.14 preprint EN 2017-05-01

Truck Factor (TF) is a metric proposed by the agile community as tool to identify concentration of knowledge in software development environments. It states minimal number developers that have be hit truck (or quit) before project incapacitated. In other words, TF helps measure how prepared deal with developer turnover. Despite its clear relevance, few studies explore this metric. Altogether there no consensus about calculate it, and supporting evidence backing estimates for systems wild. To...

10.1109/icpc.2016.7503718 preprint EN 2016-05-01

Change is a routine in software development. Like any system, libraries also evolve over time. As consequence, clients are compelled to update and, thus, benefit from the available API improvements. However, some of these changes may break contracts previously established, resulting compilation errors and behavioral changes. In this paper, we study set questions regarding breaking Our goal measure amount on real-world its impact at large-scale level. We assess (i) frequency changes, (ii)...

10.1109/saner.2017.7884616 article EN 2017-02-01

Establishing credible thresholds is a central challenge for promoting source code metrics as an effective instrument to control the internal quality of software systems. To address this challenge, we propose concept relative evaluating data following heavy-tailed distributions. The proposed are because they assume that metric should be followed by most entities, but it also natural have number entities in "long-tail" do not follow defined limits. In paper, describe empirical method...

10.1109/csmr-wcre.2014.6747177 article EN 2014-02-01

The idea behind microservices architecture is to develop a single large, complex application as suite of small, cohesive, independent services. On the other way, monolithic systems get larger over time, deviating from intended architecture, and becoming risky expensive evolve. This paper describes technique identify define on enterprise systems. As major contribution, our evaluation shows that approach was able relevant candidates become 750 KLOC banking system.

10.48550/arxiv.1605.03175 preprint EN other-oa arXiv (Cornell University) 2016-01-01

Background: Evolution of open source projects frequently depends on a small number core developers. The loss such developers might be detrimental for and even threaten their entire continuation. However, it is possible that new assume the project maintenance allow to survive. Aims: objective this paper provide empirical evidence on: 1) frequency abandonment survival, 2) differences between abandoned surviving projects, 3) motivation difficulties faced when assuming an project. Method: We...

10.1109/esem.2019.8870181 article EN 2019-09-01

In this article, the authors compare and illustrate use of three static architecture-conformance techniques: dependency-structure matrices, source code query languages, reflexion models. To highlight similarities differences between these techniques, they describe how to apply some techniques' available supporting tools specify check architectural constraints for a simple personal information management system.

10.1109/ms.2009.117 article EN IEEE Software 2009-08-21

Software Product Line (SPL) is a development paradigm that targets the creation of variable software systems. Despite increasing interest in product lines, research area usually relies on small systems implemented laboratories authors involved investigative work. This characteristic hampers broader conclusions about industry-strength lines. Therefore, order to address unavailability public and realistic this paper describes an experiment involving extraction SPL for ArgoUML, open source tool...

10.1109/csmr.2011.25 article EN 2011-03-01

Open source is experiencing a renaissance period, due to the appearance of modern platforms and workflows for developing maintaining public code. As result, developers are creating open software at speeds never seen before. Consequently, these projects also facing unprecedented mortality rates. To better understand reasons failure projects, this paper describes results survey with maintainers 104 popular GitHub systems that have been deprecated. We provide set nine projects. show some...

10.1145/3106237.3106246 preprint EN 2017-08-02

GitHub is the largest source code repository in world. It provides a git-based management platform and also many features inspired by social networks. For example, users can show appreciation to projects adding stars them. Therefore, number of direct measure its popularity. In this paper, we use multiple linear regressions predict repositories. These predictions are useful both owners clients, who usually want know how their performing competitive open development market. large-scale...

10.1145/2972958.2972966 preprint EN 2016-08-26

Extract Method is a key refactoring for improving program comprehension. However, recent empirical research shows that tools designed to automate Methods are often underused. To tackle this issue, we propose novel approach identify and rank opportunities directly automated by IDE-based tools. Our aims recommend new methods hide structural dependencies rarely used the remaining statements in original method. We conducted an exploratory study experiment define best strategies compute...

10.1145/2597008.2597141 article EN 2014-05-20

Software development increasingly relies on Application Programming Interfaces (APIs) to increase productivity. However, learning how use new APIs in many cases is a nontrivial task given their ever-increasing complexity. To help developers during the API process, we describe this paper platform - called APIMiner that instruments standard Java-based documentation format with concrete examples of usage. The are extracted from private source code repository composed by real systems and...

10.1109/wcre.2013.6671315 article EN 2013-10-01

Software engineering research now considers that no system is an island, but it part of ecosystem involving other systems, developers, users, hardware, ... When one (e.g., a framework) evolves, its clients often need to adapt. Client developers might adapt functionalities, client systems be adapted new API, users User Interface. The consequences such changes are yet unclear, what proportion the expected react, how long take for change diffuse in ecosystem, do all react same way? This paper...

10.1109/icsm.2015.7332471 preprint EN 2015-09-01

Identifying refactoring operations in source code changes is valuable to understand software evolution. Therefore, several tools have been proposed automatically detect refactorings applied a system by comparing between revisions. The availability of such infrastructure has enabled researchers study practice large scale, leading important advances on knowledge. However, although plethora programming languages are used practice, the vast majority existing studies restricted Java language due...

10.1109/tse.2020.2968072 article EN IEEE Transactions on Software Engineering 2020-01-22

Modern software development depends on APIs to reuse code and increase productivity. As most systems, these libraries frameworks also evolve, which may break existing clients. However, the main reasons introduce breaking changes in are unclear. Therefore, this paper, we report results of an almost 4-month long field study with developers 400 popular Java frameworks. We configured infrastructure observe all detect shortly after their introduction code. After identifying changes, asked explain...

10.1109/saner.2018.8330214 preprint EN 2018-03-01

GraphQL is a novel query language for implementing service-based software architectures. The gaining momentum and it now used by major companies, such as Facebook GitHub. However, we still lack empirical evidence on the real gains achieved GraphQL, particularly in terms of effort required to implement queries this language. Therefore, paper describe controlled experiment with 22 students (10 undergraduate 12 graduate), who were asked eight accessing web service, using REST. Our results show...

10.1109/icsa47634.2020.00016 article EN 2020-03-01

This paper documents a compiled version of the Qualitas Corpus named Qualitas.class Corpus. We provide Java projects for 111 systems included in corpus. also gathered large amount metrics data (such as measurements from complexity, coupling, and CK metrics) about systems. By making public, our goal is to assist researchers by removing compilation effort when conducting empirical studies.

10.1145/2507288.2507314 article EN ACM SIGSOFT Software Engineering Notes 2013-08-26

Methods implemented in incorrect classes are common bad smells object-oriented systems, especially the case of systems maintained and evolved for years. To tackle this design flaw, we propose a novel approach that recommends Move Method refactorings based on set static dependencies established by method. More specifically, our compares similarity source method with methods possible target classes. We evaluated using from compiled version Qualitas Corpus. report provides an average precision...

10.1109/wcre.2013.6671298 article EN 2013-10-01

Every day new frameworks and libraries are created existing ones evolve. To benefit from such newer or improved APIs, client developers should update their applications. In practice, this process presents some challenges: APIs commonly backward-incompatible (causing applications to fail when updating) multiple available (making it difficult decide which one use). address these challenges, we propose apiwave, a tool that keeps track of API popularity migration major frameworks/libraries. The...

10.1109/icsm.2015.7332478 article EN 2015-09-01
Coming Soon ...