  Unknowingly, identifiers in the source code of a software system play a vital
role in determining the quality of the system. Ambiguous and confusing
identifier names lead developers to not only misunderstand the behavior of the
code but also increases comprehension time and thereby causes a loss in
productivity. Even though correcting poor names through rename operations is a
viable option for solving this problem, renaming itself is an act of rework and
is not immune to defect injection.
  In this study, we aim to understand the motivations that drive developers to
name and rename identifiers and the decisions they make in determining the
name. Using our results, we propose the development of a linguistic model that
determines identifier names based on the behavior of the identifier. As a
prerequisite to constructing the model, we conduct multiple studies to
determine the features that should feed into the model. In this paper, we
discuss findings from our completed studies and justify the continuation of
research on this topic through further studies.
