On the Integration of Configuration and Meta-level Programming Approaches
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.
KeywordsSoftware Architecture Method Invocation Generic Connector Connector Type Architecture Description Language
Unable to display preview. Download preview PDF.
- 1.Robert Allen and David Garlan. A Formal Basis for Architectural Connection. ACM Transactions on Software Engineering and Methodology, July 1997.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.
- 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
- 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
- 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
- 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
- 32.Alexandre Sztajnberg. Flexibility and Separation of Concerns in Distributed Systems. PhD thesis, COPPE/UFRJ, Rio de Janeiro, Brazil, 1999.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