Research interests

  • Configurable Systems, Software Families, and Product Lines
  • Software Modularity (tool-based and language-based)
  • Preprocessors
  • Static Analysis
  • Empirical Software Engineering
  • Software Testing
  • Refactoring
  • Object/Aspect-Oriented Programming

Research Group



Publications

2017
  • Flávio Medeiros, Márcio Ribeiro, Rohit Gheyi, Sven Apel, Christian Kastner, Bruno Ferreira, Luiz Carvalho, and Baldoino Fonseca. Discipline Matters: Refactoring of Preprocessor Directives in the #ifdef Hell. IEEE Transactions on Software Engineering (TSE).
  • Melina Mongiovi, Rohit Gheyi, Gustavo Soares, Márcio Ribeiro, Paulo Borba, and Leopoldo Teixeira. Detecting overly strong preconditions in refactoring engines. IEEE Transactions on Software Engineering (TSE).
  • Iago Abal, Jean Melo, Stefan Stanciulescu, Claus Brabrand, Márcio Ribeiro, and Andrzej Wasowski. Variability Bugs in Highly-Configurable Systems: A Qualitative Analysis. ACM Transactions on Software Engineering and Methodology (TOSEM).
  • Leonardo Fernandes, Márcio Ribeiro, Luiz Carvalho, Rohit Gheyi, Melina Mongiovi, André Santos, Ana Cavalcanti, Fabiano Ferrari, and José Carlos Maldonado. Avoiding Useless Mutants. In 16th International Conference on Generative Programming: Concepts & Experience (GPCE 2017), Vancouver, Canada.
  • Romero Malaquias, Márcio Ribeiro, Rodrigo Bonifácio, Eduardo Monteiro, Flávio Medeiros, Alessandro Garcia, and Rohit Gheyi. The Discipline of Preprocessor-Based Annotations Does #ifdef TAG n’t #endif Matter. In 25th International Conference on Program Comprehension (ICPC 2017), Buenos Aires, Argentina.
  • Diego Cedrim, Alessandro Garcia, Melina Mongiovi, Rohit Gheyi, Leonardo Sousa, Rafael de Mello, Baldoino Fonseca, Márcio Ribeiro, and Alexander Chávez. Understanding the Impact of Refactoring on Smells: A Longitudinal Study of 23 Software Projects. In 11th European Software Engineering Conference and the ACM SIGSOFT Symposium on the Foundations of Software Engineering (ESEC/FSE 2017), Paderborn, Germany.
  • Rohit Gheyi, Paulo Borba, Augusto Sampaio, and Márcio Ribeiro. An Idiom to Represent Data Types in Alloy. In Information and Software Technology (IST).

2016
  • Flávio Medeiros, Christian Kästner, Márcio Ribeiro, Rohit Gheyi, and Sven Apel. A Comparison of 10 Sampling Algorithms for Configurable Systems. In 38th International Conference on Software Engineering (ICSE 2016), Austin, USA.
  • Thomas Thüm, Márcio Ribeiro, Reimar Schroeter, Janet Siegmund, and Francisco Dalton. Product-Line Maintenance with Emergent Contract Interfaces. In 20th International Systems and Software Product Line Conference (SPLC 2016), Beijing, China.
  • Larissa Braz, Rohit Gheyi, Melina Mongiovi, Márcio Ribeiro, Flávio Medeiros, and Leopoldo Teixeira. A Change-Centric Approach to Compile Configurable Systems with #ifdefs. In 15th International Conference on Generative Programming: Concepts & Experience (GPCE 2016), Amsterdam, Netherlands.
  • Marcos Oliveira, Rodrigo Bonifácio, Guilherme Ramos, and Márcio Ribeiro. Unveiling and Reasoning about Co-Change Dependencies. In 15th International Conference on Modularity (Modularity 2016), Malaga, Spain.
  • Iran Rodrigues, Márcio Ribeiro, Flávio Medeiros, Paulo Borba, Rohit Gheyi, and Baldoino Fonseca. Assessing Fine-Grained Feature Dependencies. In Information and Software Technology (IST).

