Abstract: Java software or libraries can evolve via subclassing. Unfortunately, subclassing may not properly
support code adaptation when there are dependencies between classes. More precisely, subclassing in
collections of related classes may require reimplementation of otherwise valid classes. This problem is defined as
the subclassing anomaly, which is an issue when software evolution or code reuse is a goal of the programmer
who is using existing classes. Object Teams offers an implicit fix to this problem and is largely compatible with the
existing JVMs. In this paper, we evaluate how well Object Teams succeeds in providing a solution for a complex,
real world project. Our results indicate that while Object Teams is a suitable solution for simple examples, it does
not meet the requirements for large scale projects. The reasons why Object Teams fails in certain usages may
prove useful to those who create linguistic modifications in languages or those who seek new methods for code
adaptation.
Keywords: Languages; Code reuse; Subclassing
ACM Classification Keywords: D.3.2 Programming Languages: Language Classifications – Extensible
languages, object-oriented languages; D.3.3 Programming Languages: Language Constructs and Features –
Classes and objects, data types and structures, inheritance, polymorphism
Link:
HANDLING THE SUBCLASSING ANOMALY WITH OBJECT TEAMS
Jeff Furlong, Atanas Radenski
http://www.foibg.com/ijita/vol13/ijita13-1-p12.pdf