Abstract
Class hierarchy composition aims at constructing software systems by composing a set of class hierarchies into an executable system. Current composition algorithms cannot provide semantic guarantees. We present a composition algorithm, together with an interference criterion and its correctness proof, which guarantees that behavior of the original hierarchies is preserved for interference-free compositions. In case of interference, an impact analysis can determine the consequences of integration. The method is based on existing program analysis technology and is illustrated by various examples.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
Similar content being viewed by others
References
L. Andersen. Program Analysis and Specialization for the C Programming Language. PhD thesis, DIKU, Univ. of Copenhagen, May 1994. DIKU report 94/19.
David Binkley, Susan Horwitz, and Thomas Reps. Program integration for languages with procedure calls. ACM Transactions on Software Engineering and Methodology, pages 3–35, January 1995.
B. A. Davey and H. A. Priestley. Introduction to Lattices and Order. Cambridge University Press, 1990.
Erik Ernst. Propagating class and method combination. In Proc. European Conference on Object-Oriented programming (ECOOP99), pages 67–91, Lisboa, 1999.
William Harrison and Harold Ossher. Subject-oriented programming (a critique of pure objects). In Proceedings of the Conference on Object-Oriented Programming Systems, Languages, and Applications, pages 411–428, 1993.
Nevin Heintze and Oliver Tardieu. Ultra-fast alias analysis using CLA. In Proc. ACM SIGPLAN Symposium on Programming Language Design and Implementation (PLDI01), pages 254–263, Snowbird, Utah, 2001.
Atshushi Igarashi, Benjamin Pierce, and Philip Wadler. Featherweight Java: A minimal core calculus for Java and GJ. In Proc. SIGPLAN/ Conference an Onject-Oriented Programmin, Systems, Languages and Applications (OOPSLA’ 99), pages 132–146. ACM, November 1999.
Gregor Kiczales, Erik Hilsdale, Jim Hugunin, Mik Kersten, Jeffrey Palm, and William G. Griswold. An overview of AspectJ. In Proc. 15th European Conf. on Object-Oriented Programming (ECOOP’01), Budapest, Hungary, June 2001.
Michelle L. Lee. Change Impact Analysis of Object-Oriented Software. PhD thesis, George Mason University, 1998.
Michelle Lee and A. Jefferson Offutt. Algorithmic analysis of the impact of changes to object-oriented software. In IEEE International Conference on Software Maintenance, pages 171–184, Monterey, CA, November 1996.
Donglin Liang, Maikel Pennings, and Mary Jean Harrold. Extending and evaluating flow-insensitive and context-insensitive points-to analyses for Java. In Proc. ACM SIGPLAN/SIGSOFT Workshop on on Program Analysis for Software Tools and Engineering (PASTE’01), pages 73–79, Snowbird, Utah, 2001.
Oscar Nierstrasz and Dennis Tsichritzis (ed.). Object-Oriented Software Composition. Prentice Hall, 1995.
Tobias Nipkow and David von Oheimb. Javalight is type safe-definitely. In Proc. SIGPLAN/SIGACT Symposium on Principles of Program Languages (POPL’98), pages 161–170. ACM, January 1998.
Atanas Rountev, Ana Milanova, and Barbara G. Ryder. Points-to analysis for Java using annotated constraints. In Proc. ACM SIGPLAN Conf. on Object-Oriented Programming Systems, Languages, and Applications (OOPSLA’01), Tampa, FL, 2001.
Atanas Rountev, Barbara G. Ryder, and William Landi. Data-flow analysis of program fragments. In Proceedings of Symposium on the Foundations of Software Engineering (FSE 1999), pages 235–252, Toulouse, France, 1999.
Barbara G. Ryder and Frank Tip. Change impact analysis for object-oriented programs. In Proceedings of the ACM SIGPLAN-SIGSOFT Workshop on Program Analysis for Software Tools and Engineering (PASTE’01), pages 46–53, Snowbird, UT, June 2001.
Gregor Snelting and Frank Tip. Reengineering class hierarchies using concept analysis. In Proc. ACM SIGSOFT Symposium on the Foundations of Software Engineering, pages 99–110, Orlando, FL, November 1998.
G. Snelting and F. Tip. Understanding class hierarchies using concept analysis. ACM Trans. on Programming Languages and Systems, pages 540–582, May 2000.
Peri Tarr, Harold Ossher, William Harrison, and Stanley M. Sutton, Jr. N degrees of separation: Multi-dimensional separation of concerns. In Proceedings of the 1999 International Conference on Software Engineering, pages 107–119. IEEE Computer Society Press / ACM Press, May 1999.
Krishnaprasad Thirunarayan, Günter Kniesel, and Haripriyan Hampapuram. Simulating multiple inheritance and generics in Java. Computer Languages, 25:189–210, 1999.
Frank Tip and Jens Palsberg. Scalable propagation-based call graph construction algorithms. In Proc. ACM SIGPLAN Conf. on Object-Oriented Programming Systems, Languages, and Applications (OOPSLA’00), pages 281–293, Minneapolis, MN, 2000. SIGPLAN Notices 35(10).
Mitchell Wand, Gregor Kiczales, and Christopher Dutchyn. A semantics for advice and dynamic join points in aspect-oriented programming. October 2001.
Andreas Zeller. Yesterday my program worked. Today, it does not. Why? In Proc. of the 7th European Software Engineering Conf./7th ACM SIGSOFT Symp. on the Foundations of Software Engineering (ESEC/FSE’99), pages 253–267, Toulouse, France, 1999.
Communications of the ACM. 44(10), October 2001. Special issue on Aspect-Oriented Programming.
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2002 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Snelting, G., Tip, F. (2002). Semantics-Based Composition of Class Hierarchies. In: Magnusson, B. (eds) ECOOP 2002 — Object-Oriented Programming. ECOOP 2002. Lecture Notes in Computer Science, vol 2374. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-47993-7_24
Download citation
DOI: https://doi.org/10.1007/3-540-47993-7_24
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-43759-8
Online ISBN: 978-3-540-47993-2
eBook Packages: Springer Book Archive