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.
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
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)
Angelov, S., Grefen, P., Greefhorst, D.: A framework for analysis and design of software reference architectures. Inf. Softw. Technol. 54(4), 417–431 (2012)
Bass, L., Clements, P., Kazman, R.: Software Architecture in Practice, 3rd edn. SEI Series in Software Engineering. Pearson Education, London (2012)
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)
Brown, S.: Software Architecture for Developers, 1st edn. Leanpub, Victoria (2014)
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)
Clements, P., Northrop, L.M.: Software Product Lines: Practices and Patterns. SEI Series in Software Engineering. Addison-Wesley, Boston (2002)
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)
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)
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)
Eppinger, S.D., Browning, T.R.: Design Structure Matrix Methods and Applications. MIT Press, Cambridge (2012)
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)
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)
Galster, M., Weyns, D., Avgeriou, P., Becker, M.: Variability in software architecture: views and beyond. SIGSOFT Softw. Eng. Notes 37(6), 1–9 (2013)
Hilliard, R.: On representing variation. In: 1st International Workshop on Variability in Software Product Line Architectures. ACM, New York (2010)
IEEE Computer Society Software Engineering Standards Committee: IEEE standard glossary of software engineering terminology. IEEE Std 610.12-1990, pp. 1–84 (1990)
IEEE Computer Society Software Engineering Standards Committee: IEEE standard for a software quality metrics methodology. IEEE Std 1061-1998 (1998)
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)
Kruchten, P.: Architectural blueprints — the “4+1” view model of software architecture. IEEE Softw. 12(6), 42–50 (1995)
Kruchten, P.: Common misconceptions about software architecture. The Rationale Edge (2001)
Lima Neto, C. R.: An approach for recovering architectural variability from source code. Ph.D. Thesis, Federal University of Bahia (2019)
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)
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)
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)
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)
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)
Pohl, K., Böckle, G., van der Linden, F.: Software Product Line Engineering: Foundations, Principles, and Techniques. Springer, New York (2005)
Shaw, M., Garlan, D.: Software Architecture: Perspectives on an Emerging Discipline. Prentice-Hall Inc., Hoboken (1996)
Software engineering – product quality – part 1: Quality model. ISO/IEC 9126-1:2001 (2001)
Taylor, R., Medvidovic, N., Dashofy, E.: Software Architecture: Foundations, Theory, and Practice. Wiley, Hoboken (2009)
Thiel, S., Hein, A.: Modeling and using product line variability in automotive systems. IEEE Softw. 19(4), 66–72 (2002)
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)
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)
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)
Weiss, D.M.: Architecture of product lines. In: International Conference on Software Maintenance, pp. 6–6 (2009)
Young, T.: Using AspectJ to build a software product line for mobile devices. Master’s thesis, University of British Columbia (2005)
Acknowledgements
This work is supported by the Brazilian funding agency CNPq (Grant 428994/2018-0)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2023 Springer Nature Switzerland AG
About this chapter
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)