BARBOSA, Fernando Sérgio; AGUIAR, Ademar (2013) - Composing classes: roles vs traits. In International Conference on Evaluation of Novel Approaches to Software Engineering, 8, Tours, 4 a 6 de julho. [S. l.: s.n]. p. 1-11
Code replication has significant drawbacks in system maintenance. Code replication can have its origins in the composition limitations of the language. Several proposals have tried to overcome these limitations. A popular one is traits. However, traits do not support state or visibility control. Static roles are also a way of composing classes that has the benefits of traits and offers state, visibility control and other advantages as block renaming. We compare both approaches on how they are used to compose classes, and how they can be used to reduce code replication caused by composition limitations. As a case study we will compare how both approaches can reduce code replication by detecting and removing code clones within the JHotDraw framework. Results show that roles are capable of reducing a larger amount of replicated code than traits.