Logo
Helpone-pix
one-pixHomeManualReferencesIndexMap
 
one-pix
Home
disableddisabled
one-pix
one-pix
one-pix
 
IDD logo
one-pixone-pix
 

Introduction

 
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 address this problem but are usually limited to general and hard to enforce rules like "identifiers should be self-describing".
 
On the International Workshop on Program Comprehension (IWPC) '05 Deißenböck and Pizka (2005) presented a far more precise definition of concise and consistent identifier together with the »Identifier Dictionary (idd)« tool that supports developers in creating and maintaining the program vocabulary.
 
This web site offers early access to the still prototypical tool and basic documentation. For further information please obtain the original paper. A binary version of the idd is available from the download page. For source distributions please contact one of the authors.
one-pixone-pix
 

What is the IDD tool?

 
The idd is meant to support developers in creating and particularly in maintaining concise and consistent identifier naming.
 
The idd was inspired by Data Dictionaries and basically stores a list of all identifiers together with a human-readable description of every identifier. It is implemented as an Eclipse plug-in and collects information about all program identifiers during the usual Eclipse build process and stores it. The information taken into account includes
  • name of the identifier
  • type of the identifier
  • location of all identifier's declarations
  • location of all identifier's references
After the initial collection the developer may the assign a human-readable description to every identifier.
 
The idd features a list of support mechanism that foster good naming:
  • Global rename refactoring extends Eclipse's build-in rename refactoring functionality and allows the global renaming of all declarations and occurrences of an identifier.
  • The idd's auto-completion feature enables auto-completion for identifiers independent from the current editing scope.
  • Additional hovers display identifier information stored in the idd when placing the mouse cursor over an identifier.
one-pixone-pix
 

Benefits

 
How do the different stake holders benefit from using the idd?
  • Development: Developers can use the idd to search for already existing identifiers before creating new ones. This reduces the risk of creating synonyms and helps to choose identifier names that follow existing naming patterns. Additionally the idd allows browsing source code in an identifier-guided fashion.
  • Maintenance: The idd assists comprehension processes by enabling simple and fast lookups of meanings (or at least description) of identifiers. It also helps to locate concepts by providing a list of all relevant concepts and corresponding identifier names. So maintainers are able to browse or search for particular concepts and then locate the corresponding identifiers in the source code.
  • Quality assurance: The idd allows to review important aspects of identifiers with moderate effort. It supports conciseness checks by comparing identifier names with their description. Consistency can be reviewed by manual inspections of the identifier list and the associated descriptions and types. Further options are offered by automatically tracking changes in the idd. For example, a maintenance task resulting in dozens of new identifiers is definitely suspicious and a candidate for manual inspection.
one-pixone-pix
 

Contact

 
The idd was developed by the Competence Center Software Maintenance of the Software & Systems Engineering Chair at Technische Universität München. If you're interested in the idd please feel free to contact either Florian Deißenböck, Dr. Markus Pizka or one of the other contributors.
 
A binary version of the idd is available from the download page. For source distributions please contact one of the authors.
one-pixone-pixone-pix
 box