2015
  • Flávio Medeiros, Christian Kästner, Márcio Ribeiro, Sarah Nadi, and Rohit Gheyi. The Love/Hate Relationship with the C Preprocessor: An Interview Study. In 29th European Conference on Object-Oriented Programming (ECOOP 2015), Prague, Czech Republic.
  • Flávio Medeiros, Iran Rodrigues, Márcio Ribeiro, Leopoldo Teixeira, and Rohit Gheyi. An Empirical Study on Configuration-Related Issues: Investigating Undeclared and Unused Identifiers. In 14th International Conference on Generative Programming: Concepts & Experience (GPCE 2015), Pittsburgh, USA.
  • Rodrigo Cardoso, Márcio Ribeiro, Henrique Rebêlo, Paulo Borba, Vaidas Gasiunas, and Lucas Satabin. Assessing Idioms for a Flexible Feature Binding Time. In Computer Journal.
  • Lucas Amorim, Baldoino Fonseca, Nuno Antunes, Márcio Ribeiro, and Evandro Costa. Evaluating the Effectiveness of Decision Trees for Detecting Code Smells. In 26th IEEE International Symposium on Software Reliability Engineering (ISSRE 2015), Gaithersburg, USA.
  • Marcos Oliveira, Guilherme Ramos, Rodrigo Bonifácio, and Márcio Ribeiro. On the Conceptual Cohesion of Co-Change Clusters. In XXIX Brazilian Symposium on Software Engineering (SBES 2015), Belo Horizonte.
  • Diego Dermeval, Thyago Tenório, Ig Bittencourt, Alan Pedro da Silva, Seiji Isotani, and Márcio Ribeiro. Ontology-based Feature Modeling: An Empirical Study in Changing Scenarios. In Expert Systems with Applications (ESWA).
  • Baldoino Fonseca, Márcio Ribeiro, Viviane Torres, Christiano Braga, Carlos Lucena, and Evandro Costa. AutoRefactoring: A Platform to Build Refactoring Agents. In Expert Systems with Applications Journal (ESWA).
  • Alessandro Garcia, Rohit Gheyi, Márcio Ribeiro, and Sebastian Uchitel. Report on the First PhD and Young Researchers Warm Up Symposium for ICSE 2017. In ACM SIGSOFT Software Engineering Notes.

2014
  • Márcio Ribeiro, Paulo Borba, and Christian Kästner. Feature Maintenance with Emergent Interfaces. In 36th International Conference on Software Engineering (ICSE 2014), Hyderabad, India.
  • Melina Mongiovi, Gustavo Wagner, Rohit Gheyi, Gustavo Soares, and Márcio Ribeiro. Scaling Testing of Refactoring Engines. In 30th International Conference on Software Maintenance and Evolution (ICSME 2014), Victoria, Canada.
  • Márcio Ribeiro, Paulo Borba, and Claus Brabrand. Emergent Interfaces for Feature Modularization. Springer Briefs in Computer Science. Springer.
  • Flávio Medeiros, Márcio Ribeiro, Rohit Gheyi, and Baldoino Fonseca. Catalogue of Refactorings to Remove Incomplete Annotations. In Journal of Universal Computer Science (JUCS).
  • Rodrigo Andrade, Henrique Rebêlo, Márcio Ribeiro, and Paulo Borba. Flexible feature binding with AspectJ-based idioms. In Journal of Universal Computer Science (JUCS).

