Abstract

In order to give the code entities of a software system a discernible and recognizable face, this paper presents
Software Feathers, an approach for mapping characteristics of object-oriented code entities to features of artificially
generated feathers. A parameterized drawing algorithm is described that generates pseudo-realistic
feathers as 2D graphics. The parameters of the feathers are connected to characteristic software metrics measuring,
among others, the size, complexity, and quality of interfaces and classes. Applying the approach
demonstrates that categories of code entities can be discerned, problems in the code can be detected, and the
evolution of code can be studied. A promising application is embedding the feathers into documentation and
IDEs for improving navigation and unobtrusively educating software developers in software metrics.