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.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
References
Aldrich, J., Chambers, C., Notkin, D.: ArchJava web site, http://www.archjava.org/
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)
Aldrich, J., Chambers, C., Notkin, D.: ArchJava: Connecting software architecture to implementation. In: [17], ICSE 2002, pp. 187–197 (2002)
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)
Anastasopoulos, M., Gacek, C.: Implementing product line variabilities. In: [7], Bassett, pp. 109–117
Bass, L., Clements, P., Kazman, R.: Software Architecture in Practice. Series in Software Engineering. Addison Wesley, Reading (1998)
Bassett, P.G. (ed.): Proceedings of SSR 2001 - 2001 Symposium on Software Reusability, Toronto, Canada, May 2001. ACM Press, New York (2001)
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)
Bosch, J.: Design and Use of Software Architectures - Adopting and Evolving a Product Line Approach. Addison-Wesley, Reading (2000)
Coupaye, T., Bruneton, E., Stefani, J.-B.: The Fractal composition framework. Specification, The Object Web Consortium, Draft, Version 2.0-3 (February 2004)
Czarnecki, K., Eisenecker, U.W.: Generative Programming: Methods, Tools, and Applications. Addison-Wesley, Reading (2000)
Czarnecki, K., Eisenecker, U.W.: Components and generative programming. In: Nierstasz and Lemoine [25], pp. 2–19
Eckstein, S., Ahlbrecht, P., Neumann, K.: Techniques and language constructs for developing generic informations systems: A case study. In: [7], Bassett, pp. 145–154
Gamma, E., Helm, R., Johnson, R., Vlissides, J.: Design Patterns: Elements of Reusable Object-Oriented Software. Addison-Wesley, Reading (1994)
Garlan, D., Shaw, M.: An introduction to software architecture. Technical Report CS-94-166, Carnegie Mellon University, School of Computer Science (1994)
Heineman, G.T., Councill, W.T. (eds.): Component-Based Software Engineering – Putting the Pieces Together. Addison-Wesley, Reading (2001)
Proceedings of the 24th International Conference on Software Engineering, Orlando, FL, USA, ACM Press (May 2002)
Jarzabek, S., Knauber, P.: Synergy between component-based and generative approaches. In: [25], Nierstasz and Lemoine, pp. 429–455
Java web site, http://www.sun.java.com/
Jézéquel, J.-M.: Reifying variants in configuration management. ACM Transactions on Software Engineering and Methodology 8(3), 284–295 (1999)
Luckham, D.C., Vera, J.: An event-based architecture definition language. IEEE Transactions on Software Engineering 21(9), 717–734 (1995)
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)
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)
Moriconi, M., Qian, X., Riemenschneider, R.A.: Correct architecture refinement. IEEE Transactions on Software Engineering 21(4), 356–372 (1995)
Nierstasz, O., Lemoine, M. (eds.): Software Engineering – ESEC/FSE 1999: 7th European Software Engineering Conference, Toulouse, France. LNCS, vol. 1687. Springer, Heidelberg (1999)
Perry, D.E., Wolf, A.L.: Foundations for the study of software architecture. ACM SIGSOFT Software Engineering Notes 17(4), 40–52 (1992)
Shaw, M., Garlan, D.: Software Architecture. In: Perspectives on an Emerging Discipline, Prentice-Hall, Englewood Cliffs (1996)
Szyperski, C., Gruntz, D., Murer, S.: Component Software: Beyond Object-Oriented Programming, 2nd edn. ACM Press, Addison-Wesley, New York (2002)
van Ommering, R.: Building product populations with software components. In: [17], ICSE 2002, pp. 255–265 (2002)
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)
Withey, J.: Investment analysis of software assets for product lines. Technical Report CMU/SEI-96-TR-010, Software Engineering Institute, Carnegie Mellon University (1996)
XML - Extensible Markup Language - web site, http://www.w3.org/xml
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights 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