Genova, Italy Italy
Mar. 5, 2013 to Mar. 8, 2013
DOI Bookmark: http://doi.ieeecomputersociety.org/10.1109/CSMR.2013.28
Recent and past studies have shown that poor source code lexicon negatively affects software understand ability, 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.
Textual analysis of software artifacts, Software antipatterns, Source code lexicon
Venera Arnaoudova, Massimiliano Di Penta, Giuliano Antoniol, Yann-Gael Gueheneuc, "A New Family of Software Anti-patterns: Linguistic Anti-patterns", CSMR, 2013, 2011 15th European Conference on Software Maintenance and Reengineering, 2011 15th European Conference on Software Maintenance and Reengineering 2013, pp. 187-196, doi:10.1109/CSMR.2013.28