Extração e Visualização de Métricas Evolutivas em LPS: um Estudo de Caso com o Eclipse IDE
Resumo
Detectar padrões de mudança durante a evolução de sistemas de Linha de Produtos de Software (LPS) é um desafio, especialmente quando as funcionalidades são desenvolvidas em paralelo em múltiplos repositórios. Para compreender melhor essa evolução, analisamos métricas estruturais e evolutivas do projeto EclipseIDE, observando como o projeto evolui ao longo do tempo. A análise foi realizada em três etapas. Primeiramente, mapeou-se o repositório central que agrega os repositórios distribuídos das funcionalidades. Em seguida, extraímos métricas estruturais e evolutivas em nível de método para todas as funcionalidades. Por fim, as funcionalidades foram categorizadas com base em seu tamanho absoluto, tamanho médio dos métodos e grau de mudança ao longo do tempo, revelando a formação de três grupos: funcionalidades enxutas e estáveis, médias e gigantes voláteis. Também foram identificados padrões nas métricas BOM, CSB e LOC, indicando eventos de refatoração, como a adição de novos métodos, a refatoração estrutural do sistema e a consolidação de repositórios. Essa coleta de métricas e a identificação de grupos que sofrem mais modificações contribuem para evitar vieses de dados na previsão de mudanças e para apoiar a priorização de testes em sistemas de LPS.
Palavras-chave:
Linha de Produto de Software, Mineração de Repositórios de Software, Visualização de Software
Referências
Mojeeb Al-Khiaty, Radwan Abdel-Aal, and Mahmoud Elish. 2017. Abductive network ensembles for improved prediction of future change-prone classes in object-oriented software. International Arab Journal of Information Technology (IAJIT) 14, 6 (2017).
Yasser Ali Alshehri. 2020. Can We Predict the Change in Code in a Software Product Line Project? Journal of Software Engineering and Applications 13, 06 (2020), 91–103. DOI: 10.4236/jsea.2020.136007
Yasser Ali Alshehri. 2022. Predicting change in newly created files in a software product line project. Software: Practice and Experience 52, 12 (2022), 2499–2512. DOI: 10.1002/spe.2911
S. R. Chidamber and C. F. Kemerer. 1994. A Metrics Suite for Object Oriented Design. IEEE Trans. Softw. Eng. 20, 6 (June 1994), 476–493. DOI: 10.1109/32.295895
P. Clements and L. Northrop. 2002. Software Product Lines: Practices and Patterns. Addison-Wesley. [link]
ECLIPSE FOUNDATION. 2026. Eclipse IDE: The Eclipse IDE repository. [link]
Mahmoud O Elish and Mojeeb Al-Rahman Al-Khiaty. 2013. A suite of metrics for quantifying historical changes to predict future change-prone classes in object-oriented software. Journal of Software: Evolution and Process 25, 5 (2013), 407–437.
Paulo Roberto Farah, Rogério Silva, and Silvia Vergilio. 2023. An Assessment of Machine Learning Algorithms and Models for Prediction of Change-Prone Java Methods. In Proceedings of the XXXVII Brazilian Symposium on Software Engineering (Campo Grande, Brazil) (SBES ’23). Association for Computing Machinery, New York, NY, USA, 322–331. DOI: 10.1145/3613372.3613395
David Faust and Chris Verhoef. 2003. Software product line migration and deployment. Software: Practice and Experience 33, 10 (2003), 933–955.
Eduardo Figueiredo, Nelio Cacho, Claudio Sant’Anna, Mario Monteiro, Uira Kulesza, Alessandro Garcia, Sergio Soares, Fabiano Ferrari, Safoora Khan, Fernando Castor Filho, et al. 2008. Evolving software product lines with aspects: an empirical study on design stability. In Proceedings of the 30th international conference on Software engineering. 261–270.
Antonio González-Torres, Francisco J García-Peñalvo, and Roberto Therón. 2013. Human–computer interaction in evolutionary visual software analytics. Computers in Human Behavior 29, 2 (2013), 486–495.
Martin Fagereng Johansen, Øystein Haugen, Franck Fleurey, Erik Carlson, Jan Endresen, and Tormod Wien. 2012. A Technique for Agile and Automatic Interaction Testing for Product Lines. In Testing Software and Systems, Brian Nielsen and Carsten Weise (Eds.). Springer Berlin Heidelberg, Berlin, Heidelberg, 39–54.
Huzefa Kagdi, Michael L Collard, and Jonathan I Maletic. 2007. A survey and taxonomy of approaches for mining software repositories in the context of software evolution. Journal of software maintenance and evolution: Research and practice 19, 2 (2007), 77–131.
Sandeep Krishnan, Chris Strasburg, Robyn R Lutz, and Katerina Goševa-Popstojanova. 2011. Are change metrics good predictors for an evolving software product line?. In Proceedings of the 7th international conference on predictive models in software engineering. 1–10.
Miguel A Laguna and Yania Crespo. 2013. A systematic mapping study on software product line evolution: From legacy system reengineering to product line refactoring. Science of Computer Programming 78, 8 (2013), 1010–1034.
Willian Mendonça, Wesley Assunção, and Silvia Vergilio. 2024. Feature-oriented Test Case Prioritization Strategies: An Evaluation for Highly Configurable Systems. ACM (09 2024), 72–83. DOI: 10.1145/3646548.3672592
Tom Mens, Juan Fernández-Ramil, and Sylvain Degrandsart. 2008. The evolution of Eclipse. In 2008 IEEE International Conference on Software Maintenance. IEEE, 386–395.
Feifei Niu, Junqian Shao, Christoph Mayr-Dorn, Liguo Huang, Wesley K. G. Assunção, Chuanyi Li, Jidong Ge, and Alexander Egyed. 2025. Refactoring ≠ Bug-Inducing: Improving Defect Prediction with Code Change Tactics Analysis. arXiv:2507.19714 [cs.SE] [link]
Renato Lima Novais, André Torres, Thiago SoutoMendes, Manoel Mendonça, and Nico Zazworka. 2013. Software evolution visualization: A systematic mapping study. Information and Software Technology 55, 11 (2013), 1860–1883. DOI: 10.1016/j.infsof.2013.05.008
Edson A Oliveira Junior, Itana Gimenes, Jose C Maldonado, Paulo C Masiero, and Leonor Barroca. 2013. Systematic evaluation of software product line architectures. Journal of Universal Computer Science 19, 1 (2013), 25–52.
Joshua Oosterman, Warwick Irwin, and Neville Churcher. 2011. Evojava: A tool for measuring evolving software. In Proceedings of the Thirty-Fourth Australasian Computer Science Conference-Volume 113. 117–126.
Dmytro Polishchuk. 2026. QModel: A Time-Aware GitHub Mining Framework for Empirical Software Quality Studies. Research Square (2026).
Amjed Tahir, Sherlock A Licorish, and Stephen G MacDonell. 2017. Feature evolution and reuse-an exploratory study of eclipse. In 2017 24th Asia-Pacific Software Engineering Conference (APSEC). IEEE, 582–587.
Andy Zaidman, Martin Pinzger, and Arie van Deursen. 2010. Software Evolution.
Bo Zhang and Martin Becker. 2012. Code-based variability model extraction for software product line improvement. In Proceedings of the 16th International Software Product Line Conference-Volume 2. 91–98.
Yasser Ali Alshehri. 2020. Can We Predict the Change in Code in a Software Product Line Project? Journal of Software Engineering and Applications 13, 06 (2020), 91–103. DOI: 10.4236/jsea.2020.136007
Yasser Ali Alshehri. 2022. Predicting change in newly created files in a software product line project. Software: Practice and Experience 52, 12 (2022), 2499–2512. DOI: 10.1002/spe.2911
S. R. Chidamber and C. F. Kemerer. 1994. A Metrics Suite for Object Oriented Design. IEEE Trans. Softw. Eng. 20, 6 (June 1994), 476–493. DOI: 10.1109/32.295895
P. Clements and L. Northrop. 2002. Software Product Lines: Practices and Patterns. Addison-Wesley. [link]
ECLIPSE FOUNDATION. 2026. Eclipse IDE: The Eclipse IDE repository. [link]
Mahmoud O Elish and Mojeeb Al-Rahman Al-Khiaty. 2013. A suite of metrics for quantifying historical changes to predict future change-prone classes in object-oriented software. Journal of Software: Evolution and Process 25, 5 (2013), 407–437.
Paulo Roberto Farah, Rogério Silva, and Silvia Vergilio. 2023. An Assessment of Machine Learning Algorithms and Models for Prediction of Change-Prone Java Methods. In Proceedings of the XXXVII Brazilian Symposium on Software Engineering (Campo Grande, Brazil) (SBES ’23). Association for Computing Machinery, New York, NY, USA, 322–331. DOI: 10.1145/3613372.3613395
David Faust and Chris Verhoef. 2003. Software product line migration and deployment. Software: Practice and Experience 33, 10 (2003), 933–955.
Eduardo Figueiredo, Nelio Cacho, Claudio Sant’Anna, Mario Monteiro, Uira Kulesza, Alessandro Garcia, Sergio Soares, Fabiano Ferrari, Safoora Khan, Fernando Castor Filho, et al. 2008. Evolving software product lines with aspects: an empirical study on design stability. In Proceedings of the 30th international conference on Software engineering. 261–270.
Antonio González-Torres, Francisco J García-Peñalvo, and Roberto Therón. 2013. Human–computer interaction in evolutionary visual software analytics. Computers in Human Behavior 29, 2 (2013), 486–495.
Martin Fagereng Johansen, Øystein Haugen, Franck Fleurey, Erik Carlson, Jan Endresen, and Tormod Wien. 2012. A Technique for Agile and Automatic Interaction Testing for Product Lines. In Testing Software and Systems, Brian Nielsen and Carsten Weise (Eds.). Springer Berlin Heidelberg, Berlin, Heidelberg, 39–54.
Huzefa Kagdi, Michael L Collard, and Jonathan I Maletic. 2007. A survey and taxonomy of approaches for mining software repositories in the context of software evolution. Journal of software maintenance and evolution: Research and practice 19, 2 (2007), 77–131.
Sandeep Krishnan, Chris Strasburg, Robyn R Lutz, and Katerina Goševa-Popstojanova. 2011. Are change metrics good predictors for an evolving software product line?. In Proceedings of the 7th international conference on predictive models in software engineering. 1–10.
Miguel A Laguna and Yania Crespo. 2013. A systematic mapping study on software product line evolution: From legacy system reengineering to product line refactoring. Science of Computer Programming 78, 8 (2013), 1010–1034.
Willian Mendonça, Wesley Assunção, and Silvia Vergilio. 2024. Feature-oriented Test Case Prioritization Strategies: An Evaluation for Highly Configurable Systems. ACM (09 2024), 72–83. DOI: 10.1145/3646548.3672592
Tom Mens, Juan Fernández-Ramil, and Sylvain Degrandsart. 2008. The evolution of Eclipse. In 2008 IEEE International Conference on Software Maintenance. IEEE, 386–395.
Feifei Niu, Junqian Shao, Christoph Mayr-Dorn, Liguo Huang, Wesley K. G. Assunção, Chuanyi Li, Jidong Ge, and Alexander Egyed. 2025. Refactoring ≠ Bug-Inducing: Improving Defect Prediction with Code Change Tactics Analysis. arXiv:2507.19714 [cs.SE] [link]
Renato Lima Novais, André Torres, Thiago SoutoMendes, Manoel Mendonça, and Nico Zazworka. 2013. Software evolution visualization: A systematic mapping study. Information and Software Technology 55, 11 (2013), 1860–1883. DOI: 10.1016/j.infsof.2013.05.008
Edson A Oliveira Junior, Itana Gimenes, Jose C Maldonado, Paulo C Masiero, and Leonor Barroca. 2013. Systematic evaluation of software product line architectures. Journal of Universal Computer Science 19, 1 (2013), 25–52.
Joshua Oosterman, Warwick Irwin, and Neville Churcher. 2011. Evojava: A tool for measuring evolving software. In Proceedings of the Thirty-Fourth Australasian Computer Science Conference-Volume 113. 117–126.
Dmytro Polishchuk. 2026. QModel: A Time-Aware GitHub Mining Framework for Empirical Software Quality Studies. Research Square (2026).
Amjed Tahir, Sherlock A Licorish, and Stephen G MacDonell. 2017. Feature evolution and reuse-an exploratory study of eclipse. In 2017 24th Asia-Pacific Software Engineering Conference (APSEC). IEEE, 582–587.
Andy Zaidman, Martin Pinzger, and Arie van Deursen. 2010. Software Evolution.
Bo Zhang and Martin Becker. 2012. Code-based variability model extraction for software product line improvement. In Proceedings of the 16th International Software Product Line Conference-Volume 2. 91–98.
Publicado
11/09/2026
Como Citar
STREY, Kevin G.; MENDONÇA, Willian D. F.; FARAH, Paulo Roberto.
Extração e Visualização de Métricas Evolutivas em LPS: um Estudo de Caso com o Eclipse IDE. In: WORKSHOP DE VISUALIZAÇÃO, EVOLUÇÃO E MANUTENÇÃO DE SOFTWARE (VEM), 14. , 2026, São Paulo/SP.
Anais [...].
Porto Alegre: Sociedade Brasileira de Computação,
2026
.
p. 165-171.
DOI: https://doi.org/10.5753/vem.2026.33024.
