Skip to main content

On the Integration of Configuration and Meta-level Programming Approaches

  • Conference paper
  • First Online:

Part of the book series: Lecture Notes in Computer Science ((LNCS,volume 1826))

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.

This is a preview of subscription content, log in via an institution.

Buying options

Chapter
USD   29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD   39.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD   54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Learn about institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Robert Allen and David Garlan. A Formal Basis for Architectural Connection. ACM Transactions on Software Engineering and Methodology, July 1997.

    Google Scholar 

  2. 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.

    Article  Google Scholar 

  3. 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.

    Google Scholar 

  4. S. T. Carvalho. Integrating Design Patterns in Software Architectures. Research report, IC/UFF, Brazil, 1999. In Portuguese.

    Google Scholar 

  5. 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.

  6. 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.

    Article  Google Scholar 

  7. 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.

    Google Scholar 

  8. 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.

    Google Scholar 

  9. Svend Frølund and Jari Koistinen. Quality-of-Service Specification in Distributed Object Systems. Distributed Systems Engineering Journal, 5:179–202, 1998.

    Article  Google Scholar 

  10. Eric Gamma, Richard Helm, Ralph Johnson, and Richard Vlissides. Design Patterns: Elements of Reusable Object-Oriented Software. Addison-Wesley. Reading, MA, 1994.

    Google Scholar 

  11. Michael Gölm. Design and Implementation of a Meta Architecture for Java. Master’s thesis, University of Erlangen-Nurnberg, Germany, January 1997.

    Google Scholar 

  12. 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.

    Google Scholar 

  13. Gregor Kiczales and Cristina Videira Lopes. Aspect-Oriented Programming with AspectJ. Xerox Parc http://www.parc.xerox.com/aop, 1998.

  14. 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.

    Google Scholar 

  15. Jeff Kramer and Jeff Magee. The Evolving Philosophers Problem: Dynamic Change Management. IEEE Transactions on Software Engineering, 16(11):1293–1306, 1991.

    Article  Google Scholar 

  16. 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.

    Google Scholar 

  17. Jeff Kramer and Jeff Magee. Exposing the Skeleton in the Coordination Closet. In Proceedings of Coordination’97, Berlin, Germany, 1997.

    Google Scholar 

  18. 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.

    Google Scholar 

  19. Marcelo Lobosco. R-RIO: A Java Environment for Supporting Evolving Distributed Systems. M.sc. dissertation, IC/UFF, Brazil, 1999.

    Google Scholar 

  20. Cristina Videira Lopes. D: A Language Framework for Distributed Programming. PhD thesis, College of Computer Science, Northeastern University, November 1997.

    Google Scholar 

  21. Cristina Videira Lopes, Kim Mens, Bedir Tekinerdogan, and Gregor Kiczales. Proceedings of ECOOP Aspect-Oriented Programming Workshop. Finland, June 1997.

    Google Scholar 

  22. 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.

    Google Scholar 

  23. Orlando Loques, Julius Leite, and Vinicio E. Carrera. Parallel-Programming Environment. IEEE Concurrency, 6(1):47–56, 1998.

    Article  Google Scholar 

  24. 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.

    Article  Google Scholar 

  25. V. V. Malucelli. Babel-Building Applications by Evolution. M.sc dissertation (in portuguese), DEE / PUC-RJ, Rio de Janeiro, Brazil, 1996.

    Google Scholar 

  26. 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.

    Google Scholar 

  27. Nenad Medvidovic. Architecture-Based Specification-Time Software Evolution. PhD thesis, University of California, Irvine, 1999.

    Google Scholar 

  28. 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.

    Google Scholar 

  29. 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.

    Google Scholar 

  30. 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.

    Google Scholar 

  31. 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.

    Article  Google Scholar 

  32. Alexandre Sztajnberg. Flexibility and Separation of Concerns in Distributed Systems. PhD thesis, COPPE/UFRJ, Rio de Janeiro, Brazil, 1999.

    Google Scholar 

  33. 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.

    Article  Google Scholar 

  34. Peter Wegner. Interoperability. ACM Computing Surveys, 28(1):285–287, 1996.

    Article  Google Scholar 

  35. 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.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints 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

Publish with us

Policies and ethics