, Volume 14, Issue 3, pp 261-282

Concise and consistent naming

Rent the article at a discount

Rent now

* Final gross prices may vary according to local VAT.

Get Access


Approximately 70% of the source code of a software system consists of identifiers. Hence, the names chosen as identifiers are of paramount importance for the readability of computer programs and therewith their comprehensibility. However, virtually every programming language allows programmers to use almost arbitrary sequences of characters as identifiers which far too often results in more or less meaningless or even misleading naming. Coding style guides somehow address this problem but are usually limited to general and hard to enforce rules like “identifiers should be self-describing”. This paper renders adequate identifier naming far more precisely. A formal model, based on bijective mappings between concepts and names, provides a solid foundation for the definition of precise rules for concise and consistent naming. The enforcement of these rules is supported by a tool that incrementally builds and maintains a complete identifier dictionary while the system is being developed. The identifier dictionary explains the language used in the software system, aids in consistent naming, and supports programmers by proposing suitable names depending on the current context.

Part of this work was sponsored by the German Federal Ministry for Education and Research (BMBF) as part of the project VSEK (www.software-kompetenz.de).
Florian Deissenboeck is a research assistant in the Software & Systems Engineering group of Prof. M. Broy at the Technische Universität München. Currently he works on his PhD thesis about software quality controlling. His academic interests lie in software maintenance, software product quality and program comprehension. He studied computer science at the Technische Universität München and the Asian Institute of Technology, Bangkok.
Markus Pizka received a Dr. degree from the Technische Universität München for his work on Distributed Operating Systems in 1999. During this work he extended GNU GCC, Linux and other Open Source Software packages. He lateron shared his experiences in compilers and reverse engineering with Microsoft Research, Cambridge and went on as a project leader for a large German software company. In 2001 he rejoined the Technische Universität München as an assistant professor and shaped a software maintenance curriculum. In 2003, he founded itestra, a German software consultancy providing commercial software reengineering services.