Abstract
Component systems require flexible composition of components. In contrast to current systems which only support a fixed set of composition mechanisms, future systems should provide a composition language in which users can define their own specific composers. For an object-oriented setting, we argue that this will be possible by meta-programming the class-graph.
Composers will be based on two major elements. First, they will express coupling with graph-based operators which transform parts of the class-graph (coupling design patterns). Second, during these transformations, elementary meta-operators will be used to transform data and code, rearranging slots and methods of their parameter-components. Thus during their reuse, components are queried by introspection and transformed by meta-programming.
Meta-programming composers generalize connectors in architectural languages. They encapsulate context-dependent aspects of a system, so that components become independent of context and can be reused more flexibly.
Keywords
Download to read the full chapter text
Chapter PDF
References
Mehmet Aksit, Lodewijk Bergmans, and Sinan Vural. An object-oriented language-database integration model: The composition-filters approach. In Ole Lehrmann Madsen, editor, Proceedings of the 6th European Conference on Object-Oriented Programming (ECOOP), volume 615 of Lecture Notes in Computer Science, pages 372–395, Berlin, Heidelberg, New York, Tokyo, June 1992. Springer-Verlag.
Robert J. Allen. A Formal Approach to Software Architecture. PhD thesis, Carnegie Mellon University, May 1997. CMU-CS97–144.
Uwe Assmann. On Edge Addition Rewrite Systems and Their Relevance to Program Analysis. In Janice Cuny, Hartmut Ehrig, Gregor Engels, and Grzegorz Rozenberg, editors, 5th Int. Workshop on Graph Grammars and Their Application To Computer Science, Williamsburg, volume 1073 of Lecture Notes in Computer Science, pages 321–335, Heidelberg, November 1994. Springer.
Uwe Assmann. Meta-programming Composers In Second-Generation Component Systems. Technical Report 17, Universität Karlsruhe, September 1997.
Lodewijk M. J. Bergmans. Composing concurrent objects. PhD thesis, University of Twente, Enschede, 1994.
Judy Bishop and Robert Faria. Connectors in configuration programming languages: are they necessary? In 3rd International Conference on Configurable Distribute systems. IEEE Press, May 1996.
Dorothea Blostein, Hoda Fahmy, and Ann Grbavec. Practical Use of Graph Rewriting. Technical Report Queens University, Kingston, Ontario, November 1994.
F. J. Budinsky, M. A. Finnie, J. M. Vlissides, and P. S. Yu. Automatic code generation from design patterns. IBM Systems Journal, 35 (2): 151–171, 1996.
Jan Bosch. The layered object model. PhD thesis, University Twente, 1995.
Jan Bosch. Adapting object-oriented components. In M. Aksit et al., editor, ECOOP Workshop on Component Systems, June 1997.
David Garlan, Robert Allen, and John Ockerbloom. Architectural mismatch: why reuse is so hard. IEEE Software, 12 (6): 17–26, November 1995.
Erich Gamma, Richard Helm, Ralph Johnson, and John Vlissides. Design Patterns: Elements of Reusable Object-Oriented Software. Addison Wesley, Massachusetts, 1994.
David Garlan and Mary Shaw. An Introduction to Software Architecture, volume 1, pages 1–40. World Scientific Publishing Company, 1993.
Java Soft. Java Beans ™. http://java.sun.com/beans, December 1996. Version 1.00-A.
Gregor Kiczales. Aspect-oriented programming. ACM Computing Surveys, 28 (4), December 1996.
Gregor Kiczales and Andreas Paepcke. Open implementations and metaobject protocols. Technical report, Xerox PARC, 1997.
Karl J. Lieberherr, Ignacio Silva-Lepe, and Cun Xiao. Adaptive object-oriented programming using graph-based customization. Communications of the ACM, 37 (5): 94–101, May 1994.
Jeff Magee, Naranker Dulay, and Jeffrey Kramer. Structuring parallel and distributed programs In Proceedings of the International Workshop on Configurable Distributed Systems, London, March 1992.
Oscar Nierstrasz. Research topics in software composition. In Proceedings, Langages et Modèles à Objets, pages 193–204, Nancy, October 1995.
Oscar Nierstrasz and Theo Dirk Meijler. Research directions in software composition. ACM Computing Surveys, 27 (2): 262–264, June 1995.
Dirk Riehle. The event notification pattern — integrating implicit invocation with object-orientation. Theory and Practice of Object Systems, 2 (1): 43–52, 1996.
Mary Shaw, Robert DeLine, D.V. Klein, T.L. Ross, D.M. Young, and G Zelesnik. Abstractions for software architecture and tools to support them. IEEE Transactions on Software Engineering, pages 314–335, April 1995.
Kevin J. Sullivan and David Notkin. Reconciling environment integration and software evolution. ACM Transactions of Software Engineering and Methodology, 1 (3): 229–269, July 1992.
Linda M. Seiter, Jens Palsberg, and Karl J. Lieberherr. Evolution of Object Behavior using Context Relations. In David Garlan, editor, 4th ACM SIGSOFT Symposium on the foundations of Software Engineering, pages 46–57, October 1996.
Walter F. Tichy. Classification of Design Patterns. Lecture slides, January 1997, Universität Karlsruhe. http://wwwipd.ira.uka.de/-tichy/entwurfsmuster.html.
Steven J. Vaughan-Nichols. ActiveX chases Java. BYTE Magazine, 21 (6): 27–27, June 1996.
Wolfgang Weck. Inheritance Using Contracts and Object Composition. In WCOP Workshop on component-based systems at ECOOP 97, June 1997.
Walter Zimmer. Frameworks und Entwurfsmuster. PhD thesis, Universitt Karlsruhe, February 1997.
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 1998 IFIP
About this chapter
Cite this chapter
Assmann, U. (1998). Meta-programming composers in second-generation component systems. In: Horspool, R.N. (eds) Systems Implementation 2000. IFIP Advances in Information and Communication Technology. Springer, Boston, MA. https://doi.org/10.1007/978-0-387-35350-0_17
Download citation
DOI: https://doi.org/10.1007/978-0-387-35350-0_17
Publisher Name: Springer, Boston, MA
Print ISBN: 978-1-5041-2873-5
Online ISBN: 978-0-387-35350-0
eBook Packages: Springer Book Archive