2022
Zampetti, Fiorella; Mudbhari, Saghan; Arnaoudova, Venera; Penta, Massimiliano Di; Panichella, Sebastiano; Antoniol, Giuliano
Using Code Reviews to Automatically Configure Static Analysis Tools Journal Article
In: Empirical Software Engineering (EMSE), vol. 11, iss. 1, 2022.
Abstract | Links | BibTeX | Tags: automated tool configuration, Code Review, static analysis
@article{Zampetti:emse21:ConfiguringSAT,
title = {Using Code Reviews to Automatically Configure Static Analysis Tools},
author = {Fiorella Zampetti and Saghan Mudbhari and Venera Arnaoudova and Massimiliano {Di Penta} and Sebastiano Panichella and Giuliano Antoniol},
url = {http://35.88.184.16/wp-content/uploads/2021/10/2021-EMSE-Auto-SCAT.pdf},
year = {2022},
date = {2022-01-01},
urldate = {2021-10-22},
journal = {Empirical Software Engineering (EMSE)},
volume = {11},
issue = {1},
abstract = {Developers often use Static Code Analysis Tools (SCAT) to au- tomatically detect different kinds of quality flaws in their source code. Since many warnings raised by SCATs may be irrelevant for a project/organization, it can be possible to leverage information from the project development his- tory, to automatically configure which warnings a SCAT should raise, and which not. In this paper, we propose an automated approach (Auto-SCAT) to leverage (statement-level) code review comments for recommending SCAT warnings, or warning categories, to be enabled. To this aim, we trace code review comments onto SCAT warnings by leveraging their descriptions and messages, as well as review comments made in other different projects. We apply Auto-SCAT to study how CheckStyle, a well-known SCAT, can be con- figured in the context of six Java open source projects, all using Gerrit for handling code reviews. Our results show that, Auto-SCAT is able to classify code review comments into CheckStyle checks with a precision of 61% and a recall of 52%. While considering also the code review comments not re- lated to CheckStyle warnings Auto-SCAT has a precision and a recall of ≈ 75%. Furthermore, Auto-SCAT can configuring CheckStyle with a precision of 72.7% at checks level and a precision of 96.3% at category level. Finally, our findings highlight that Auto-SCAT outperforms state-of-art baselines based on default CheckStyle configurations, or leveraging the history of previously- removed warnings.
},
keywords = {automated tool configuration, Code Review, static analysis},
pubstate = {published},
tppubtype = {article}
}
2021
Peruma, Anthony; Arnaoudova, Venera; Newman, Christian
IDEAL: An Open-Source Identifier Name Appraisal Tool Proceedings Article
In: Proceedings of the International Conference on Software Maintenance and Evolution (ICSME) - Demonstrations Track, pp. 599–603, 2021.
Links | BibTeX | Tags: linguistic antipatterns, program comprehension, source code identifiers, Tool
@inproceedings{Peruma:icsmeTool:IDEAL,
title = {IDEAL: An Open-Source Identifier Name Appraisal Tool},
author = {Anthony Peruma and Venera Arnaoudova and Christian Newman},
url = {http://35.88.184.16/wp-content/uploads/2021/09/2021-ICSME-tool-IDEAL-An-Open-Source-Identifier-Name-Appraisal-Tool1.pdf},
year = {2021},
date = {2021-07-17},
booktitle = {Proceedings of the International Conference on Software Maintenance and Evolution (ICSME) - Demonstrations Track},
pages = {599--603},
keywords = {linguistic antipatterns, program comprehension, source code identifiers, Tool},
pubstate = {published},
tppubtype = {inproceedings}
}
Roy, Devjeet; Fakhoury, Sarah; Arnaoudova, Venera
Re-assessing Automatic Evaluation Metrics for Code Summarization Tasks Proceedings Article
In: ACM Joint European Software Engineering Conference and Symposium on the Foundations of Software Engineering (ESEC/FSE), pp. 1105–-1116, 2021.
Links | BibTeX | Tags: automatic evaluation metrics, empirical study, machine translation, source code summarization
@inproceedings{Devjeet:fse21:BLEU,
title = {Re-assessing Automatic Evaluation Metrics for Code Summarization Tasks},
author = {Devjeet Roy and Sarah Fakhoury and Venera Arnaoudova},
url = {http://35.88.184.16/wp-content/uploads/2021/09/2021-FSE-CR-Reassessing-Automatic-Evaluation-Metrics-for-Code-Summarization-Tasks.pdf},
year = {2021},
date = {2021-05-20},
booktitle = {ACM Joint European Software Engineering Conference and Symposium on the Foundations of Software Engineering (ESEC/FSE)},
pages = {1105–-1116},
keywords = {automatic evaluation metrics, empirical study, machine translation, source code summarization},
pubstate = {published},
tppubtype = {inproceedings}
}
Fakhoury, Sarah; Roy, Devjeet; Pines, Harry; Cleveland, Tyler; Peterson, Cole S.; Arnaoudova, Venera; Sharif, Bonita; Maletic, Jonathan I.
gazel: Supporting Source Code Edits in Eye-Tracking Studies Proceedings Article
In: Proceedings of the International Conference on Software Engineering (ICSE) - Demonstrations Track, pp. 69–72, 2021.
Abstract | Links | BibTeX | Tags: eye-tracking experiment, Tool
@inproceedings{2021-ICSETool-gazel,
title = {gazel: Supporting Source Code Edits in Eye-Tracking Studies},
author = {Sarah Fakhoury and Devjeet Roy and Harry Pines and Tyler Cleveland and Cole S. Peterson and Venera Arnaoudova and Bonita Sharif and Jonathan I. Maletic},
url = {http://35.88.184.16/wp-content/uploads/2021/02/2020-ICSE-tool-PREPRINT-gazel-Supporting-Source-Code-Edits-inEye-Tracking-Studies.pdf},
year = {2021},
date = {2021-05-01},
booktitle = {Proceedings of the International Conference on Software Engineering (ICSE) - Demonstrations Track},
pages = {69--72},
abstract = {The paper presents a novel solution to capturing eye movements on source code within an IDE in the presence of edits. The solution is presented as an extension of the iTrace [9] community infrastructure and it introduces the iTrace-Atom plugin and gazel—a Python data processing pipeline that allows to track gaze information on changing source code. iTrace-Atom is evaluated via a series of simulations and is over 99% accurate at high eye-tracking speeds of over 1000Hz. Our approach completely revolutionizes the way eye tracking studies can be conducted in realistic settings all with the presence of scrolling, context switching and now editing. This opens the doors to supporting many day-to-day software engineering tasks such as bug fixing, adding new features, and refactoring.
Demo video: https://youtu.be/gyS6kKTVdbo},
keywords = {eye-tracking experiment, Tool},
pubstate = {published},
tppubtype = {inproceedings}
}
Demo video: https://youtu.be/gyS6kKTVdbo
2020
Roy, Devjeet; Zhang, Ziyi; Ma, Maggie; Arnaoudova, Venera; Panichella, Annibale; Panichella, Sebastiano; Gonzalez, Danielle; Mirakhorli, Mehdi
DeepTC-Enhancer: Improving the Readability of Automatically Generated Tests Proceedings Article
In: International Conference on Automated Software Engineering (ASE), pp. 287–298, 2020.
Links | BibTeX | Tags: empirical study, source code readability, source code summarization
@inproceedings{Devjeet:20:DeepTC-Enhancer,
title = {DeepTC-Enhancer: Improving the Readability of Automatically Generated Tests},
author = {Devjeet Roy and Ziyi Zhang and Maggie Ma and Venera Arnaoudova and Annibale Panichella and Sebastiano Panichella and Danielle Gonzalez and Mehdi Mirakhorli},
url = {http://35.88.184.16/wp-content/uploads/2020/09/2020-ASE-PREPRINT-DeepTC-Enhancer-Improving-the-Readability-of-Automatically-Generated-Tests.pdf},
year = {2020},
date = {2020-07-30},
booktitle = {International Conference on Automated Software Engineering (ASE)},
pages = {287--298},
keywords = {empirical study, source code readability, source code summarization},
pubstate = {published},
tppubtype = {inproceedings}
}
Roy, Devjeet; Fakhoury, Sarah; Lee, John; Arnaoudova, Venera
A model to detect incremental readability improvements in incremental changes Proceedings Article
In: Proceedings of the International Conference on Program Comprehension (ICPC), pp. 25–36, 2020.
Links | BibTeX | Tags: developers' perception, empirical study, machine learning, source code readability
@inproceedings{Roy:icpc20:ReadabilityModel,
title = {A model to detect incremental readability improvements in incremental changes},
author = {Devjeet Roy and Sarah Fakhoury and John Lee and Venera Arnaoudova},
url = {http://35.88.184.16/wp-content/uploads/2020/07/2020-ICPC-PREPRINT-A-Model-to-Detect-Readability-Improvements-in-Incremental-Changes.pdf},
year = {2020},
date = {2020-05-24},
booktitle = {Proceedings of the International Conference on Program Comprehension (ICPC)},
pages = {25--36},
keywords = {developers' perception, empirical study, machine learning, source code readability},
pubstate = {published},
tppubtype = {inproceedings}
}
Fakhoury, Sarah; Roy, Devjeet; Ma, Yuzhan; Arnaoudova, Venera; Adesope, Olusola
Measuring the Impact of Inconsistencies on Developers' Cognitive Load during Bug Localization Journal Article
In: Empirical Software Engineering (EMSE), vol. 25, pp. 2140–2178, 2020.
Links | BibTeX | Tags: Biometrics, empirical study, linguistic antipatterns, program comprehension
@article{Fakhoury:emse19:CognitiveLoad,
title = {Measuring the Impact of Inconsistencies on Developers' Cognitive Load during Bug Localization},
author = {Sarah Fakhoury and Devjeet Roy and Yuzhan Ma and Venera Arnaoudova and Olusola Adesope},
url = {http://35.88.184.16/wp-content/uploads/2019/07/2019-EMSE-PREPRINT-Measuring-the-Impact-of-Lexical-and-Structural-Inconsistencies-on-Developers-Cognitive-Load-during-Bug-Localization.pdf},
year = {2020},
date = {2020-05-14},
journal = {Empirical Software Engineering (EMSE)},
volume = {25},
pages = {2140--2178},
keywords = {Biometrics, empirical study, linguistic antipatterns, program comprehension},
pubstate = {published},
tppubtype = {article}
}
Roy, Devjeet; Fakhoury, Sarah; Arnaoudova, Venera
VITALSE: Visualizing Eye Tracking and Biometric Data Proceedings Article
In: Proceedings of the International Conference on Software Engineering (ICSE) - Demonstrations Track, pp. 57–60, 2020.
Links | BibTeX | Tags: Biometrics, empirical study, program comprehension, Tool
@inproceedings{Roy:icseTool:VITALSE,
title = {VITALSE: Visualizing Eye Tracking and Biometric Data},
author = {Devjeet Roy and Sarah Fakhoury and Venera Arnaoudova},
url = {http://35.88.184.16/wp-content/uploads/2020/02/2020-ICSE_Tool-PREPRINT-VITALSE-Visualizing-Eye-Tracking-and-Biometric-Data.pdf},
year = {2020},
date = {2020-05-01},
booktitle = {Proceedings of the International Conference on Software Engineering (ICSE) - Demonstrations Track},
pages = {57--60},
keywords = {Biometrics, empirical study, program comprehension, Tool},
pubstate = {published},
tppubtype = {inproceedings}
}
2019
Fakhoury, Sarah; Roy, Devjeet; Hassan, Sk. Adnan; Arnaoudova, Venera
Improving Source Code Readability: Theory and Practice Proceedings Article
In: Proceedings of the International Conference on Program Comprehension (ICPC), pp. 2–12, 2019.
Links | BibTeX | Tags: empirical study, readability, source code identifiers
@inproceedings{Fakhoury:icpc18:Readability,
title = {Improving Source Code Readability: Theory and Practice},
author = {Sarah Fakhoury and Devjeet Roy and Sk. Adnan Hassan and Venera Arnaoudova},
url = {http://35.88.184.16/wp-content/uploads/2019/03/2019-ICPC-Reverse_Engineering_Readability_Metrics.pdf},
year = {2019},
date = {2019-03-18},
booktitle = {Proceedings of the International Conference on Program Comprehension (ICPC)},
pages = {2--12},
keywords = {empirical study, readability, source code identifiers},
pubstate = {published},
tppubtype = {inproceedings}
}
2018
Fakhoury, Sarah; Ma, Yuzhan; Arnaoudova, Venera; Adesope, Olusola
The Effect of Poor Source Code Lexicon and Readability on Developers' Cognitive Load Proceedings Article
In: Proceedings of the International Conference on Program Comprehension (ICPC), pp. 286–296, 2018, (Distinguished Paper Award).
Links | BibTeX | Tags: Biometrics, empirical study, linguistic antipatterns, program comprehension, source code identifiers
@inproceedings{Fakhoury:ICPC18:CognitiveLoad,
title = {The Effect of Poor Source Code Lexicon and Readability on Developers' Cognitive Load},
author = {Sarah Fakhoury and Yuzhan Ma and Venera Arnaoudova and Olusola Adesope},
url = {http://35.88.184.16/wp-content/uploads/2018/03/2018-ICPC-Effect-lexicon-cognitive-load.pdf},
year = {2018},
date = {2018-03-03},
booktitle = {Proceedings of the International Conference on Program Comprehension (ICPC)},
pages = {286--296},
note = {Distinguished Paper Award},
keywords = {Biometrics, empirical study, linguistic antipatterns, program comprehension, source code identifiers},
pubstate = {published},
tppubtype = {inproceedings}
}
Ma, Yuzhan; Fakhoury, Sarah; Christensen, Mike; Arnaoudova, Venera; Zogaan, Waleed; Mirakhorli, Mehdi
Automatic Classification of Software Artifacts in Open-Source Applications Proceedings Article
In: Proceedings of the Working Conference on Mining Software Repositories (MSR), pp. 414–425, 2018.
Links | BibTeX | Tags: machine learning, open-source software, software artifacts
@inproceedings{Ma:MSR18:ArtifactsClassification,
title = {Automatic Classification of Software Artifacts in Open-Source Applications},
author = {Yuzhan Ma and Sarah Fakhoury and Mike Christensen and Venera Arnaoudova and Waleed Zogaan and Mehdi Mirakhorli},
url = {http://35.88.184.16/wp-content/uploads/2018/03/2018-MSR-preprint-automatic-classification-software-artifacts.pdf},
year = {2018},
date = {2018-03-02},
booktitle = {Proceedings of the Working Conference on Mining Software Repositories (MSR)},
pages = {414--425},
keywords = {machine learning, open-source software, software artifacts},
pubstate = {published},
tppubtype = {inproceedings}
}
Fakhoury, Sarah; Arnaoudova, Venera; Noiseux, Cedric; Khomh, Foutse; Antoniol, Giuliano
Keep it simple: is deep learning good for linguistic smell detection? Proceedings Article
In: Proceedings of the International Conference on Software Analysis, Evolution, and Reengineering (SANER)—REproducibility Studies and NEgative Results (RENE) Track, 2018.
Links | BibTeX | Tags: deep learning, empirical study, linguistic antipatterns, machine learning, source code identifiers, source code readability
@inproceedings{Fakhoury:saner:CNN,
title = {Keep it simple: is deep learning good for linguistic smell detection?},
author = {Sarah Fakhoury and Venera Arnaoudova and Cedric Noiseux and Foutse Khomh and Giuliano Antoniol},
url = {http://35.88.184.16/wp-content/uploads/2018/02/2018-SANER_RENE-preprint-simple-deep-learning.pdf},
year = {2018},
date = {2018-02-22},
booktitle = {Proceedings of the International Conference on Software Analysis, Evolution, and Reengineering (SANER)—REproducibility Studies and NEgative Results (RENE) Track},
keywords = {deep learning, empirical study, linguistic antipatterns, machine learning, source code identifiers, source code readability},
pubstate = {published},
tppubtype = {inproceedings}
}
2017
Sabané, Aminata; Guéhéneuc, Yann-Gaël; Arnaoudova, Venera; Antoniol, Giuliano
Fragile base-class problem, problem? Journal Article
In: Empirical Software Engineering (EMSE), vol. 22, no. 5, pp. 2612–2657, 2017.
Links | BibTeX | Tags: change proneness, empirical study, fault proneness, inheritance
@article{Sabane:emse16:FBCP,
title = {Fragile base-class problem, problem?},
author = {Aminata Sabané and Yann-Gaël Guéhéneuc and Venera Arnaoudova and Giuliano Antoniol},
url = {https://urldefense.proofpoint.com/v2/url?u=http-3A__em.rdcu.be_wf_click-3Fupn-3DKP7O1RED-2D2BlD0F9LDqGVeSILuP3Pf-2D2F66xBYhaXrLLbVQ-2D3D-5FyWA3lQa11O-2D2BAiN-2D2BPLKTKSTkgdaT552EEbnrI10AtIGfXZA2SWwt0Ta0K7qb01t-2D2Bnkg5rKs4tRfeZQclfwwgzS9CjKsm-2D2BE8XVgKY-2D2FMBEeTbI4ZBUMxgYmkYDoUeqUNbmIS8mKc68Mn5V2y5VKD2DQvzAybMlvoI-2D2FEtH9rTW9Hhrn1xOS-2D2B-2D2FoDWwNAOHe9gCqHo3Zc-2D2FzTqelwMQnNej2RwFloPdYlHFSizzTJAaI2PcH2aAqm5f-2D2FfhkkROBvlrNzi3YgY-2D2F4TRyJevfUqSpbVjiHEA-2D3D-2D3D&d=DwMFaQ&c=C3yme8gMkxg_ihJNXS06ZyWk4EJm8LdrrvxQb-Je7sw&r=M3gB2eDIMjDnNPLag7B_NDsy5HOP9LrK_38NGrK0iSc&m=9N6oWIn0OxKScz7kmYCSE7aO4YLyGQHwz_yLrYeCpPM&s=0yPHFDTvblFeC4dHQreNjBaq547xGZ7LrEnzMLOz0nU&e=},
year = {2017},
date = {2017-10-01},
journal = {Empirical Software Engineering (EMSE)},
volume = {22},
number = {5},
pages = {2612--2657},
keywords = {change proneness, empirical study, fault proneness, inheritance},
pubstate = {published},
tppubtype = {article}
}
Zogaan, Waleed; Sharma, Palak; Mirakhorli, Mehdi; Arnaoudova, Venera
Datasets from Fifteen Years of Automated Software Traceability Research (Current State, Characteristics and Quality) Proceedings Article
In: Proceedings of the International Requirements Engineering Conference, pp. 110–121, 2017.
BibTeX | Tags: datasets quality, systematic literature review, traceability
@inproceedings{Zogaan:RE17:TraceabilityDatasets,
title = {Datasets from Fifteen Years of Automated Software Traceability Research (Current State, Characteristics and Quality)},
author = {Waleed Zogaan and Palak Sharma and Mehdi Mirakhorli and Venera Arnaoudova},
year = {2017},
date = {2017-09-04},
booktitle = {Proceedings of the International Requirements Engineering Conference},
pages = {110--121},
keywords = {datasets quality, systematic literature review, traceability},
pubstate = {published},
tppubtype = {inproceedings}
}
Guerrouj, Latifa; Kermansaravi, Zeinab; Arnaoudova, Venera; Fung, Benjamin; Khomh, Foutse; Antoniol, Giuliano; Guéhéneuc, Yann-Gaël
Investigating the relation between lexical smells and change- and fault-proneness: an empirical study Journal Article
In: Software Quality Journal (SQJ), vol. 25, no. 3, pp. 641–670, 2017.
BibTeX | Tags: change proneness, fault proneness, linguistic antipatterns, source code identifiers
@article{Guerrouj:sqj2016,
title = {Investigating the relation between lexical smells and change- and fault-proneness: an empirical study},
author = {Latifa Guerrouj and Zeinab Kermansaravi and Venera Arnaoudova and Benjamin Fung and Foutse Khomh and Giuliano Antoniol and Yann-Gaël Guéhéneuc},
year = {2017},
date = {2017-09-01},
journal = {Software Quality Journal (SQJ)},
volume = {25},
number = {3},
pages = {641--670},
keywords = {change proneness, fault proneness, linguistic antipatterns, source code identifiers},
pubstate = {published},
tppubtype = {article}
}
2015
Arnaoudova, Venera; Penta, Massimiliano Di; Antoniol, Giuliano
Linguistic Antipatterns: What They are and How Developers Perceive Them Journal Article
In: Empirical Software Engineering (EMSE), vol. 21, no. 1, pp. 104–158, 2015.
Abstract | Links | BibTeX | Tags: developers' perception, empirical study, linguistic antipatterns, natural language processing, source code identifiers
@article{LAsPerception-15,
title = {Linguistic Antipatterns: What They are and How Developers Perceive Them},
author = {Venera Arnaoudova and Massimiliano {Di Penta} and Giuliano Antoniol},
url = {/wp-content/uploads/2014/10/2014-EMSE-Arnaodova-et-al-Perception-LAs.pdf},
year = {2015},
date = {2015-01-01},
journal = {Empirical Software Engineering (EMSE)},
volume = {21},
number = {1},
pages = {104--158},
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.
},
keywords = {developers' perception, empirical study, linguistic antipatterns, natural language processing, source code identifiers},
pubstate = {published},
tppubtype = {article}
}
Panichella, Sebastiano; Arnaoudova, Venera; Penta, Massimiliano Di; Antoniol, Giuliano
Would Static Analysis Tools Help Developers with Code Reviews? Proceedings Article
In: International Conference on Software Analysis, Evolution, and Reengineering (SANER), pp. 161–170, 2015.
Links | BibTeX | Tags: Code Review, empirical study, mining software repositories, static analysis
@inproceedings{Panichella:saner15:CodeReviewsWarnings,
title = {Would Static Analysis Tools Help Developers with Code Reviews?},
author = {Sebastiano Panichella and Venera Arnaoudova and Massimiliano {Di Penta} and Giuliano Antoniol},
url = {http://35.88.184.16/wp-content/uploads/2015/02/2015-SANER-Panichella-et-al-preprint.pdf},
year = {2015},
date = {2015-01-01},
booktitle = {International Conference on Software Analysis, Evolution, and Reengineering (SANER)},
pages = {161--170},
keywords = {Code Review, empirical study, mining software repositories, static analysis},
pubstate = {published},
tppubtype = {inproceedings}
}
Arnaoudova, Venera; Haiduc, Sonia; Marcus, Andrian; Antoniol, Giuliano
The Use of Text Retrieval and Natural Language Processing in Software Engineering Proceedings Article
In: Proceedings of the International Conference on Software Engineering (ICSE) - Technical Briefings, pp. 949–950, 2015.
BibTeX | Tags: information retrieval, natural language processing
@inproceedings{Arnaoudova-icseTB15-NLPinSE,
title = {The Use of Text Retrieval and Natural Language Processing in Software Engineering},
author = {Venera Arnaoudova and Sonia Haiduc and Andrian Marcus and Giuliano Antoniol},
year = {2015},
date = {2015-01-01},
booktitle = {Proceedings of the International Conference on Software Engineering (ICSE) - Technical Briefings},
pages = {949--950},
keywords = {information retrieval, natural language processing},
pubstate = {published},
tppubtype = {inproceedings}
}
2014
Arnaoudova, Venera
Towards Improving the Code Lexicon and its Consistency PhD Thesis
Polytechnique Montréal, 2014.
Links | BibTeX | Tags: developers' perception, empirical study, fault prediction, linguistic antipatterns, program comprehension, renaming, source code identifiers
@phdthesis{Arnaoudova:phd14:Lexicon,
title = {Towards Improving the Code Lexicon and its Consistency},
author = {Venera Arnaoudova},
url = {/wp-content/uploads/2014/09/2014-PhD_Thesis-Arnaoudova-LexiconConsistency.pdf},
year = {2014},
date = {2014-08-25},
school = {Polytechnique Montréal},
keywords = {developers' perception, empirical study, fault prediction, linguistic antipatterns, program comprehension, renaming, source code identifiers},
pubstate = {published},
tppubtype = {phdthesis}
}
Arnaoudova, Venera; Eshkevari, Laleh Mousavi; Penta, Massimiliano Di; Oliveto, Rocco; Antoniol, Giuliano; Guéhéneuc, Yann-Gaël
REPENT: Analyzing the Nature of Identifier Renamings Journal Article
In: IEEE Transactions on Software Engineering (TSE), vol. 40, no. 5, pp. 502–532, 2014.
Abstract | BibTeX | Tags: empirical study, mining software repositories, refactoring, renaming, source code identifiers
@article{REPENT-14,
title = {REPENT: Analyzing the Nature of Identifier Renamings},
author = {Venera Arnaoudova and Laleh {Mousavi Eshkevari} and Massimiliano {Di Penta} and Rocco Oliveto and Giuliano Antoniol and Yann-Gaël Guéhéneuc},
year = {2014},
date = {2014-01-01},
journal = {IEEE Transactions on Software Engineering (TSE)},
volume = {40},
number = {5},
pages = {502--532},
abstract = {Source code lexicon plays a paramount role in software quality: poor lexicon can lead to poor comprehensibility and even increase software fault-proneness. For this reason, renaming a program entity, i.e., altering the entity identifier, is an important activity during software evolution. Developers rename when they feel that the name of an entity is not (anymore) consistent with its functionality, or when such a name may be misleading. A survey that we performed with 71 developers suggests that 39 percent perform renaming from a few times per week to almost every day and that 92 percent of the participants consider that renaming is not straightforward. However, despite the cost that is associated with renaming, renamings are seldom if ever documented—for example, less than 1 percent of the renamings in the five programs that we studied. This explains why participants largely agree on the usefulness of automatically documenting renamings. In this paper we propose REANAMING PROGRAM ENTITIES (REPENT), an approach to automatically document—detect and classify—identifier renamings in source code. REPENT detects renamings based on a combination of source code differencing and data flow analyses. Using a set of natural language tools, REPENT classifies renamings into the different dimensions of a taxonomy that we defined. Using the documented renamings, developers will be able to, for example, look up methods that are part of the public API (as they impact client applications), or look for inconsistencies between the name and the implementation of an entity that underwent a high risk renaming (e.g., towards the opposite meaning). We evaluate the accuracy and completeness of REPENT on the evolution history of five open-source Java programs. The study indicates a precision of
88 percent and a recall of 92 percent. In addition, we report an exploratory study investigating and discussing how identifiers are renamed in the five programs, according to our taxonomy.},
keywords = {empirical study, mining software repositories, refactoring, renaming, source code identifiers},
pubstate = {published},
tppubtype = {article}
}
88 percent and a recall of 92 percent. In addition, we report an exploratory study investigating and discussing how identifiers are renamed in the five programs, according to our taxonomy.
Medini, Soumaya; Arnaoudova, Venera; Penta, Massimiliano Di; Antoniol, Giuliano; Guéhéneuc, Yann-Gaël; Tonella, Paolo
SCAN: An Approach to Label and Relate Execution Trace Segments Journal Article
In: Journal of Software: Evolution and Process (JSEP), vol. 26, no. 11, pp. 962–995, 2014.
Abstract | BibTeX | Tags: concept identification, dynamic analysis, empirical study, formal concept analysis, information retrieval
@article{SCAN-14,
title = {SCAN: An Approach to Label and Relate Execution Trace Segments},
author = {Soumaya Medini and Venera Arnaoudova and Massimiliano {Di Penta} and Giuliano Antoniol and Yann-Gaël Guéhéneuc and Paolo Tonella},
year = {2014},
date = {2014-01-01},
journal = {Journal of Software: Evolution and Process (JSEP)},
volume = {26},
number = {11},
pages = {962--995},
abstract = {Program comprehension is a prerequisite to any maintenance and evolution task. In particular, when performing feature location, developers perform program comprehension by abstracting software features and identifying the links between high-level abstractions (features) and program elements.
We present Segment Concept AssigNer (SCAN), an approach to support developers in feature location. SCAN uses a search-based approach to split execution traces into cohesive segments. Then, it labels the segments with relevant keywords and, finally, uses formal concept analysis to identify relations among segments. In a first study, we evaluate the performances of SCAN on six Java programs by 31 participants. We report an average precision of 69% and a recall of 63% when comparing the manual and automatic labels and a precision of 63% regarding the relations among segments identified by SCAN. After that, we evaluate the usefulness of SCAN for the purpose of feature location on two Java programs. We provide evidence that SCAN (i) identifies 69% of the gold set methods and (ii) is effective in reducing the quantity of information that developers must process to locate features—reducing the number of methods to understand by an average of 43% compared to the entire execution traces.},
keywords = {concept identification, dynamic analysis, empirical study, formal concept analysis, information retrieval},
pubstate = {published},
tppubtype = {article}
}
We present Segment Concept AssigNer (SCAN), an approach to support developers in feature location. SCAN uses a search-based approach to split execution traces into cohesive segments. Then, it labels the segments with relevant keywords and, finally, uses formal concept analysis to identify relations among segments. In a first study, we evaluate the performances of SCAN on six Java programs by 31 participants. We report an average precision of 69% and a recall of 63% when comparing the manual and automatic labels and a precision of 63% regarding the relations among segments identified by SCAN. After that, we evaluate the usefulness of SCAN for the purpose of feature location on two Java programs. We provide evidence that SCAN (i) identifies 69% of the gold set methods and (ii) is effective in reducing the quantity of information that developers must process to locate features—reducing the number of methods to understand by an average of 43% compared to the entire execution traces.
2013
Arnaoudova, Venera; Penta, Massimiliano Di; Antoniol, Giuliano; Guéhéneuc, Yann-Gaël
A New Family of Software Anti-Patterns: Linguistic Anti-Patterns Proceedings Article
In: Proceedings of the European Conference on Software Maintenance and Reengineering (CSMR), pp. 187–196, 2013.
Abstract | BibTeX | Tags: object-oriented programming, software antipatterns, source code identifiers, textual analysis
@inproceedings{2013-CSMR-Arnaoudova-LA,
title = {A New Family of Software Anti-Patterns: Linguistic Anti-Patterns},
author = {Venera Arnaoudova and Massimiliano {Di Penta} and Giuliano Antoniol and Yann-Gaël Guéhéneuc},
year = {2013},
date = {2013-01-01},
booktitle = {Proceedings of the European Conference on Software Maintenance and Reengineering (CSMR)},
pages = {187--196},
abstract = {Recent and past studies have shown that poor source code lexicon negatively affects software understandability, maintainability, and, overall, quality. Besides a poor usage of lexicon and documentation, sometimes a software artifact description is misleading with respect to its implementation. Consequently, developers will spend more time and effort when understanding these software artifacts, or even make wrong assumptions when they use them.
This paper introduces the definition of software linguistic antipatterns, and defines a family of them, i.e., those related to inconsistencies (i) between method signatures, documentation, and behavior and (ii) between attribute names, types, and comments. Whereas “design” antipatterns represent recurring, poor design choices, linguistic antipatterns represent recurring, poor naming and commenting choices.
The paper provides a first catalogue of one family of linguistic antipatterns, showing real examples of such antipatterns and explaining what kind of misunderstanding they can cause. Also, the paper proposes a dectector prototype for Java programs called LAPD (Linguistic Anti-Pattern Detector), and reports a study investigating the presence of linguistic antipatterns in four Java software projects.},
keywords = {object-oriented programming, software antipatterns, source code identifiers, textual analysis},
pubstate = {published},
tppubtype = {inproceedings}
}
This paper introduces the definition of software linguistic antipatterns, and defines a family of them, i.e., those related to inconsistencies (i) between method signatures, documentation, and behavior and (ii) between attribute names, types, and comments. Whereas “design” antipatterns represent recurring, poor design choices, linguistic antipatterns represent recurring, poor naming and commenting choices.
The paper provides a first catalogue of one family of linguistic antipatterns, showing real examples of such antipatterns and explaining what kind of misunderstanding they can cause. Also, the paper proposes a dectector prototype for Java programs called LAPD (Linguistic Anti-Pattern Detector), and reports a study investigating the presence of linguistic antipatterns in four Java software projects.
2012
Abebe, Surafel Lemma; Arnaoudova, Venera; Tonella, Paolo; Antoniol, Giuliano; Guéhéneuc, Yann-Gaël
Can Lexicon Bad Smells improve fault prediction? Proceedings Article
In: Proceedings of the Working Conference on Reverse Engineering (WCRE), pp. 235–244, 2012.
Abstract | BibTeX | Tags: fault prediction, lexicon bad smells, machine learning, source code identifiers
@inproceedings{2012-WCRE-Abebe-LBSfaults,
title = {Can Lexicon Bad Smells improve fault prediction?},
author = {Surafel Lemma Abebe and Venera Arnaoudova and Paolo Tonella and Giuliano Antoniol and Yann-Gaël Guéhéneuc},
year = {2012},
date = {2012-01-01},
booktitle = {Proceedings of the Working Conference on Reverse Engineering (WCRE)},
pages = {235--244},
abstract = {In software development, early identification of fault-prone classes can save a considerable amount of resources. In the literature, source code structural metrics have been widely investigated as one of the factors that can be used to identify faulty classes. Structural metrics measure code complexity, one aspect of the source code quality. Complexity might affect program understanding and hence increase the likelihood of inserting errors in a class. Besides the structural metrics, we believe that the quality of the identifiers used in the code may also affect program understanding and thus increase the likelihood of error insertion.
In this study, we measure the quality of identifiers using the number of Lexicon Bad Smells (LBS) they contain. We investigate whether using LBS in addition to structural metrics improves fault prediction. To conduct the investigation, we assess the prediction capability of a model while using i) only structural metrics, and ii) structural metrics and LBS. The results on three open source systems, ArgoUML, Rhino, and Eclipse, indicate that there is an improvement in the majority of the cases.},
keywords = {fault prediction, lexicon bad smells, machine learning, source code identifiers},
pubstate = {published},
tppubtype = {inproceedings}
}
In this study, we measure the quality of identifiers using the number of Lexicon Bad Smells (LBS) they contain. We investigate whether using LBS in addition to structural metrics improves fault prediction. To conduct the investigation, we assess the prediction capability of a model while using i) only structural metrics, and ii) structural metrics and LBS. The results on three open source systems, ArgoUML, Rhino, and Eclipse, indicate that there is an improvement in the majority of the cases.
2011
Eshkevari, Laleh Mousavi; Arnaoudova, Venera; Penta, Massimiliano Di; Oliveto, Rocco; Guéhéneuc, Yann-Gaël; Antoniol, Giuliano
An Exploratory Study of Identifier Renamings Proceedings Article
In: Proceedings of the Working Conference on Mining Software Repositories (MSR), pp. 33–42, 2011.
BibTeX | Tags: mining software repositories, renaming, software evolution, source code identifiers
@inproceedings{2011-MSR-Eshkevari-Renamings,
title = {An Exploratory Study of Identifier Renamings},
author = {Laleh {Mousavi Eshkevari} and Venera Arnaoudova and Massimiliano {Di Penta} and Rocco Oliveto and Yann-Gaël Guéhéneuc and Giuliano Antoniol},
year = {2011},
date = {2011-01-01},
booktitle = {Proceedings of the Working Conference on Mining Software Repositories (MSR)},
pages = {33--42},
keywords = {mining software repositories, renaming, software evolution, source code identifiers},
pubstate = {published},
tppubtype = {inproceedings}
}
2010
Arnaoudova, Venera; Eshkevari, Laleh Mousavi; Oliveto, Rocco; Guéhéneuc, Yann-Gaël; Antoniol, Giuliano
Physical and Conceptual Identifier Dispersion: Measures and Relation to Fault Proneness Technical Report
École Polytechnique de Montréal no. EPM-RT-2010-02, 2010.
BibTeX | Tags: entropy, fault models, information retrieval, program comprehension, source code identifiers
@techreport{2010-Polytechnique-Arnaoudova-IdentifierDispersion,
title = {Physical and Conceptual Identifier Dispersion: Measures and Relation to Fault Proneness},
author = {Venera Arnaoudova and Laleh {Mousavi Eshkevari} and Rocco Oliveto and Yann-Gaël Guéhéneuc and Giuliano Antoniol},
year = {2010},
date = {2010-01-01},
number = {EPM-RT-2010-02},
institution = {École Polytechnique de Montréal},
keywords = {entropy, fault models, information retrieval, program comprehension, source code identifiers},
pubstate = {published},
tppubtype = {techreport}
}
Arnaoudova, Venera
Improving Source Code Quality through the Definition of Linguistic Anti-patterns Proceedings Article
In: Doctoral Symposium of the Working Conference on Reverse Engineering (WCRE), pp. 285–288, 2010.
BibTeX | Tags: linguistic antipatterns, program comprehension, software quality
@inproceedings{2010-WCREphd-Arnaoudova-LinguisticAntiPatterns,
title = {Improving Source Code Quality through the Definition of Linguistic Anti-patterns},
author = {Venera Arnaoudova},
year = {2010},
date = {2010-01-01},
booktitle = {Doctoral Symposium of the Working Conference on Reverse Engineering (WCRE)},
pages = {285--288},
keywords = {linguistic antipatterns, program comprehension, software quality},
pubstate = {published},
tppubtype = {inproceedings}
}
Arnaoudova, Venera; Eshkevari, Laleh Mousavi; Oliveto, Rocco; Guéhéneuc, Yann-Gaël; Antoniol, Giuliano
Physical and Conceptual Identifier Dispersion: Measures and Relation to Fault Proneness Proceedings Article
In: Proceedings of the International Conference on Software Maintenance (ICSM) - ERA Track, pp. 1–5, 2010.
BibTeX | Tags: entropy, fault models, information retrieval, program comprehension, source code identifiers
@inproceedings{2010-ICSMera-Arnaoudova-IdentifierDispersion,
title = {Physical and Conceptual Identifier Dispersion: Measures and Relation to Fault Proneness},
author = {Venera Arnaoudova and Laleh {Mousavi Eshkevari} and Rocco Oliveto and Yann-Gaël Guéhéneuc and Giuliano Antoniol},
year = {2010},
date = {2010-01-01},
booktitle = {Proceedings of the International Conference on Software Maintenance (ICSM) - ERA Track},
pages = {1--5},
keywords = {entropy, fault models, information retrieval, program comprehension, source code identifiers},
pubstate = {published},
tppubtype = {inproceedings}
}
2009
Constantinides, Constantinos; Arnaoudova, Venera
Encyclopedia of Information Science and Technology Book Chapter
In: Khosrow-Pour, Mehdi (Ed.): Chapter Prolonging the aging of software systems, pp. 3152–3160, IGI Global, Second Edition, 2009.
BibTeX | Tags:
@inbook{2009-EIST-Constantinides-ProlongingAging,
title = {Encyclopedia of Information Science and Technology},
author = {Constantinos Constantinides and Venera Arnaoudova},
editor = {Mehdi Khosrow-Pour},
year = {2009},
date = {2009-01-01},
pages = {3152--3160},
publisher = {IGI Global},
edition = {Second Edition},
chapter = {Prolonging the aging of software systems},
keywords = {},
pubstate = {published},
tppubtype = {inbook}
}
2008
Arnaoudova, Venera; Eshkevari, Laleh Mousavi; Sharifabadi, Elaheh Safari; Constantinides, Constantinos
Overcoming comprehension barriers in the AspectJ programming language Journal Article
In: Journal of Object Technology (JOT), vol. 7, no. 6, pp. 121–142, 2008.
BibTeX | Tags: aspect-oriented programming, empirical study, program comprehension
@article{2008-JOT-Arnaoudova-AspectJ,
title = {Overcoming comprehension barriers in the AspectJ programming language},
author = {Venera Arnaoudova and Laleh {Mousavi Eshkevari} and Elaheh {Safari Sharifabadi} and Constantinos Constantinides},
year = {2008},
date = {2008-01-01},
journal = {Journal of Object Technology (JOT)},
volume = {7},
number = {6},
pages = {121--142},
keywords = {aspect-oriented programming, empirical study, program comprehension},
pubstate = {published},
tppubtype = {article}
}
Eshkevari, Laleh Mousavi; Arnaoudova, Venera; Constantinides, Constantinos
Comprehension and dependency analysis of aspect-oriented programs through declarative reasoning Proceedings Article
In: Proceedings of the International Symposium on Practical Aspects of Declarative Languages (PADL), pp. 35–52, 2008.
BibTeX | Tags: aspect-oriented programming, AspectJ, declarative reasoning, dependency analysis, program comprehension, static analysis
@inproceedings{2008-PADL-Mousavi-DependAnalysisAOP,
title = {Comprehension and dependency analysis of aspect-oriented programs through declarative reasoning},
author = {Laleh {Mousavi Eshkevari} and Venera Arnaoudova and Constantinos Constantinides},
year = {2008},
date = {2008-01-01},
booktitle = {Proceedings of the International Symposium on Practical Aspects of Declarative Languages (PADL)},
pages = {35--52},
keywords = {aspect-oriented programming, AspectJ, declarative reasoning, dependency analysis, program comprehension, static analysis},
pubstate = {published},
tppubtype = {inproceedings}
}
Arnaoudova, Venera; Constantinides, Constantinos
Adaptation of refactoring strategies to multiple axes of modularity: characteristics and criteria Proceedings Article
In: Proceedings of the International Conference on Software Engineering Research, Management and Applications (SERA), pp. 105–114, 2008.
BibTeX | Tags: Aquarium, aspect-oriented programming, modularity unit, object-oriented programming, refactoring, Ruby
@inproceedings{2008-SERA-Arnaoudova-MultipleAxesModularity,
title = {Adaptation of refactoring strategies to multiple axes of modularity: characteristics and criteria},
author = {Venera Arnaoudova and Constantinos Constantinides},
year = {2008},
date = {2008-01-01},
booktitle = {Proceedings of the International Conference on Software Engineering Research, Management and Applications (SERA)},
pages = {105--114},
keywords = {Aquarium, aspect-oriented programming, modularity unit, object-oriented programming, refactoring, Ruby},
pubstate = {published},
tppubtype = {inproceedings}
}
Ghanbari, Hamoun; Constantinides, Constantinos; Arnaoudova, Venera
A hybrid query engine for the structural analysis of Java and AspectJ programs Proceedings Article
In: Proceedings of the Working Conference on Reverse Engineering (WCRE), pp. 133–137, 2008.
BibTeX | Tags: aspect-oriented programming, AspectJ, high-level textual query language, hybrid query engine, Java, object-oriented programming, query languages, visual query interface
@inproceedings{2008-WCRE-Ghambari-QueryEngine,
title = {A hybrid query engine for the structural analysis of Java and AspectJ programs},
author = {Hamoun Ghanbari and Constantinos Constantinides and Venera Arnaoudova},
year = {2008},
date = {2008-01-01},
booktitle = {Proceedings of the Working Conference on Reverse Engineering (WCRE)},
pages = {133--137},
keywords = {aspect-oriented programming, AspectJ, high-level textual query language, hybrid query engine, Java, object-oriented programming, query languages, visual query interface},
pubstate = {published},
tppubtype = {inproceedings}
}
Arnaoudova, Venera
Defining substitutability criteria for object-oriented components Masters Thesis
Concordia University, 2008.
BibTeX | Tags:
@mastersthesis{2008-MasterThesis-Arnaoudova,
title = {Defining substitutability criteria for object-oriented components},
author = {Venera Arnaoudova},
year = {2008},
date = {2008-01-01},
school = {Concordia University},
keywords = {},
pubstate = {published},
tppubtype = {mastersthesis}
}