Skip to main content

Synthesizing Objects

  • Conference paper
  • First Online:
ECOOP’ 99 — Object-Oriented Programming (ECOOP 1999)

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

Included in the following conference series:

Abstract

This paper argues that the current OO technology does not support reuse and configurability in an effective way. This problem can be addressed by augmenting OO analysis and design with feature modeling and by applying generative implementation techniques. Feature modeling allows capturing the variability of domain concepts. Concrete concept instances can then be synthesized from abstract specifications.

Using a simple example of a configurable list component, we demonstrate the application of feature modeling and how to implement a feature model as a generator. We introduce the concepts of configuration repositories and configuration generators and show how to implement them using object-oriented, generic, and generative language mechanisms. The configuration generator utilizes C++ template metaprogramming, which enables its execution at compile-time.

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. M. Aksit and S. Matsuoka, (Eds.). Proceedings of 11th European Conference on Object-Oriented Programming (ECOOP’ 97), Springer-Verlag 1997

    Google Scholar 

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

  3. K. Czarnecki and U. Eisenecker. Template-Metaprogramming, http://home.tonline.de/home/Ulrich.Eisenecker/meta.htm

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

    Google Scholar 

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

    Google Scholar 

  6. S. Chiba. A Metaobject Protocol for C++. In Proceedings of the 10th Annual Conference on Object-Oriented Programming, Systems, Languages and Applications (OOPSLA’95), ACM SIGPLAN Notices, vol. 30, no. 10, 1995, pp. 285–299, http://www.softlab.is.tsukuba.ac.jp/~chiba/openc++.html

    Google Scholar 

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

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

    Google Scholar 

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

  10. U. Eisenecker. Generatives Programmieren mit C++. In OBJEKTspektrum, No. 6, November/December 1996, pp. 79–84

    Google Scholar 

  11. U. Eisenecker. Generative Programming (GP) with C++. In Proceedings of Modular Programming Languages (JMLC’97, Linz, Austria, March 1997), H. Mössenböck, (Ed.), Springer-Verlag, Heidelberg 1997, pp. 351–365

    Google Scholar 

  12. D. R. Engler.Incorporating application semantics and control into compilation. In Proceedings USENIX Conference on Domain-Specific Languages (DSL’97), 1997

    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. E. Gamma, R. Helm, R. Johnson, and J. Vlissides. Design Patterns: Elements of Reusable Object-Oriented Software. Addison-Wesley, 1995

    Google Scholar 

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

  16. J. A. Goguen. Parameterized Programming and Software Architecture. In Proceedings of the Fourth International Conference on Software Reuse, April 23–26, Orlando, Florida. IEEE Computer Society Press, Los Alamitos, California, 1996, pp. 2–10

    Chapter  Google Scholar 

  17. Y. Ishikawa, A. Hori, M. Sato, M. Matsuda, J. Nolte, H. Tezuka, H. Konaka, M. Maeda, and K. Kubota. Design and Implementation of Metalevel Architecture in C++ — MPC++ approach. In Proceedings of Reflection’96, 1996

    Google Scholar 

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

    Google Scholar 

  19. E. Jul, (Ed.). Proceedings of the 12th European Conference Object-Oriented Programming (ECOOP’98), LNCS 1445, Springer-Verlag, 1998

    Google Scholar 

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

  21. G. Kiczales, J. Lamping, A. Mendhekar, C. Maeda, C. V. Lopes, J.-M. Loingtier, and J. Irwin. Aspect-Oriented Programming. In S. Matsuoka, (Eds.). Proceedings of 11th European Conference on Object-Oriented Programming (ECOOP’ 97), Springer-Verlag 1997 [AM97], pp. 220–242

    Google Scholar 

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

  23. M. Mezini. Dynamic Object Evolution Without Name Collisions. In S. Matsuoka, (Eds.). Proceedings of 11th European Conference on Object-Oriented Programming (ECOOP’ 97), Springer-Verlag 1997 [AM97], pp. 190–219

    Google Scholar 

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

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

    Google Scholar 

  26. N.C. Myers. Traits: a new and useful template technique. In C++ Report, June 1995, see http://www.cantrip.org/traits.html

  27. T. Neubert. Anwendung von generativen Programmiertechniken am Beispiel der Matrixalgebra. Diplomarbeit, Technische Universität Chemnitz, 1998, also see Homepage of the Generative Matrix Computation Library at http://nero.prakinf.tu-ilmenau.de/~czarn/gmcl/[GMCL]

  28. POOMA: Parallel Object-Oriented Methods and Applications. A framework for scientific computing applications on parallel computers. Available at http://www.acl.lanl.gov/pooma

  29. W. Pree. Design Patterns for Object-Oriented Software Development. Addison-Wesley, 1995

    Google Scholar 

  30. C. Prehofer. Feature-Oriented Programming: A Fresh Look at Objects. In S. Matsuoka, (Eds.). Proceedings of 11th European Conference on Object-Oriented Programming (ECOOP’ 97), Springer-Verlag 1997 [AM97], pp. 419–443

    Google Scholar 

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

    Google Scholar 

  32. Y. Smaragdakis and D. Batory. Implementing Layered Designs with Mixin Layers. In [Jul98], pp. 550–570

    Google Scholar 

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

  34. J. Stichnoth and T. Gross. Code composition as an implementation language for compilers. In Proceedings USENIX Conference on Domain-Specific Languages (DSL’97), 1997

    Google Scholar 

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

  36. J. G. Siek and A. Lumsdaine. A Rational Approach to Portable High Performance: The Basic Linear Algebra Instruction Set (BLAIS) and the Fixed Algorithm Size Template (FAST) Library. In Proceedings of the ECOOP’98 Workshop on Parallel Object-Oriented Computing (POOSC’98), 1998, see http://www.lsc.nd.edu/

  37. B. Stroustrup. The Design and Evolution of C++. Addison-Wesley, 1994

    Google Scholar 

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

    Google Scholar 

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

  40. T. Veldhuizen. Expression Templates. In C++ Report, vol. 7no. 5, June 1995, pp. 26–31, see http://monet.uwaterloo.ca/blitz/

    Google Scholar 

  41. T. Veldhuizen. Scientific Computing: C++ versus Fortran. In Dr. Dobb’s Journal, November 1997, pp. 34–41, see http://monet.uwaterloo.ca/blitz/

  42. M. VanHilst and D. Notkin. Using Role Components to Implement Collaboration-Based Designs. In Proceedings of the 1996 ACM Conference on Object-Oriented Programming Systems, Languages and Applications (OOPSLA’96), 1996, pp. 359–369

    Google Scholar 

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). Synthesizing Objects. In: Guerraoui, R. (eds) ECOOP’ 99 — Object-Oriented Programming. ECOOP 1999. Lecture Notes in Computer Science, vol 1628. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-48743-3_2

Download citation

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

  • Published:

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-66156-6

  • Online ISBN: 978-3-540-48743-2

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics