Paulo Roberto Farah
Current Organizations / Institutes
The organizations/institutes from the scholar's latest article
Research Subjects
Paulo Roberto Farah has a total of 7 co-authors. Here are the top co-authors by number of shared publications:
- Silvia Regina Vergilio
UFPR
3 shared publications - Rogério de Carvalho Silva
Federal University of Parana
2 shared publications - Alessandro Garcia
Pontifical Catholic University of Rio de Janeiro, Rio de Janeiro, Brazil
1 shared publication - Anderson Uchôa
Federal University of Ceará, Itapajé, Brazil
1 shared publication - Lawrence Arkoh
North Carolina State University, Raleigh, USA
1 shared publication - Vinícius Soares
Pontifical Catholic University of Rio de Janeiro, Rio de Janeiro, Brazil
1 shared publication
Latest Publications
- Open Access
- 17 June 2025
- Published by Association for Computing Machinery (ACM)
- p. 441-452
Relating Complexity, Explicitness, Effectiveness of Refactorings and Non-Functional Requirements: A Replication Study
- 17 June 2025
- Published by Association for Computing Machinery (ACM)
- p. 441-452
Open AccessRelating Complexity, Explicitness, Effectiveness of Refactorings and Non-Functional Requirements: A Replication Study
- Open Access
- 8 March 2024
- Published by Sociedade Brasileira de Computação in Journal of the Brazilian Computer Society
- Vol. 30 (1) , 421-443
On the use of Change History Data to Enhance Class Change-Proneness Prediction Models
As software evolves, new artifacts are created, modified, or removed. One of these main artifacts generated in the development of object-oriented software is the class. Classes have a very dynamic life cycle that can result in additional costs to the project. One way to mitigate this is to detect, in the early stages of the development, classes that are prone to change. Some approaches in the literature adopt Machine Learning (ML) algorithms to predict the change-proneness of a class. However, most of these approaches do not consider the temporal dependency between training instances, i.e., they consider that the instances are independent. To overcome such a limitation, this study presents an approach for predicting change-proneness based on the class change history. The approach adopts the sliding window method and is evaluated to obtain six kinds of models, which are derived by using, as predictors, different sets of metrics: structural, evolutionary, and smell-based. The evaluation uses five systems, four ML algorithms, and also explores some resample techniques to deal with imbalanced data. Regardless of the kind of model analyzed and the algorithm used, our approach overcomes the traditional one in 378 (~80) cases, out of 420, considering all systems, kinds of models, indicators, and algorithms. Moreover, the results show that our approach presents the best performance when the set of evolutionary metrics is used as predictors. There is no improvement when smell-based metrics are added. The Random Forest algorithm with the resampling technique ADA reaches the best performance among the ML algorithms evaluated.
- 8 March 2024
- Published by Sociedade Brasileira de Computação in Journal of the Brazilian Computer Society
- Vol. 30 (1) , 421-443
Open AccessOn the use of Change History Data to Enhance Class Change-Proneness Prediction Models
As software evolves, new artifacts are created, modified, or removed. One of these main artifacts generated in the development of object-oriented software is the class. Classes have a very dynamic life cycle that can result in additional costs to the project. One way to mitigate this is to detect, in the early stages of the development, classes that are prone to change. Some approaches in the literature adopt Machine Learning (ML) algorithms to predict the change-proneness of a class. However, most of these approaches do not consider the temporal dependency between training instances, i.e., they consider that the instances are independent. To overcome such a limitation, this study presents an approach for predicting change-proneness based on the class change history. The approach adopts the sliding window method and is evaluated to obtain six kinds of models, which are derived by using, as predictors, different sets of metrics: structural, evolutionary, and smell-based. The evaluation uses five systems, four ML algorithms, and also explores some resample techniques to deal with imbalanced data. Regardless of the kind of model analyzed and the algorithm used, our approach overcomes the traditional one in 378 (~80) cases, out of 420, considering all systems, kinds of models, indicators, and algorithms. Moreover, the results show that our approach presents the best performance when the set of evolutionary metrics is used as predictors. There is no improvement when smell-based metrics are added. The Random Forest algorithm with the resampling technique ADA reaches the best performance among the ML algorithms evaluated.
- Open Access
- 25 September 2023
- Published by Association for Computing Machinery (ACM)
- p. 322-331
An Assessment of Machine Learning Algorithms and Models for Prediction of Change-Prone Java Methods
Identifying which parts of code are prone to change during software evolution allows developers to prioritize and allocate resources efficiently. Having as focus a smaller scope makes easier change management and allows monitoring the type of modification and its impact. However, existing change-proneness prediction approaches are focused mainly on system classes. But the problem is that classes contain many characteristics of different software attributes and some software behaviors are more granular and better captured at the method-level. Motivated by these facts, in this paper, we empirically assess the performance of four machine learning algorithms for change-prone method prediction in seven open-source software projects. We derived and compared models obtained with three sets of independent variables (features): a set composed of structural metrics, a second set composed of evolution-based metrics, and a third that includes a combination of both kinds of metrics. The results show that, Random Forest presents the best general performance, independently of the used indicator and set of features. The model composed by both sets of metrics outperforms the other two. Two features based on the frequency of changes that happened in the evolution history of the method are point out as the most important for our problem.
- 25 September 2023
- Published by Association for Computing Machinery (ACM)
- p. 322-331
Open AccessAn Assessment of Machine Learning Algorithms and Models for Prediction of Change-Prone Java Methods
Identifying which parts of code are prone to change during software evolution allows developers to prioritize and allocate resources efficiently. Having as focus a smaller scope makes easier change management and allows monitoring the type of modification and its impact. However, existing change-proneness prediction approaches are focused mainly on system classes. But the problem is that classes contain many characteristics of different software attributes and some software behaviors are more granular and better captured at the method-level. Motivated by these facts, in this paper, we empirically assess the performance of four machine learning algorithms for change-prone method prediction in seven open-source software projects. We derived and compared models obtained with three sets of independent variables (features): a set composed of structural metrics, a second set composed of evolution-based metrics, and a third that includes a combination of both kinds of metrics. The results show that, Random Forest presents the best general performance, independently of the used indicator and set of features. The model composed by both sets of metrics outperforms the other two. Two features based on the frequency of changes that happened in the evolution history of the method are point out as the most important for our problem.
- Open Access
- 15 April 2023
- Published by Association for Computing Machinery (ACM)
- p. 119-120
PerfoRT: A Tool for Software Performance Regression
In this paper, we present PerfoRT, a tool to ease software performance regression measurement of Java systems. Its main characteristics include: minimal configuration to ease automation and hide complexity to the end user; a broad scope of performance metrics including system, process, JVM, and tracing; and presentation of the results from a developer's perspective. We show some of its features in a usage example using Apache Commons BCEL project.
- 15 April 2023
- Published by Association for Computing Machinery (ACM)
- p. 119-120
Open AccessPerfoRT: A Tool for Software Performance Regression
In this paper, we present PerfoRT, a tool to ease software performance regression measurement of Java systems. Its main characteristics include: minimal configuration to ease automation and hide complexity to the end user; a broad scope of performance metrics including system, process, JVM, and tracing; and presentation of the results from a developer's perspective. We show some of its features in a usage example using Apache Commons BCEL project.