Publications

In journals

In proceedings

By years

Selected publications

  1. [1]R. Morales, F. Khomh, and G. Antoniol, “ RePOR: Mimicking Humans on Refactoring Tasks. Are We There Yet?,” Journal of Empirical Software Engineering (EMSE), 2020.
    Bibtex
      @article{DBLP:journals/emse/Morales2020,
      author = {Morales, Rodrigo and Khomh, Foutse and Antoniol, Giuliano},
      title = { RePOR: Mimicking Humans on Refactoring Tasks. Are We There Yet?,},
      journal = {Journal of Empirical Software Engineering (EMSE)},
      year = {2020}
    }
    
      
  2. [2]R. Morales, R. Saborido, F. Khomh, F. Chicano, and G. Antoniol, “EARMO: An Energy-Aware Refactoring Approach for Mobile Apps,” IEEE Transactions on Software Engineering, pp. 1–1, Jan. 2017, . doi
    Bibtex
      @article{Morales2018,
      title = {EARMO: An Energy-Aware Refactoring Approach for Mobile Apps},
      journal = {IEEE Transactions on Software Engineering},
      year = {2017},
      month = jan,
      pages = {1 - 1},
      issn = {0098-5589},
      doi = {10.1109/TSE.2017.2757486},
      url = {http://ieeexplore.ieee.org/document/8052533/http://xplorestaging.ieee.org/ielx7/32/4359463/08052533.pdf?arnumber=8052533},
      author = {Morales, Rodrigo and Saborido, Ruben and Khomh, Foutse and Chicano, Francisco and Antoniol, Giuliano}
    }
    
      
  3. [3]V. Arnaoudova, M. D. Penta, and G. Antoniol, “Linguistic Antipatterns: What They are and How Developers Perceive Them,” Empirical Software Engineering (EMSE), pp. 104–158, Jan. 2015, [Online]. Available at: /wp-content/uploads/2014/10/2014-EMSE-Arnaodova-et-al-Perception-LAs.pdf.
    Bibtex
      @article{LAsPerception-15,
      title = {Linguistic Antipatterns: What They are and How Developers Perceive Them},
      author = {Arnaoudova, Venera and Penta, Massimiliano Di and Antoniol, Giuliano},
      url = {/wp-content/uploads/2014/10/2014-EMSE-Arnaodova-et-al-Perception-LAs.pdf},
      year = {2015},
      date = {2015-01-29},
      journal = {Empirical Software Engineering (EMSE)},
      pages = {104-158},
      keywords = {developers' perception, empirical study, linguistic antipatterns, source code identifiers}
    }
    
      
    Abstract Antipatterns are known as poor solutions to recurring problems. For example, Brown et al. and Fowler define practices concerning poor design or implementation solutions. However, we know that the source code lexicon is part of the factors that affect the psychological complexity of a program, i.e., factors that make a program difficult to understand and maintain by humans. The aim of this work is to identify recurring poor practices related to inconsistencies among the naming, documentation, and implementation of an entity—called Linguistic Antipatterns (LAs)—that may impair program understanding. To this end, we first mine examples of such inconsistencies in real open-source projects and abstract them into a catalog of 17 recurring LAs related to methods and attributes1. Then, to understand the relevancy of LAs, we perform two empirical studies with developers—30 external (i.e., not familiar with the code) and 14 internal (i.e., people developing or maintaining the code). Results indicate that the majority of the participants perceive LAs as poor practices and therefore must be avoided—69% and 51% of the external and internal developers, respectively. As further evidence of LAs’ validity, open source developers that were made aware of LAs reacted to the issue by making code changes in 10% of the cases. Finally, in order to facilitate the use of LAs in practice, we identified a sub-set of LAs which were universally agreed upon as being problematic; those which had a clear dissonance between code behavior and lexicon.
  4. [4]N. Ali, Z. Sharafi, Y. G. Guéhéneuc, and G. Antoniol, “An empirical study on the importance of source code entities for requirements traceability,” Empirical Software Engineering, vol. 20, no. 2, pp. 442–478, 2015.
    Bibtex
      @article{AliSGA15,
      author = {Ali, Nasir and Sharafi, Zohreh and Gu{\'{e}}h{\'{e}}neuc, Yann Ga{\"{e}}l and Antoniol, Giuliano},
      title = {An empirical study on the importance of source code entities for requirements
                     traceability},
      journal = {Empirical Software Engineering},
      volume = {20},
      number = {2},
      pages = {442--478},
      year = {2015}
    }
    
      
    Abstract Requirements Traceability (RT) links help developers during program compre- hension and maintenance tasks. However, creating RT links is a laborious and resource- consuming task. Information Retrieval (IR) techniques are useful to automatically create traceability links. However, IR-based techniques typically have low accuracy (precision, recall, or both) and thus, creating RT links remains a human intensive process. We conjec- ture that understanding how developers verify RT links could help improve the accuracy of IR-based RT techniques to create RT links. Consequently, we perform an empirical study consisting of four case studies. First, we use an eye-tracking system to capture develop- ers’ eye movements while they verify RT links. We analyse the obtained data to identify and rank developers’ preferred types of Source Code Entities (SCEs), e.g., domain vs. implementation-level source code terms and class names vs. method names. Second, we perform another eye-tracking case study to confirm that it is the semantic content of the developers’ preferred types of SCEs and not their locations that attract developers’ atten- tion and help them in their task to verify RT links. Third, we propose an improved term weighting scheme, i.e., Developers Preferred Term Frequency/Inverse Document Frequency (DPTF/IDF), that uses the knowledge of the developers’ preferred types of SCEs to give more importance to these SCEs into the term weighting scheme. We integrate this weighting scheme with an IR technique, i.e., Latent Semantic Indexing (LSI), to create a new technique to RT link recovery. Using three systems (iTrust, Lucene, and Pooka), we show that the proposed technique statistically improves the accuracy of the recovered RT links over a technique based on LSI and the usual Term Frequency/Inverse Docu- ment Frequency (TF/IDF) weighting scheme. Finally, we compare the newly proposed DPTF/IDF with our original Domain Or Implementation/Inverse Document Frequency (DOI/IDF) weighting scheme.
  5. [5]D. Poshyvanyk, Y.-G. Guéhéneuc, A. Marcus, G. Antoniol, and V. Rajlich, “Feature Location Using Probabilistic Ranking of Methods Based on Execution Scenarios and Information Retrieval,” IEEE Trans. Software Eng., vol. 33, no. 6, pp. 420–432, 2007.
    Bibtex
      @article{journals/tse/PoshyvanykGMAR07,
      author = {Poshyvanyk, Denys and Gu{\'e}h{\'e}neuc, Yann-Ga{\"e}l and Marcus, Andrian and Antoniol, Giuliano and Rajlich, V{\'a}clav},
      title = {Feature Location Using Probabilistic Ranking of Methods Based on Execution Scenarios and Information Retrieval},
      journal = {IEEE Trans. Software Eng.},
      volume = {33},
      number = {6},
      year = {2007},
      pages = {420-432},
      ee = {http://doi.ieeecomputersociety.org/10.1109/TSE.2007.1016},
      bibsource = {DBLP, http://dblp.uni-trier.de}
    }
    
      
    Abstract This paper recasts the problem of feature location in source code as a decision-making problem in the presence of uncertainty. The solution to the problem is formulated as a combination of the opinions of different experts. The experts in this work are two existing techniques for feature location: a scenario-based probabilistic ranking of events and an information-retrieval-based technique that uses Latent Semantic Indexing. The combination of these two experts is empirically evaluated through several case studies, which use the source code of the Mozilla Web browser and the Eclipse integrated development environment. The results show that the combination of experts significantly improves the effectiveness of feature location as compared to each of the experts used independently.
  6. [6]G. Antoniol and Y.-G. Guéhéneuc, “Feature Identification: An Epidemiological Metaphor,” IEEE Trans. Software Eng., vol. 32, no. 9, pp. 627–641, 2006.
    Bibtex
      @article{01707664,
      author = {Antoniol, Giuliano and Gu{\'e}h{\'e}neuc, Yann-Ga{\"e}l},
      title = {Feature Identification: An Epidemiological Metaphor},
      journal = {IEEE Trans. Software Eng.},
      volume = {32},
      number = {9},
      year = {2006},
      pages = {627-641},
      ee = {http://doi.ieeecomputersociety.org/10.1109/TSE.2006.88},
      bibsource = {DBLP, http://dblp.uni-trier.de},
      pdf = {2006/01707664.pdf}
    }
    
      
    Abstract Feature identification is a technique to identify the source code constructs activated when exercising one of the features of a program. We propose new statistical analyses of static and dynamic data to accurately identify features in large multithreaded object-oriented programs. We draw inspiration from epidemiology to improve previous approaches to feature identification and develop an epidemiological metaphor. We build our metaphor on our previous approach to feature identification, in which we use processor emulation, knowledge-based filtering, probabilistic ranking, and metamodeling. We carry out three case studies to assess the usefulness of our metaphor, using the "save a bookmark" feature of Web browsers as an illustration. In the first case study, we compare our approach with three previous approaches (a naive approach, a concept analysis-based approach, and our previous probabilistic approach) in identifying the feature in MOZILLA, a large, real-life, multithreaded object-oriented program. In the second case study, we compare the implementation of the feature in the FIREFOX and MOZILLA Web browsers. In the third case study, we identify the same feature in two more Web browsers, Chimera (in C) and ICEBrowser (in Java), and another feature in JHOTDRAW and XFIG, to highlight the generalizability of our metaphor
  7. [7]G. Antoniol, G. Canfora, G. Casazza, A. D. Lucia, and E. Merlo, “Recovering Traceability Links between Code and Documentation,” IEEE Trans. Software Eng., vol. 28, no. 10, pp. 970–983, 2002.
    Bibtex
      @article{journals/tse/AntoniolCCLM02,
      author = {Antoniol, Giuliano and Canfora, Gerardo and Casazza, Gerardo and Lucia, Andrea De and Merlo, Ettore},
      title = {Recovering Traceability Links between Code and Documentation},
      journal = {IEEE Trans. Software Eng.},
      volume = {28},
      number = {10},
      year = {2002},
      pages = {970-983},
      ee = {http://doi.ieeecomputersociety.org/10.1109/TSE.2002.1041053},
      bibsource = {DBLP, http://dblp.uni-trier.de}
    }
    
      
    Abstract Software system documentation is almost always expressed informally in natural language and free text. Examples include requirement specifications design documents manual pages system development journals error logs and related maintenance reports. We propose a method based on information retrieval to recover traceability links between source code and free text documents. A premise of our work is that programmers use meaningful names for program items such as functions variables types classes and methods. We believe that the application-domain knowledge that programmers process when writing the code is often captured by the mnemonics for identifiers; therefore the analysis of these mnemonics can help to associate high level concepts with program concepts and vice-versa. We apply both a probabilistic and a vector space information retrieval model in two case studies to trace C++ source code onto manual pages and Java code onto functional requirements. We compare the results of applying the two models discuss the benefits and limitations and describe directions for improvements.