2013
  • Flávio Medeiros, Márcio Ribeiro, and Rohit Gheyi. Investigating Preprocessor-Based Syntax Errors. In 12th International Conference on Generative Programming: Concepts & Experiences (GPCE 2013), Indianapolis, USA.
  • Eric Bodden, Társis Tolêdo, Márcio Ribeiro, Claus Brabrand, Paulo Borba, and Mira Mezini. SPLlift — Statically Analyzing Software Product Lines in Minutes Instead of Years. In 34th annual ACM SIGPLAN conference on Programming Language Design and Implementation (PLDI 2013), Seattle, USA.

  • Claus Brabrand, Márcio Ribeiro, Társis Tolêdo, Johnni Winther, and Paulo Borba. Intraprocedural Dataflow Analysis for Software Product Lines. In LNCS Transactions on Aspect-Oriented Software Development, Springer, Vol. 7800, p. 73-108, 2013.
  • Alberto Costa Neto, Rodrigo Bonifácio, Márcio Ribeiro, Carlos Eduardo Pontual, Paulo Borba, and Fernando Castor. A Design Rule Language for Aspect-Oriented Programming. The Journal of Systems and Software, Vol. 86, Issue 9, p. 2333-2356, 2013.
  • Flávio Medeiros, Thiago Lima, Francisco Dalton, Márcio Ribeiro, Rohit Gheyi, and Baldoino Fonseca. Colligens: A Tool to Support the Development of Preprocessor-based Software Product Lines in C. In Tool Session of the 4th Brazilian Congress on Software (CBSoft 2013), Brasília, Brazil.

  • Rodrigo Andrade, Henrique Rebêlo, Márcio Ribeiro, and Paulo Borba. AspectJ-based Idioms for Flexible Feature Binding. In 7th Brazilian Symposium on Software Components, Architectures and Reuse (SBCARS 2013), Brasília, Brazil.

  • Baldoino Fonseca dos Santos Neto, Viviane Torres da Silva, Márcio Ribeiro, Evandro Costa, and Carlos Lucena. Using Jason to Develop Refactoring Agents. In Brazilian Conference on Intelligent Systems (BRACIS), 2013, Fortaleza, Brazil.

  • Henrique Rebêlo, Gary T. Leavens, Ricardo Massa Ferreira Lima, Paulo Borba, and Márcio Ribeiro. Modular Aspect-Oriented Design Rule Enforcement with XPIDRs.  In 12th Workshop on Foundations of Aspect-Oriented Languages (FOAL 2013), Fukuoka, Japan.

  • Henrique Rebêlo, Ricardo Lima, Uirá Kulesza, Márcio Ribeiro, Yuanfang Cai, Roberta Coelho, Cláudio Sant'Anna, and Alexandre Mota. Quantifying the Effects of Aspectual Decompositions on Design By Contract Modularization: A Maintenance Study. International Journal of Software Engineering and Knowledge Engineering, World Scientific Publishing Company, Vol. 23, p. 913-942, 2013.

2012
  • Claus Brabrand, Márcio Ribeiro, Társis Tolêdo, and Paulo Borba. Intraprocedural Dataflow Analysis for Software Product Lines. In 11th International ACM Conference on Aspect-Oriented Software Development (AOSD 2012), Potsdam, Germany.

  • Márcio Ribeiro, Társis Tolêdo, Johnni Winther, Claus Brabrand, and Paulo Borba. Emergo: A Tool for Improving Maintainability of Preprocessor-based Product Lines. In Demo track of the 11th International ACM Conference on Aspect-Oriented Software Development (AOSD 2012), Potsdam, Germany.

  • Felipe Queiroz, Márcio Ribeiro, Sérgio Soares, and Paulo Borba. Towards a Better Understanding of Feature Dependencies in Preprocessor-based Systems. In 6th Latin American Workshop on Aspect-Oriented Software Development (LA-WASP 2012) (Advanced Modularization Techniques), Natal, Brazil.

  • Henrique Rebêlo, Ricardo Lima, Alexandre Mota, César Oliveira, and Márcio Ribeiro. Enforcing Contracts for Aspect-oriented programs with Annotations, Pointcuts and Advice. In 24th International Conference on Software Engineering and Knowledge Engineering (SEKE 2012), San Francisco, USA.

  • Henrique Rebêlo, Ricardo Lima, Alexandre Mota, César Oliveira, and Márcio Ribeiro. Checking Contracts for AOP using XPIDRs. In Demo Track of the 24th International Conference on Software Engineering and Knowledge Engineering (SEKE 2012), San Francisco, USA.

