Skip to main content

Components and Generative Programming

  • Conference paper
  • First Online:
Software Engineering — ESEC/FSE ’99 (ESEC 1999, SIGSOFT FSE 1999)

Abstract

This paper is about a paradigm shift from the current practice of manually searching for and adapting components and their manual assembly to Generative Programming, which is the automatic selection and assembly of components on demand. First, we argue that the current OO technology does not support reuse and configurability in an effective way. Then we show how a system family approach can aid in defining reusable components. Finally, we describe how automate the assembly of components based on configuration knowledge. We compare this paradigm shift to the introduction of interchangeable parts and automated assembly lines in the automobile industry.

We also illustrate the steps necessary to develop a product line using a simple example of a car product line. We present the feature model of the product line, develop a layered architecture for it, and automate the assembly of the components using a generator. We also discuss some design issues, applicability of the approach, and future development.

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

Access this chapter

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

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. G. Arrango. Domain Analysis Methods. In Software Reusability, Schäfer, R. Prieto-Díaz, and M. Matsumoto (Eds.), Ellis Horwood, New York, New York, 1994, pp. 17–49

    Google Scholar 

  2. F. Buschmann, R. Meunier, H. Rohnert, P. Sommerlad, and M. Stal. Pattern-Oriented Software Architecture. A System of Patterns. Wiley, UK, 1996

    Google Scholar 

  3. D. Batory and S. O’Malley. The Design and Implementation of Hierarchical Software Systems with Reusable Components. In ACM Transactions on Software Engineering and Methodology, vol. 1, no. 4, October 1992, pp. 355–398

    Article  Google Scholar 

  4. K. Czarnecki and U. Eisenecker. Template-Metaprogramming, http://home.t-online.de/home/Ulrich.Eisenecker/meta.htm

  5. K. Czarnecki and U. Eisenecker. Synthesizing Objects. In Proceedings of ECOOP’99 — Object-Oriented Programming, LNCS, Springer-Verlag, 1999, see http://nero.prakinf.tu-ilmenau.de/~czarn/ecoop99/

    Google Scholar 

  6. K. Czarnecki and U. Eisenecker. Generative Programming: Methods, Techniques, and Applications. To appear, Addison-Wesley, 1999

    Google Scholar 

  7. K. Czarnecki, U. Eisenecker, R. Glück, D. Vandevoorde, and T. Veldhuizen. Generative Programming and Active Libraries. Submitted for publication, 1998

    Google Scholar 

  8. S. Cohen and L. M. Northrop. Object-Oriented Technology and Domain Analysis. In J. Poulin, (Eds.). Proceedings of the Fifth International Conference on Software Reuse (Victoria, Canada, June 1998). IEEE Computer Society Press, 1998 [DP98], pp. 86–93

    Google Scholar 

  9. B. J. Cox. Planning the Software Industrial Revolution. In IEEE Software, November 1990, see http://www.virtualschool.edu

  10. K. Czarnecki. Generative Programming: Principles and Techniques of Software Engineering Based on Automated Configuration and Fragment-Based Component Models. Ph.D. thesis, Technische Universität Ilmenau, Germany, 1998, see http://nero.prakinf.tu-ilmenau.de/~czarn/

  11. P. Devanbu and J. Poulin, (Eds.). Proceedings of the Fifth International Conference on Software Reuse (Victoria, Canada, June 1998). IEEE Computer Society Press, 1998

    Google Scholar 

  12. U. Eisenecker and K. Czarnecki. Generative Programmierung: Teil 1 & 2. To appear in the German edition of the Microsoft System Journal, no. 4 and 5, 1999

    Google Scholar 

  13. M. L. Griss, J. Favaro, and M. d’Alessandro. Integrating Feature Modeling with the RSEB. In J. Poulin, (Eds.). Proceedings of the Fifth International Conference on Software Reuse (Victoria, Canada, June 1998). IEEE Computer Society Press, 1998 [DP98], pp. 76–85, see http://www.intecs.it

  14. Homepage of the Generative Matrix Computation Library at http://nero.prakinf.tu-ilmenau.de/~czarn/gmcl/

  15. I. Jacobson, M. Griss, and P. Jonsson. Software Reuse: Architecture, Process and Organization for Business Success. Addison Wesley Longman, May 1997

    Google Scholar 

  16. K. Kang, S. Cohen, J. Hess, W. Nowak, and S. Peterson. Feature-Oriented Domain Analysis (FODA) Feasibility Study. Technical Report, CMU/SEI-90-TR-21, Software Engineering Institute, Carnegie Mellon University, Pittsburgh, Pennsylvania, November 1990

    Google Scholar 

  17. G. Kiczales, J. Lamping, C. V. Lopes, C. Maeda, A. Mendhekar, and G. Murphy. Open Implementation Design Guidelines. In Proceedings of the 19th International Conference on Software Engineering (ICSE), 1997, pp. 481–490

    Google Scholar 

  18. G. Kiczales, J. Lamping, A. Mendhekar, C. Maeda, C. V. Lopes, J.-M. Loingtier, and J. Irwin. Aspect-Oriented Programming. In Proceedings of 11th European Conference on Object-Oriented Programming (ECOOP’ 97), M. Aksit and S. Matsuoka, (Eds.), Springer-Verlag 1997, pp. 220–242, see http://www.parc.xerox.com/aop

  19. J. Knaupp. Algorithm Generators: A First Experience, see http://nero.prakinf.tuilmenau.de/~czarn/generate/stja98/knaupp.zip

  20. M. Mezini and K. Lieberherr. Adaptive Plug-and-Play Components for Evolutionary Software Development. In Proceedings of the Conference on Object-Oriented Programming Languages and Applications (OOPSLA’ 98), 1998

    Google Scholar 

  21. D. R. Musser and A. Saini. STL Tutorial and Reference Guide. Addison-Wesley, Reading, Massachusetts, 1996

    Google Scholar 

  22. T. Neubert. Anwendung von generativen Programmiertechniken am Beispiel der Matrixalgebra. Diplomarbeit, Technische Universität Chemnitz, 1998, also see [GMCL]

    Google Scholar 

  23. Objektorientierte Softwarewiederverwendung in verteilten Architekturen. Final report of the OSVA project. Sponsored by the German Federal Ministry of Education, Science, Research and Technology (BMBF), grant no. 01IS605A4, Mai 1999

    Google Scholar 

  24. D. Parnas. On the design and development of program families. In IEEE Transactions on Software Engineering, vol. SE-2, no. 1, 1976, pp. 1–9

    Article  Google Scholar 

  25. T. Reenskaug with P. Wold and O.A. Lehne. Working with Objects: The OOram Software Engineering Method. Manning, 1996s

    Google Scholar 

  26. Y. Smaragdakis and D. Batory. Implementing Layered Designs with Mixin Layers. In Proceedings of the 12th European Conference Object-Oriented Programming (ECOOP’98), LNCS 1445, Springer-Verlag, pp. 550–570

    Chapter  Google Scholar 

  27. M. Simos, D. Creps, C. Klinger, L. Levine, and D. Allemang. Organization Domain Modeling (ODM) Guidebook, Version 2.0. Informal Technical Report for STARS, STARS-VC-A025/001/00, June 14, 1996, see http://direct.asset.com

  28. C. Simonyi. Intentional Programming — Innovation in the Legacy Age. Position paper presented at IFIP WG 2.1 meeting, June 4, 1996, see http://www.research.microsoft.com/research/ip/

  29. E. Unruh. Prime number computation. ANSI X3J16-94-0075/ISO WG21-462, 1994

    Google Scholar 

  30. T. Veldhuizen. Using C++ template metaprograms. In C++ Report, vol. 7, no. 4, May 1995, pp. 36–43, see http://monet.uwaterloo.ca/blitz/

    Google Scholar 

  31. A. Willey. Technology Transition: An Historical Perspective. June 6, 1997, online article available at http://www.virtualschool.edu

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 1999 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Czarnecki, K., Eisenecker, U.W. (1999). Components and Generative Programming. In: Nierstrasz, O., Lemoine, M. (eds) Software Engineering — ESEC/FSE ’99. ESEC SIGSOFT FSE 1999 1999. Lecture Notes in Computer Science, vol 1687. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-48166-4_2

Download citation

  • DOI: https://doi.org/10.1007/3-540-48166-4_2

  • Published:

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-66538-0

  • Online ISBN: 978-3-540-48166-9

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics