Skip to main content

Dynamic Configuration of Software Product Lines in ArchJava

  • Conference paper
Software Product Lines (SPLC 2004)

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

Included in the following conference series:

Abstract

This paper considers the use of a state-of-the-art, general-purpose, component-programming language, specifically ArchJava, to implement software product lines. Component-programming languages provide a more straightforward mapping between components as assets and components as implementation artifacts. However, guaranteeing that the implementation conforms to the architecture raises new issues with respect to dynamic configuration. We show how this can be solved in ArchJava by making the components auto-configurable, which corresponds to replacing components by component generators. Such a scheme can be implemented in various ways, in particular with a two-stage generator. This solution goes beyond the initial technical ArchJava issue and complements the standard static generative approach to software product line implementation.

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 69.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 89.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. Aldrich, J., Chambers, C., Notkin, D.: ArchJava web site, http://www.archjava.org/

  2. Aldrich, J., Chambers, C., Notkin, D.: Architectural reasoning in ArchJava. In: Magnusson, B. (ed.) ECOOP 2002. LNCS, vol. 2374, pp. 334–367. Springer, Heidelberg (2002)

    Chapter  Google Scholar 

  3. Aldrich, J., Chambers, C., Notkin, D.: ArchJava: Connecting software architecture to implementation. In: [17], ICSE 2002, pp. 187–197 (2002)

    Google Scholar 

  4. Aldrich, J., Sazawal, V., Chambers, C., Notkin, D.: Language support for connector abstractions. In: Cardelli, L. (ed.) ECOOP 2003. LNCS, vol. 2743, pp. 74–102. Springer, Heidelberg (2003)

    Chapter  Google Scholar 

  5. Anastasopoulos, M., Gacek, C.: Implementing product line variabilities. In: [7], Bassett, pp. 109–117

    Google Scholar 

  6. Bass, L., Clements, P., Kazman, R.: Software Architecture in Practice. Series in Software Engineering. Addison Wesley, Reading (1998)

    Google Scholar 

  7. Bassett, P.G. (ed.): Proceedings of SSR 2001 - 2001 Symposium on Software Reusability, Toronto, Canada, May 2001. ACM Press, New York (2001)

    Google Scholar 

  8. Batory, D., O’Malley, S.: The design and implementation of hierarchical software systems with reusable components. ACM Transactions on Programming Languages and Systems 1(4), 355–398 (1992)

    Article  Google Scholar 

  9. Bosch, J.: Design and Use of Software Architectures - Adopting and Evolving a Product Line Approach. Addison-Wesley, Reading (2000)

    Google Scholar 

  10. Coupaye, T., Bruneton, E., Stefani, J.-B.: The Fractal composition framework. Specification, The Object Web Consortium, Draft, Version 2.0-3 (February 2004)

    Google Scholar 

  11. Czarnecki, K., Eisenecker, U.W.: Generative Programming: Methods, Tools, and Applications. Addison-Wesley, Reading (2000)

    Google Scholar 

  12. Czarnecki, K., Eisenecker, U.W.: Components and generative programming. In: Nierstasz and Lemoine [25], pp. 2–19

    Google Scholar 

  13. Eckstein, S., Ahlbrecht, P., Neumann, K.: Techniques and language constructs for developing generic informations systems: A case study. In: [7], Bassett, pp. 145–154

    Google Scholar 

  14. Gamma, E., Helm, R., Johnson, R., Vlissides, J.: Design Patterns: Elements of Reusable Object-Oriented Software. Addison-Wesley, Reading (1994)

    Google Scholar 

  15. Garlan, D., Shaw, M.: An introduction to software architecture. Technical Report CS-94-166, Carnegie Mellon University, School of Computer Science (1994)

    Google Scholar 

  16. Heineman, G.T., Councill, W.T. (eds.): Component-Based Software Engineering – Putting the Pieces Together. Addison-Wesley, Reading (2001)

    Google Scholar 

  17. Proceedings of the 24th International Conference on Software Engineering, Orlando, FL, USA, ACM Press (May 2002)

    Google Scholar 

  18. Jarzabek, S., Knauber, P.: Synergy between component-based and generative approaches. In: [25], Nierstasz and Lemoine, pp. 429–455

    Google Scholar 

  19. Java web site, http://www.sun.java.com/

  20. Jézéquel, J.-M.: Reifying variants in configuration management. ACM Transactions on Software Engineering and Methodology 8(3), 284–295 (1999)

    Article  Google Scholar 

  21. Luckham, D.C., Vera, J.: An event-based architecture definition language. IEEE Transactions on Software Engineering 21(9), 717–734 (1995)

    Article  Google Scholar 

  22. Magee, J., Kramer, J.: Dynamic structure in software architectures. In: Proceedings of the Fourth ACM SIGSOFT Symposium on the Foundations of Software Engineering, San Francisco, CA, USA, October 1996, pp. 3–14. ACM Press, New York (1996)

    Chapter  Google Scholar 

  23. Medvidovic, N., Taylor, R.N.: A classification and comparison framework for software architecture description languages. IEEE Transactions on Software Engineering 26(1), 70–93 (2000)

    Article  Google Scholar 

  24. Moriconi, M., Qian, X., Riemenschneider, R.A.: Correct architecture refinement. IEEE Transactions on Software Engineering 21(4), 356–372 (1995)

    Article  Google Scholar 

  25. Nierstasz, O., Lemoine, M. (eds.): Software Engineering – ESEC/FSE 1999: 7th European Software Engineering Conference, Toulouse, France. LNCS, vol. 1687. Springer, Heidelberg (1999)

    Google Scholar 

  26. Perry, D.E., Wolf, A.L.: Foundations for the study of software architecture. ACM SIGSOFT Software Engineering Notes 17(4), 40–52 (1992)

    Article  Google Scholar 

  27. Shaw, M., Garlan, D.: Software Architecture. In: Perspectives on an Emerging Discipline, Prentice-Hall, Englewood Cliffs (1996)

    Google Scholar 

  28. Szyperski, C., Gruntz, D., Murer, S.: Component Software: Beyond Object-Oriented Programming, 2nd edn. ACM Press, Addison-Wesley, New York (2002)

    Google Scholar 

  29. van Ommering, R.: Building product populations with software components. In: [17], ICSE 2002, pp. 255–265 (2002)

    Google Scholar 

  30. van Ommering, R., van der Linden, F., Kramer, J., Magee, J.: The Koala component model for consumer electronics software. Computer 33(3), 78–85 (2000)

    Article  Google Scholar 

  31. Withey, J.: Investment analysis of software assets for product lines. Technical Report CMU/SEI-96-TR-010, Software Engineering Institute, Carnegie Mellon University (1996)

    Google Scholar 

  32. XML - Extensible Markup Language - web site, http://www.w3.org/xml

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2004 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Pavel, S., Noyé, J., Royer, JC. (2004). Dynamic Configuration of Software Product Lines in ArchJava. In: Nord, R.L. (eds) Software Product Lines. SPLC 2004. Lecture Notes in Computer Science, vol 3154. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-540-28630-1_6

Download citation

  • DOI: https://doi.org/10.1007/978-3-540-28630-1_6

  • Publisher Name: Springer, Berlin, Heidelberg

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

  • Online ISBN: 978-3-540-28630-1

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics