Abstract
Configuration Programming, based on Architecture Description Languages, and Meta-Level Programming are considered promising approaches in the software engineering field. This paper shows that there is an immediate correspondence between some key concepts of Configuration and Meta-Level Programming approaches and that some of the main issues to be solved for their deployment in real systems are quite similar. The main result is that the integration of both approaches in a single configuration programming framework can assist in employing meta-level programming in order to achieve separation of concerns and improve software reuse. In addition, the capability of supporting dynamic configuration and flexibility on component programming language choice are potentially improved. A prototype of a configuration programming centered environment and some application examples are presented in order to demonstrate the useful features of the combined approach.
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
Robert Allen and David Garlan. A Formal Basis for Architectural Connection. ACM Transactions on Software Engineering and Methodology, July 1997.
Mark Astley and Gul A. Agha. Customization and Composition of Distributed Objects: Middleware Abstractions for Policy Management. ACM Software Engineering Notes, 23(6):1–9, 1998.
Lodewijk Bergmans. Composing Concurrent Objects-Applying Composition Filters for the Development And Reuse of Concurrent Object-Oriented Programming. PhD thesis, Department of Computer Science, University of Twente, The Netherlands, 1994.
S. T. Carvalho. Integrating Design Patterns in Software Architectures. Research report, IC/UFF, Brazil, 1999. In Portuguese.
Walter Cazzola, Andrea Savigni, Andrea Sosio, and Francesco Tisato. Architectural Reflection: Concepts, Design, and Evaluation. Technical Report RIDSI 234-99, DSI, University degli Studi di Milano, May 1999. Available at http://www.disi.unige.it/person/CazzolaW/references.html.
Shigeru Chiba. A Meta-Object Protocol for C++. In Proceedings of the 10th Annual Conference on Object-Oriented Programming Systems, Languages, and Applications (OOPSLA’95), volume 30 of Sigplan Notices, pages 285–299, Austin, Texas, USA, October 1995. ACM.
Jean-Charles Fabre, Vincent Nicomette, Tanguy Pérennou, Robert J. Stroud, and Zhixue Wu. Implementing Fault Tolerant Applications Using Reflective Object-Oriented Programming. In Proceedings of FTCS-25 “Silver Jubilee”, Pasadena, CA USA, June 1995. IEEE.
Joni Fraga, Carlos A. Maziero, Lau Cheuk Lung, and Orlando G. Loques. Implementing Replicated Services in Open Systems Using a Reflective Approach. In Proceedings of the Third International Symposium on Autonomous Decentralized Systems, pages 273–280, Berlin, Germany, 1997.
Svend Frølund and Jari Koistinen. Quality-of-Service Specification in Distributed Object Systems. Distributed Systems Engineering Journal, 5:179–202, 1998.
Eric Gamma, Richard Helm, Ralph Johnson, and Richard Vlissides. Design Patterns: Elements of Reusable Object-Oriented Software. Addison-Wesley. Reading, MA, 1994.
Michael Gölm. Design and Implementation of a Meta Architecture for Java. Master’s thesis, University of Erlangen-Nurnberg, Germany, January 1997.
Richard Helm, Ian Holland, and Dipayan Gangopadhyay. Contracts: Specifying Behavioral Compositions in Object-Oriented Systems. In Proceedings of OOPSLA’90, pages 303–311, October 1990.
Gregor Kiczales and Cristina Videira Lopes. Aspect-Oriented Programming with AspectJ. Xerox Parc http://www.parc.xerox.com/aop, 1998.
Fabio Kon and Roy H. Campbell. Supporting Automatic Configuration of Component-Based Distributed Systems. In Proceedings of the 5th USENIX Conference on Object-Oriented Technologies and Systems, San Diego, CA, USA, 1999.
Jeff Kramer and Jeff Magee. The Evolving Philosophers Problem: Dynamic Change Management. IEEE Transactions on Software Engineering, 16(11):1293–1306, 1991.
Jeff Kramer and Jeff Magee. Dynamic Structure in Software Architectures. In Proceedings of the Fourth ACM Sigsoft Symposium On Foundations of Software Engineering, California, USA, October 1996.
Jeff Kramer and Jeff Magee. Exposing the Skeleton in the Coordination Closet. In Proceedings of Coordination’97, Berlin, Germany, 1997.
John Lamping. The Interaction of Components and Aspects. In Cristina Videira Lopes, Kim Mens, Bedir Tekinerdogan, and Gregor Kiczales, editors, Proceedings of ECOOP Aspect-Oriented Programming Workshop, page June, Finland, 1997.
Marcelo Lobosco. R-RIO: A Java Environment for Supporting Evolving Distributed Systems. M.sc. dissertation, IC/UFF, Brazil, 1999.
Cristina Videira Lopes. D: A Language Framework for Distributed Programming. PhD thesis, College of Computer Science, Northeastern University, November 1997.
Cristina Videira Lopes, Kim Mens, Bedir Tekinerdogan, and Gregor Kiczales. Proceedings of ECOOP Aspect-Oriented Programming Workshop. Finland, June 1997.
Orlando Loques, Rodrigo A. Botafogo, and Julius Leite. A Configuration Approach for Distributed Object-Oriented System Customization. In Proceedings of the Third International IEEE Workshop on Object-Oriented Real-Time Dependable Systems, pages 185–189, Newport Beach, USA, 1997.
Orlando Loques, Julius Leite, and Vinicio E. Carrera. Parallel-Programming Environment. IEEE Concurrency, 6(1):47–56, 1998.
David C. Luckham, Larry M. Augustin, John J. Kenney, James Veera, Doug Bryan, and Walter Mann. Specification and Analysis of System Architecture Using Rapide. IEEE Transactions on Software Engineering, SE-21:336–355, April 1995. Special Issue on Software Architecture.
V. V. Malucelli. Babel-Building Applications by Evolution. M.sc dissertation (in portuguese), DEE / PUC-RJ, Rio de Janeiro, Brazil, 1996.
Frank Matthijs, Wouter Joosen, Bart Vanhaute, Bert Robben, and Pierre Verbaeten. Aspects Should Not Die. In Cristina Videira Lopes, Kim Mens, Bedir Tekinerdogan, and Gregor Kiczales, editors, Proceedings of ECOOP Aspect-Oriented Programming Workshop, page June, Finland, 1997.
Nenad Medvidovic. Architecture-Based Specification-Time Software Evolution. PhD thesis, University of California, Irvine, 1999.
Alexandre Oliva and Luiz Eduardo Buzato. Composition of Meta-Objects in Guaraná. In Shigeru Chiba and Jean-Charles Fabre, editors, Proceedings of OOPSLA Workshop on Reflective Programming in C++ and Java, pages 86–90, Vancouver, Canada, November 1998.
Pierre-Guillaume Raverdy, Robert Le Van Gong, and Rodger Lea. DART: A Reflective Middleware for Adaptive Application. In Shigeru Chiba and Jean-Charles Fabre, editors, Proceedings of OOPSLA Workshop on Reflective Programming in C++ and Java, pages 37–45, Vancouver, Canada, November 1998.
Jerome H. Saltzer, David P. Reed, and David D. Clark. End-to-End Arguments in System Design. In Proceedings of 2nd Int’l Conference on Distributed Computing Systems, pages 509–512, Paris, France, April 1981.
Mary Shaw, Robert DeLine, Daniel V. Klein, Theodore L. Ross, David M. Young, and Gregory Zelesnik. Abstractions for Software Architecture and Tools to Support Them. Transaction on Software Engineering, 21(4):314–335, 1995.
Alexandre Sztajnberg. Flexibility and Separation of Concerns in Distributed Systems. PhD thesis, COPPE/UFRJ, Rio de Janeiro, Brazil, 1999.
Robbert van Renesse, Kenneth P. Birman, and Silvano Maffeis. Horus: A Flexible Group Communication System. Communications of the ACM, 39(4):76–83, April 1996.
Peter Wegner. Interoperability. ACM Computing Surveys, 28(1):285–287, 1996.
Ian Welch and Robert J. Stroud. Dalang-A Reflective Java Extension. In Shigeru Chiba and Jean-Charles Fabre, editors, Proceedings of OOPSLA Workshop on Reflective Programming in C++ and Java, pages 11–15, Vancouver, Canada, November 1998.
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2000 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Loques, O., Sztajnberg, A., Leite, J., Lobosco, M. (2000). On the Integration of Configuration and Meta-level Programming Approaches. In: Cazzola, W., Stroud, R.J., Tisato, F. (eds) Reflection and Software Engineering. OORaSE 1999. Lecture Notes in Computer Science, vol 1826. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-45046-7_11
Download citation
DOI: https://doi.org/10.1007/3-540-45046-7_11
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-67761-1
Online ISBN: 978-3-540-45046-7
eBook Packages: Springer Book Archive