Abstract
This paper describes our extension of the UML metamodel for specifying reflective software components. Reflection is a design principle that allows a system to have a representation of itself in the manner that makes it easy to adapt the system to a changing environment. It has matured to the point where it is used to address real-world problems in various areas. We describe how to document reflective components in the framework of UML. Our work allows for recognizing and understanding reflective components in the upper levels of abstraction at an earlier stage of the development process. It leverages the documentation, learning, visual modeling, reuse and roundtrip development of metalevel designs. We also demonstrate the seamless model exchange between different development tools and model continuity across development phases with application-neutral interchange formats.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
References
Object Management Group. Unified Modeling Language Specification version 1.3. OMG document number: ad/99-06-08, 1999.
W. L. Hursch and C. V. Lopes. Separation of Concerns. Technical report, NUCCS-95-03, Northeastern University, 1995.
G. Kiczales, J. Lamping, A. Mendhekar, C. Maeda C. Lopes, J-M. Loingtier, and J. Irwin. Aspect-Oriented Programming. In Proceedings of ECOOP’97. Springer LNCS 1241, 1997.
K. Czarnecki. Generative Programming: Principles and Techniques of Software Engineering based on Automated Configuration and Fragment-based Component Models. Ph.D. Thesis, Technische Universitat Ilmenau, Germany, 1998.
Xerox PARC AOP research group. The AspectJ Primer. available at http://www.parc.xerox.com/spl/projects/aop/aspectj/primer.
K. Bollert. Implementing an Aspect Weaver in Smalltalk. In Proceedings of STJA’98, 1998, available at http://www.germany.net/teilnehmer/101,199268/.
K. J. Lieberherr. The Art of Growing Adaptive Object-Oriented Software. PWS Publishing Company, 1995.
M. Aksit, K. Wakita, J. Bosch, L. Bergmans, and A. Yonezawa. Abstracting object-interactions using composition-filters. In R. Guerraoui O. Nierstrasz and M. Riveill, editors, Object-based Distributed Processing. Springer LNCS, 1993.
Y. Ichisugi and Y. Roudier. The Extensible Java Preprocessor Kit and a Tiny Data Parallel Java. In Proceedings of ISCOPE’97. Springer LNCS 1343, 1997.
S. Sonntag, H. Haertig, O. Kowalski, W. Kuehnhauser, and W. Lux. Adaptability using Reflection. In Proceedings of 27th. Annual Hawaii Int. Conf. on Sys. Sci., pages 383–392. Springer LNCS 1616, 1994.
B. C. Smith. Reflection and Semantics in Lisp. In Proceedings of ACM POPL’ 84, pages 23–35, 1984.
G. Kiczales, J. Rivieres, and D. G. Bobrow. The Art of the Metaobject Protocol. MIT Press, Cambridge, MA, 1991.
J. McAffer. Engineering the Meta Level. In Proceedings of Reflection’ 96, 1996.
S. Chiba. A Metaobject Protocol for C++. In Proceedings of OOPSLA’95, 1995.
M. Tatsubori and S. Chiba. Programming Support of Design Patterns with Compile-time Reflection. In Proceedings of Reflective Programming in C++ and Java Workshop at OOPSLA’98, 1998.
F. Buschmann, R. Meunier, H. Rohnert, P. Sommerlad, and M. Stal. A Systemof Patterns: Pattern-Oriented Software Architecture. WILEY, 1996.
P. Maes. Concepts and Experiments in Computational Reflection. In Proceedings of OOPSLA’ 87, pages 147–155, 1987.
D. P. Friedman and M. Wand. Reification: Reflection without Metaphysics. In Symposium on LISP and Functional Programming, 1984.
M.L.B Lisboa. A New Trend on the Development of Fault-Tolerant Applications: Software Meta-Level Architectures. In Proceedings of Internetional Workshop on Dependable Computing and its Applications (IFIP’98), 1998.
D. Bobrow, R. Gabriel, and J. White. CLOS in Context-The Shape of the Design Space. In A. Paepcke, editor, Object-Oriented Programming-The CLOS Perspective, page Chapter 2. MIT Press, 1993.
J. Suzuki and Y. Yamamoto. Making UML Models Interoperable with UXF. In J. Bezivin and P-A. Muller, editors, «UML»’98: Beyond the Notation. Springer LNCS 1618, 1999.
E. Gamma, R. Helm, R. Johnson, and J. Vlissides. Design Patterns. Addison-Wesley, 1995.
C. Maros, M. Campo, and A. Pirotte. Reifying Design Patterns as Metalevel Constructs. In Journal of the Argentine Society for Informatics and Operations Research. August 1999.
L. L. Ferreira and C. M. F. Rubira. The Reflective State Pattern. In Proceedings of PLoP’98, 1998.
D. Lea. Concurrent Programming in Java: Design Principle and Patterns. Addison-Wesley, 1997.
J. Suzuki and Y. Yamamoto. OpenWebServer: an Adaptive Web Server Using Software Patterns. In IEEE Communications Magazine, Vol.37, No.4, April 1999.
I. R. Forman and S. H. Danforth. Putting Metaclasses to Work. Addison-Wesley, 1998.
H. Rohnert. The Proxy Design Pattern Revisited. In J. Vlissides J. Coplien and N. Kerth, editors, Pattern Languages of Program Design 2. Addison-Wesley, 1996.
Object Management Group. Meta Object Facility. OMG document number: ad/97-08-14, November 1997.
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 1999 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Suzuki, J., Yamamoto, Y. (1999). Extending UML for Modeling Reflective Software Components. In: France, R., Rumpe, B. (eds) «UML»’99 — The Unified Modeling Language. UML 1999. Lecture Notes in Computer Science, vol 1723. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-46852-8_16
Download citation
DOI: https://doi.org/10.1007/3-540-46852-8_16
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-66712-4
Online ISBN: 978-3-540-46852-3
eBook Packages: Springer Book Archive