Skip to main content

Generic Implementation of Product Line Components

  • Conference paper
  • First Online:
Objects, Components, Architectures, Services, and Applications for a Networked World (NODe 2002)

Abstract

An argument pro component-based software development is the idea of constructing software systems by assembling preexisting components instead of redeveloping similar or identical functionality always from scratch. Unfortunately, integrating existing components practically means adaptation and use rather than use only, which makes an ideal component-based development hard to realize in practice. Product line engineering, however, tackles this problem by making components as generic as needed for a particular product family and thus allows component reuse. Such a component covers variabilities and thus its implementation must consider variabilities as well.

In this paper, we describe a process for implementing generic product line components and give an overview of variability mechanisms at the implementation level, illustrated by a running example, a generic test component.

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. J. Bayer, O. Flege, P. Knauber, R. Laqua, D. Muthig, K. Schmid, T. Widen, J.-M. DeBaud: PuLSE: A Methodology to Develop Software Product Lines. In Proceedings of the Symposium on Software Reuse, 1999

    Google Scholar 

  2. C. Atkinson, D. Muthig: Enhancing Component Reusability through Product Line Technology. Proceedings of the 7th International Conference in Software Reuse (ICSR 02), Springer Press, 2002

    Google Scholar 

  3. J. O. Coplien: Multi-Paradigm Design for C++. Addison-Wesley, 1999

    Google Scholar 

  4. C. Atkinson, J. Bayer, C. Bunse, E. Kamsties, O. Laitenberger, R. Laqua, D. Muthig, B. Paech, J. Wüst, J. Zettel: Component-Based Product-Line Engineering with UML. Addison-Wesley, 2001

    Google Scholar 

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

    Google Scholar 

  6. G. van Gurp, J. Bosch, M. Svahnberg: On the Notion of Variability in Software Product Lines. In Proceedings of Working IEEE/IFIP Conference on Software Architecture (WICSA), 2001

    Google Scholar 

  7. D. Muthig: A Light-Weight Approach Facilitating an Evolutionary Transition Towards Software Product Lines. PhD Thesis, University of Kaiserslautern, 2002

    Google Scholar 

  8. P. G. Basset: Framing Software Reuse: Lessons from the Real World. Prentice-Hall, 1996

    Google Scholar 

  9. M. Anastasopoulos, C. Gacek: Implementing Product Line Variabilities. Proceedings of the 2001 Symposium on Software Reusability (SSR’01), Toronto, Canada, 2001

    Google Scholar 

  10. E. Gamma, R. Helm, R. Johnson, J. Vlissides: Design Patterns: Elements of Reusable Object-Oriented Software. Addison-Wesley, 1995

    Google Scholar 

  11. M. Fontoura, W. Pree, B. Rumpe: The UML-F Profile for Framework Architectures. Addison-Wesley, 2001

    Google Scholar 

  12. Aspect-Oriented Programming. Communications of the ACM Vol.44 No.10, October 2001

    Google Scholar 

  13. K. Czarnecki, U. W. Eisenecker: Generative Programming: Methods, Tools and Applications. Addison-Wesley, 2000

    Google Scholar 

  14. A. Alexandrescu: Modern C++ Design: Generic Programming and Design Patterns Applied. Addison-Wesley, 2001

    Google Scholar 

  15. D. R. Musser, A Saini: STL Tutorial and Reference Guide. Addison-Wesley, 1996

    Google Scholar 

  16. B. Woolf. The Null Object. In R. C. Martin, D. Riehle, F. Buschmann (eds.): Pattern Language of Program Design 3. Addison-Wesley, 1998

    Google Scholar 

  17. Y. Smaragdakis, D. Batory: Mixin Layers: An Object-Oriented Implementation Technique for Refinements and Collaboration-Based Designs. To appear in ACM Transactions on Software Engineering and Methodology

    Google Scholar 

  18. W. Cunningham, K. Beck: Construction Abstractions for Object-Oriented Applications. Journal of Object-Oriented Programming, July 1989

    Google Scholar 

  19. T. Reenskaug: Working with Objects: The OOram Software Engineering Method. Manning Publications, 1996

    Google Scholar 

  20. M. VanHilst: Role-Oriented Programming for Software Evolution. PhD Thesis, University of Washington, Seattle, 1997

    Google Scholar 

  21. D. Batory, R. Cardone, Y. Smaragdakis: Object-Oriented Frameworks and Product-Lines. 1st Software Product Line Conference, 1999

    Google Scholar 

  22. Y. Smaragdakis: Implementing Large-Scale Object-Oriented Components. PhD Thesis, University of Texas, Austin, 1999

    Google Scholar 

  23. D. Riehle: Framework Design: A Role Modeling Approach. PhD Thesis, ETH Zürich, 2000

    Google Scholar 

  24. D. Batory, B. J. Gerraci: Composition Validation and Subjectivity in GenVoca Generators. IEEE Transactions on Software Engineering, February 1997

    Google Scholar 

  25. K. Czarnecki, L. Dominick, U. W. Eisenecker: Aspektorientierte Programmierung in C++. iX Magazin, 8–10/2001

    Google Scholar 

  26. E. Gamma. Extension Object. In R. C. Martin, D. Riehle, F. Buschmann (eds.): Pattern Language of Program Design 3. Addison-Wesley, 1998

    Google Scholar 

  27. K. Czarnecki, U. W. Eisenecker, R. Glück, D. Vandervoorde, T. Veldhuizen: Generative Programming and Active Libraries. Proceedings of the Dagstuhl Seminar 98171 on Generic Programming, LNCS 1766, Springer-Verlag, 2000

    Chapter  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2003 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Muthig, D., Patzke, T. (2003). Generic Implementation of Product Line Components. In: Aksit, M., Mezini, M., Unland, R. (eds) Objects, Components, Architectures, Services, and Applications for a Networked World. NODe 2002. Lecture Notes in Computer Science, vol 2591. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-36557-5_23

Download citation

  • DOI: https://doi.org/10.1007/3-540-36557-5_23

  • Published:

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-00737-1

  • Online ISBN: 978-3-540-36557-0

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics