Rapid System Development Via Product Line Architecture Implementation

  • Mauro Caporuscio
  • Henry Muccini
  • Patrizio Pelliccione
  • Ezio Di Nisio
Part of the Lecture Notes in Computer Science book series (LNCS, volume 3943)


Software Product Line (SPL) engineering allows designers to reason about an entire family of software applications, instead of a single product, with a strategic importance for the rapid development of new applications. While much effort has been spent so far in understanding and modeling SPLs and their architectures, very little attention has been given on how to systematically enforce SPL architectural decisions into the implementation step.

In this paper we propose a methodological approach and an implementation framework, based on a plugin component-based development, which allows us to move from an architectural specification of the SPL to its implementation in a systematic way. We show the suitability of this framework through its application to the TOOL one case study SPL.


Software Architecture Product Family Software Product Line Constraint Model Product Architecture 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Krueger, C.W.: Introduction to Software Product Lines (2004),
  2. 2.
    Gomaa, H.: Designing Software Product Line with UML - from use cases to pattern-based software architectures. Object Technology Series (2004)Google Scholar
  3. 3.
    Bertolino, A., Fantechi, A., Gnesi, S., Lami, G., Maccari, A.: Use Case Description of Requirements for Product Lines. In: International Workshop on Requirements Engineering for Product Lines - REPL 2002, Essen, Germany (2002)Google Scholar
  4. 4.
    Clements, P., Northrop, L.M.: Software Product Lines: Practices and Patterns, 1st edn. Addison-Wesley Pub. Co., Reading (2001)Google Scholar
  5. 5.
    Garg, A., Critchlow, M., Chen, P., van der Westhuizen, C., van der Hoek, A.: An Environment for Managing Evolving Product Line Architectures. In: ICSM 2003: Proceedings of the International Conference on Software Maintenance, p. 358. IEEE Computer Society, Los Alamitos (2003)CrossRefGoogle Scholar
  6. 6.
    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)CrossRefGoogle Scholar
  7. 7.
    Atkinson, C., Bayer, J., Bunse, C., Kamsties, E., Laitenberger, O., Laqua, R., Muthig, D., Paech, B., Wüst, J., Zettel, J.: Component-Based Product-Line Engineering with UML. Addison-Wesley, Reading (2001)Google Scholar
  8. 8.
    Pure::variants (2005),
  9. 9.
    Garlan, D.: Formal Modeling and Analysis of Software Architecture: Components, Connectors, and Events. In: Bernardo, M., Inverardi, P. (eds.) SFM 2003. LNCS, vol. 2804, pp. 1–24. Springer, Heidelberg (2003)CrossRefGoogle Scholar
  10. 10.
    Bosch, J.: Design and Use of Software Architectures: Adopting and Evolving a Product-Line Approach. ACM Press/Addison-Wesley Publishing Co. (2000)Google Scholar
  11. 11.
    Jazayeri, M., Ran, A., van der Linden, F.: Software architecture for product families: principles and practice. Addison-Wesley Publishing Co., Reading (2000)Google Scholar
  12. 12.
    Jaring, M., Bosch, J.: Representing Variability in Software Product Lines: A Case Study. In: Chastek, G.J. (ed.) SPLC 2002. LNCS, vol. 2379, pp. 15–36. Springer, Heidelberg (2002)CrossRefGoogle Scholar
  13. 13.
    The Ménage Project: University of California, Irvine,
  14. 14.
    Bass, L., Clements, P., Kazman, R.: Software Architecture in Practice, 2nd edn. SEI Series in Software Engineering. Addison-Wesley Professional, Reading (2003)Google Scholar
  15. 15.
    N-PLA Project. N-PLA Web Page (2005),
  16. 16.
    Szyperski, C.: Component Software. Beyond Object Oriented Programming. Addison Wesley, Reading (1998)Google Scholar
  17. 17.
    Sun Microsystems, Inc.: JavaBeans,
  18. 18.
    Platt, D.S.: Understanding COM+. Microsoft Press, Redmond (1999)Google Scholar
  19. 19.
    Cortellessa, V., Di Marco, A., Inverardi, P., Mancinelli, F., Pelliccione, P.: A framework for the integration of functional and non-functional analysys of software architectures. In: Proocedings of the International Workshop on Test and Analysis of Component Based Systems (TACoS), Barcelona. Electr. Notes Theor. Comput. Sci, vol. 116, pp. 31–44 (2005)Google Scholar
  20. 20.
    CHARMY Project. Charmy Web Site (2004),
  21. 21.
  22. 22.
    xADL 2.0 Architecture Description Language (2005),
  23. 23.
    Succi, G., Yip, J., Pedrycz, W.: Holmes: an intelligent system to support software product line development. In: ICSE 2001: Proceedings of the 23rd International Conference on Software Engineering, pp. 829–830. IEEE Computer Society, Los Alamitos (2001)CrossRefGoogle Scholar
  24. 24.
    Schmid, K., Schank, M.: PuLSE-BEAT – A Decision Support Tool for Scoping Product Lines. In: IW-SAPF-3: Proceedings of the International Workshop on Software Architectures for Product Families, pp. 65–75. Springer, Heidelberg (2000)CrossRefGoogle Scholar
  25. 25.
    Lago, P., Niemelä, E., Vliet, H.V.: Tool support for traceable product evolution. In: CSMR, pp. 261–269 (2004)Google Scholar
  26. 26.
    Yan, H., Garlan, D., Schmerl, B., Aldrich, J., Kazman, R.: Discotect: A system for discovering architectures from running systems. In: IEEE Proc. of the 26th Int. Conf. on Software Engineering, pp. 470–479 (2004)Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2006

Authors and Affiliations

  • Mauro Caporuscio
    • 1
  • Henry Muccini
    • 1
  • Patrizio Pelliccione
    • 1
  • Ezio Di Nisio
    • 1
  1. 1.Dipartimento di InformaticaUniversità dell’AquilaL’AquilaItaly

Personalised recommendations