2011
  • Márcio Ribeiro, Felipe Queiroz, Paulo Borba, Társis Tolêdo, Claus Brabrand, and Sérgio Soares. On the Impact of Feature Dependencies when Maintaining Preprocessor-based Software Product Lines. In 10th International Conference on Generative Programming and Component Engineering (GPCE 2011), Portland, USA.

  • Márcio Ribeiro, Társis Tolêdo, Paulo Borba, and Claus Brabrand. A Tool for Improving Maintainability of Preprocessor-based Product Lines. In Tools Session of the 2nd Brazilian Congress on Software (CBSoft 2011), São Paulo, Brazil.

  • Henrique Rebêlo, Ricardo Lima, Uirá Kulesza, Cláudio Sant'Anna, Roberta Coelho, Alexandre Mota, Márcio Ribeiro, and César Oliveira. Assessing the Impact of Aspects on Design By Contract Effort: A Quantitative Study. In 23rd International Conference on Software Engineering and Knowledge Engineering (SEKE 2011), Miami, USA.

  • Rodrigo Andrade, Márcio Ribeiro, Vaidas Gasiunas, Lucas Satabin, Henrique Rebêlo, and Paulo Borba. Assessing Idioms for Implementing Features with Flexible Binding Times. In 15th European Conference on Software Maintenance and Reengineering (CSMR 2011), Oldenburg, Germany.

