Skip to main content

Software Product Line Architectures

  • Chapter
  • First Online:
UML-Based Software Product Line Engineering with SMarty

Abstract

The architecture of a Software Product Line (or Product Line Architecture, PLA) is one of the most important assets of a Software Product Line (SPL) as it represents an abstraction of all the products that can be generated in an SPL. Furthermore, the PLA is crucial for the development and evolution of an SPL. It represents the architecture of all potential products from a specific product line domain. The PLA addresses the SPL design decisions by explicitly representing similarities between product variants as well as the desired variability between them. A PLA differs from a single-product architecture in two aspects: (1) scope, i.e., the PLA describes broad design decisions relevant to related products for a given domain; (2) completeness, i.e., the PLA captures only parts of single products (which do not have unspecified or “variable” parts). Designing PLAs involves various activities and techniques, such as business case analysis, scope analysis, architectural design based on functionalities, and architecture transformation. When designing a PLA, it is important to explicitly accommodate variability (typically in the form of “variation points” in the architecture). Also, the design of a PLA needs to explicitly address quality attributes, such as complexity, extensibility, and reusability. These quality attributes are then used to evaluate the PLA to ensure (a) a PLA that supports product derivation and (b) a PLA that helps product variants meet the quality goals relevant in a domain (e.g., performance, security). Therefore, this chapter provides essential concepts on PLA, its design and variability issues. Finally, we present the design of a PLA aiming at illustrating the main concepts addressed in this chapter.

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
Hardcover Book
USD 119.99
Price excludes VAT (USA)
  • Durable hardcover 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. Ahmed, F., Capretz, L.F.: The software product line architecture: An empirical investigation of key process activities. Inf. Softw. Technol. 50(11), 1098–1113 (2008)

    Article  Google Scholar 

  2. Angelov, S., Grefen, P., Greefhorst, D.: A framework for analysis and design of software reference architectures. Inf. Softw. Technol. 54(4), 417–431 (2012)

    Article  Google Scholar 

  3. Bass, L., Clements, P., Kazman, R.: Software Architecture in Practice, 3rd edn. SEI Series in Software Engineering. Pearson Education, London (2012)

    Google Scholar 

  4. Bourque, P., Fairley, R.E., Society, I.C.: Guide to the Software Engineering Body of Knowledge (SWEBOK(R)): Version 3.0, 3rd edn. IEEE Computer Society Press, Washington (2014)

    Google Scholar 

  5. Brown, S.: Software Architecture for Developers, 1st edn. Leanpub, Victoria (2014)

    Google Scholar 

  6. Chen, L., Ali Babar, M.: A systematic review of evaluation of variability management approaches in software product lines. Inf. Softw. Technol. 53(4), 344–362 (2011)

    Article  Google Scholar 

  7. Clements, P., Northrop, L.M.: Software Product Lines: Practices and Patterns. SEI Series in Software Engineering. Addison-Wesley, Boston (2002)

    Google Scholar 

  8. Clements, P., Bachmann, F., Bass, L., Garlan, D., Ivers, J., Little, R., Merson, P., Nord, R., Stafford, J.: Documenting Software Architectures: Views and Beyond, 2nd edn. Addison-Wesley Professional, Boston (2010)

    Google Scholar 

  9. Contieri Jr, A.C., Correia, G.G., Colanzi, T.E., Gimenes, I.M., OliveiraJr, E., Ferrari, S., Masiero, P.C., Garcia, A.F.: Extending uml components to develop software product-line architectures: Lessons learned. In: Proceedings of the 5th European Conference on Software Architecture (ECSA), pp. 130–138 (2011)

    Google Scholar 

  10. Eklund, U., Jonsson, N., Bosch, J., Eriksson, A.: A reference architecture template for software-intensive embedded systems. In: Proceedings of the WICSA/ECSA 2012 Companion Volume, pp. 104–111. ACM, New York (2012)

    Google Scholar 

  11. Eppinger, S.D., Browning, T.R.: Design Structure Matrix Methods and Applications. MIT Press, Cambridge (2012)

    Book  Google Scholar 

  12. Galster, M., Avgeriou, P.: Handling variability in software architecture: Problems and implications. In: Proceedings of the 2011 Ninth Working IEEE/IFIP Conference on Software Architecture, pp. 171–180. IEEE Computer Society, Washington (2011)

    Google Scholar 

  13. Galster, M., Avgeriou, P.: The notion of variability in software architecture: Results from a preliminary exploratory study. In: Proceedings of the 5th Workshop on Variability Modeling of Software-Intensive Systems, pp. 59–67. ACM, New York (2011)

    Google Scholar 

  14. Galster, M., Weyns, D., Avgeriou, P., Becker, M.: Variability in software architecture: views and beyond. SIGSOFT Softw. Eng. Notes 37(6), 1–9 (2013)

    Google Scholar 

  15. Hilliard, R.: On representing variation. In: 1st International Workshop on Variability in Software Product Line Architectures. ACM, New York (2010)

    Google Scholar 

  16. IEEE Computer Society Software Engineering Standards Committee: IEEE standard glossary of software engineering terminology. IEEE Std 610.12-1990, pp. 1–84 (1990)

    Google Scholar 

  17. IEEE Computer Society Software Engineering Standards Committee: IEEE standard for a software quality metrics methodology. IEEE Std 1061-1998 (1998)

    Google Scholar 

  18. ISO/IEC/IEEE Systems and Software Engineering – Architecture Description. ISO/IEC/IEEE 42010:2011(E) (Revision of ISO/IEC 42010:2007 and IEEE Std 1471-2000), pp. 1–46 (2011)

    Google Scholar 

  19. Kruchten, P.: Architectural blueprints — the “4+1” view model of software architecture. IEEE Softw. 12(6), 42–50 (1995)

    Article  Google Scholar 

  20. Kruchten, P.: Common misconceptions about software architecture. The Rationale Edge (2001)

    Google Scholar 

  21. Lima Neto, C. R.: An approach for recovering architectural variability from source code. Ph.D. Thesis, Federal University of Bahia (2019)

    Google Scholar 

  22. Linden, F.J.v.d., Schmid, K., Rommes, E.: Software Product Lines in Action: The Best Industrial Practice in Product Line Engineering. Springer, New York (2007)

    Google Scholar 

  23. Mancoridis, S., Mitchell, B., Chen, Y., Gansner, E.: Bunch: a clustering tool for the recovery and maintenance of software system structures. In: IEEE International Conference on Software Maintenance Proceedings, pp. 50–59 (1999)

    Google Scholar 

  24. Marimuthu, C., Chandrasekaran, K.: Systematic studies in software product lines: a tertiary study. In: International Systems and Software Product Line Conference, pp. 143–152. ACM, New York (2017)

    Google Scholar 

  25. Martínez-Fernández, S., Ayala, C.P., Franch, X., Marques, H.M.: Proceedings of the Safe and Secure Software Reuse: 13th International Conference on Software Reuse, ICSR 2013, Pisa, June 18–20, chap. REARM: A Reuse-Based Economic Model for Software Reference Architectures, pp. 97–112. Springer, Berlin (2013)

    Google Scholar 

  26. Nakagawa, E.Y., Oliveira, A.P., Becker, M.: Reference architecture and product line architecture: a subtle but critical difference. In: Proceedings of the European Conference on Software Architecture (ECSA), pp. 207–211 (2011)

    Google Scholar 

  27. Pohl, K., Böckle, G., van der Linden, F.: Software Product Line Engineering: Foundations, Principles, and Techniques. Springer, New York (2005)

    Book  MATH  Google Scholar 

  28. Shaw, M., Garlan, D.: Software Architecture: Perspectives on an Emerging Discipline. Prentice-Hall Inc., Hoboken (1996)

    MATH  Google Scholar 

  29. Software engineering – product quality – part 1: Quality model. ISO/IEC 9126-1:2001 (2001)

    Google Scholar 

  30. Taylor, R., Medvidovic, N., Dashofy, E.: Software Architecture: Foundations, Theory, and Practice. Wiley, Hoboken (2009)

    Google Scholar 

  31. Thiel, S., Hein, A.: Modeling and using product line variability in automotive systems. IEEE Softw. 19(4), 66–72 (2002)

    Article  Google Scholar 

  32. Thiel, S., Hein, A.: Systematic integration of variability into product line architecture design. In: Proceedings of the Software Product Lines, Second International Conference, SPLC 2, San Diego, August 19–22, 2002. Lecture Notes in Computer Science, vol. 2379, pp. 130–153. Springer, Berlin (2002)

    Google Scholar 

  33. van Gurp, J., Bosch, J., Svahnberg, M.: On the notion of variability in software product lines. In: Proceedings Working IEEE/IFIP Conference on Software Architecture, pp. 45–54 (2001)

    Google Scholar 

  34. Verlage, M., Kiesgen, T.: Five years of product line engineering in a small company. In: Proceedings of the 27th International Conference on Software Engineering, pp. 534–543. ACM, New York (2005)

    Google Scholar 

  35. Weiss, D.M.: Architecture of product lines. In: International Conference on Software Maintenance, pp. 6–6 (2009)

    Google Scholar 

  36. Young, T.: Using AspectJ to build a software product line for mobile devices. Master’s thesis, University of British Columbia (2005)

    Google Scholar 

Download references

Acknowledgements

This work is supported by the Brazilian funding agency CNPq (Grant 428994/2018-0)

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2023 Springer Nature Switzerland AG

About this chapter

Check for updates. Verify currency and authenticity via CrossMark

Cite this chapter

Lima, C., Colanzi, T.E., Galster, M., Machado, I., OliveiraJr, E. (2023). Software Product Line Architectures. In: OliveiraJr, E. (eds) UML-Based Software Product Line Engineering with SMarty. Springer, Cham. https://doi.org/10.1007/978-3-031-18556-4_3

Download citation

  • DOI: https://doi.org/10.1007/978-3-031-18556-4_3

  • Published:

  • Publisher Name: Springer, Cham

  • Print ISBN: 978-3-031-18555-7

  • Online ISBN: 978-3-031-18556-4

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics