Handling the subclassing anomaly with Object Teams
Abstract
Existing 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 JVM's. 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.
References
[1]
Clifton, C., Leavens, G., Chambers, C., and Millstein, T., 2000. MultiJava: Modular Open Classes and Symmetric Multiple Dispatch for Java. OOPSLA'00, Minneapolis, Minnesota, October 2000, ACM Press, New York, 130--145. Available from <http://www.cs.iastate.edu/~cclifton/multijava-data/papers/TR00-06.pdf>
[2]
Herrmann, S., 2004. Confinement and Representation Encapsulation in Object Teams. Technical Report June 2004, Technical University Berlin. Available from <http://www.objectteams.org/publications/TR2004-06.pdf>.
[3]
Jikes Homepage. <http://www-124.ibm.com/developerworks/oss/jikes/>.
[4]
Joy, B., et al. 2000. Java Language Specification, Addison-Wesley Pub Co, New York, New York.
[5]
Laffra, C., 2003. Java Bytecode Manipulation with JikesBT.
[6]
Nystrom N., S. Chong, and A. Myers. Scalable extensibility via nested inheritance. Proceedings of Object Oriented Programming, Systems, Languages, and Applications, OOPLSA 04, October 24-8, 2004, Vancouver, British Columbia, ACM, 99--115.
[7]
Object Teams Language Definition. <http://www.objectteams.org/def/index.html>.
[8]
Palsberg J., and Jay, C. B., 1997. The essence of the visitor pattern. Technical Report 05, University of Technology, Sydney, Australia.
[9]
Radenski, A., 2004. Anomaly-Free Component Adaptation with Class Overriding, Journal of Systems and Software 71 (2004), 37--48.
[10]
Radenski, A., 2003. The Subclassing Anomaly in Compiler Evolution. International Journal on Information Theories and Applications, Institute of Information Theories and Applications, Sofia, Vol. 10, No 4, 2003, 394--399.
[11]
Tatsubori, M., 1999. An Extension Mechanism for the Java Language. Master's dissertation, University of Tsukuba, Tsukuba City, Japan. Available from <http://www.csg.is.titech.ac.jp/openjava/papers/mich_thesis99.pdf>.
[12]
Watt, D. and Brown, D., 2000. Programming Language Processors in Java: Compilers and Interpreters, Prentice Hall, New York, New York.
[13]
Zenger, M., 2002. Evolving software with extensible modules. In: International Workshop on Unanticipated Software Evolution, Málaga, Spain. Available from <http://zenger.gmxhome.de/papers/use02.pdf>.
Index Terms
- Handling the subclassing anomaly with Object Teams
Comments
Please enable JavaScript to view thecomments powered by Disqus.Information & Contributors
Information
Published In
Copyright © 2005 Authors.
Publisher
Association for Computing Machinery
New York, NY, United States
Publication History
Published: 01 August 2005
Published in SIGPLAN Volume 40, Issue 8
Check for updates
Qualifiers
- Article
Contributors
Other Metrics
Bibliometrics & Citations
Bibliometrics
Article Metrics
- 0Total Citations
- 155Total Downloads
- Downloads (Last 12 months)0
- Downloads (Last 6 weeks)0
Reflects downloads up to 11 Dec 2024
Other Metrics
Citations
View Options
Login options
Check if you have access through your login credentials or your institution to get full access on this article.
Sign in