2010
  • Márcio Ribeiro, Humberto Pacheco, Leopoldo Teixeira, and Paulo Borba. Emergent Feature Modularization. In Proceedings of Onward! 2010, affiliated with ACM SIGPLAN International Conference on Systems, Programming, Languages and Applications: Software for Humanity (SPLASH 2010). Reno-Tahoe, USA.

  • Márcio Ribeiro and Paulo Borba. Towards Feature Modularization. Doctoral Symposium of the ACM SIGPLAN International Conference on Systems, Programming, Languages and Applications: Software for Humanity (SPLASH 2010). Reno-Tahoe, USA.

  • Alan Pedro da Silva, Evandro Costa, Ig Ibert Bittencourt, Patrick H. S. Brito, Olavo Holanda, Jean Melo, Diego Dermeval, and Márcio Ribeiro. Ontology-Based Software Product Line for Building Semantic Web Applications. In 1st International Workshop on Knowledge-Oriented Product Line Engineering (KOPLE 2010), in conjunction with ACM SIGPLAN International Conference on Systems, Programming, Languages and Applications: Software for Humanity (SPLASH 2010). Reno-Tahoe, USA.

  • Henrique Rebêlo, Ricardo Lima, Uirá Kulesza, Roberta Coelho, Alexandre Mota, Márcio Ribeiro, and José Elias Araújo. The Contract Enforcement Aspect Pattern. of the 8th Latin American Conference on Pattern Languages of Programming (SugarLoafPLoP'10). Salvador, Brazil.

  • Márcio Ribeiro, Pedro Matos Jr., and Paulo Borba. Recommending Mechanisms for Modularizing Mobile Software Variabilities. (Book Chapter). In Handbook of Research on Mobile Software Engineering: Design Implementation and Emergent Applications. IGI Global, 2010.

2009
  • Renata Rego, Márcio Ribeiro, Emanuella Aleixo, and Renata Souza. A Self-organizing Based Approach for Bug Reports Retrieval. In Journal of Digital Information Management (JDIM), Vol. 7, No. 6, pp. 358-363. 2009.

  • Carlos Eduardo Pontual, Rodrigo Bonifácio, Henrique Rebêlo, Márcio Ribeiro, and Paulo Borba. Modularizing Variabilities with CaesarJ Collaboration Interfaces. In 3rd Workshop on Assessment of Contemporary Modularization Techniques (ACoM 2009), in conjunction with 24th ACM SIGPLAN conference on Object Oriented Programming Systems Languages and Applications (OOPSLA 2009). Orlando, USA.

  • Márcio Ribeiro, Rodrigo Cardoso, Paulo Borba, Rodrigo Bonifácio, and Henrique Rebêlo. Does AspectJ Provide Modularity when Implementing Features with Flexible Binding Times? In 3rd Latin American Workshop on Aspect-Oriented Software Development (LA-WASP 2009), in conjunction with XXIII Simpósio Brasileiro de Engenharia de Software (SBES 2009), Fortaleza, Brazil.

  • Henrique Rebêlo and Márcio Ribeiro. Guiding the use of AspectJ Advice: An Initial Assessment. In 3rd Latin American Workshop on Aspect-Oriented Software Development (LA-WASP 2009), in conjunction with XXIII Simpósio Brasileiro de Engenharia de Software (SBES 2009), Fortaleza, Brazil.

  • Márcio Ribeiro and Paulo Borba. Improving Guidance when Restructuring Variabilities in Software Product Lines. In 13th European Conference on Software Maintenance and Reengineering (CSMR 2009), Kaiserslautern, Germany.

2008
  • Márcio Ribeiro and Paulo Borba. Recommending Refactorings when Restructuring Variabilities in Software Product Lines. In 2nd ACM Workshop on Refactoring Tools (WRT 2008), in conjunction with 23rd ACM SIGPLAN conference on Object Oriented Programming Systems Languages and Applications (OOPSLA 2008), Tennessee, USA.

  • Renata Rego, Márcio Ribeiro, Emanuella Aleixo, and Renata Souza. Bug Reports Retrieval Using Self-Organizing Map. In 3rd IEEE International Conference on Digital Information Management (ICDIM 2008), London, UK.

  • Hyggo Almeida, Marcos Pereira, Márcio Ribeiro, Angelo Perkusich, Emerson Loureiro, and Evandro Costa. Developing Enterprise Applications with Support to Dynamic Unanticipated Evolution. In 20th International Conference on Software Engineering and Knowledge Engineering (SEKE 2008), San Francisco, USA.

  • Márcio Ribeiro, Pedro Matos Jr., and Paulo Borba. A Decision Model for Implementing Product Lines Variabilities. In 23rd Annual ACM Symposium on Applied Computing (SAC 2008), Fortaleza, Brazil.

2007
  • Márcio Ribeiro, Marcos Dósea, Rodrigo Bonifácio, Alberto Costa Neto, Paulo Borba, and Sérgio Soares. Analyzing Class and Crosscutting Modularity with Design Structure Matrixes. In XXI Simpósio Brasileiro de Engenharia de Software (SBES 2007), João Pessoa, Brazil.

  • Márcio Ribeiro, Pedro Matos Jr., Paulo Borba, and Ivan Cardim. On the Modularity of Aspect-Oriented and other Techniques for Implementing Product Lines Variabilities. In 1st Latin American Workshop on Aspect-Oriented Software Development (LA-WASP 2007), in conjunction with XXI Simpósio Brasileiro de Engenharia de Software (SBES 2007), João Pessoa, Brazil.

  • Alberto Costa Neto, Márcio Ribeiro, Marcos Dósea, Rodrigo Bonifácio, Paulo Borba, and Sérgio Soares. Semantic Dependencies and Modularity of Aspect-Oriented Software. In 1st Workshop on Assessment of Contemporary Modularization Techniques (ACoM 2007), in conjunction with 29th International Conference on Software Engineering (ICSE 2007). Minneapolis, USA.

2005
  • Leandro Melo de Sales, Felipe Barros Pontes, Luiz Eugênio Fernandes Tenório, Márcio Ribeiro, Evandro Costa, and Henrique Pacca Loureiro Luna. ArCoLIVE: uma ferramenta de código livre baseada em componentes para videoconferência. In II Simpósio Brasileiro de Sistemas de Informação (SBSI 2005), Florianópolis, Brazil.

  • Márcio Ribeiro, Felipe Barros Pontes, Leandro Melo de Sales, Talita Perciano Costa Leite, and Alejandro C. Frery. RSwing: uma biblioteca de componentes de código livre para geração de gráficos estatísticos. In X Congresso Estadual de Informática e Telecomunicações (SUCESU 2005), Cuiabá, Brazil.