Abstract
Variability makes it possible to easily change and adapt software systems for specific contexts in a preplanned manner. It has been considered in several research topics, including self-adaptive systems, large-scale enterprise systems, and system-of-systems, and was mainly consolidated by the Software Product Line (SPL) engineering. SPL manages a common platform for developing a family of products with reduced time to market, better quality, and lower cost. Variability in the SPL must be clearly identified, modeled, evaluated, and instantiated. Despite the advances in this field, managing the variability of systems is still challenging for building software-intensive product families. One difficulty is that the software architecture, the cornerstone of any design process, is usually defined with notations and languages lacking accurate forms to describe the variability concerns of software systems. Hence, in this chapter, we analyze approaches used for describing software variability in SPL, paying special attention to the architecture.
Access provided by Autonomous University of Puebla. Download to read the full chapter text
Chapter PDF
Similar content being viewed by others
References
Albassam, E., Gomaa, H.: Applying software product lines to multiplatform video games. In: 3rd International Workshop on Games and Software Engineering: Engineering Computer Games to Enable Positive, Progressive Change (GAS), pp. 1–7. IEEE Computer Society, San Francisco (2013)
Allian, A.P., Capilla, R., Nakagawa, E.Y.: Observations from variability modelling approaches at the architecture level. In: Software Engineering for Variability Intensive Systems – Foundations and Applications, pp. 41–56. Auerbach Publications/Taylor & Francis, Milton Park (2019)
Apel, S., Kastner, C., Lengauer, C.: FEATUREHOUSE: Language-independent, automated software composition. In: Proceedings of the 31st International Conference on Software Engineering, ICSE ’09, pp. 221–231. IEEE Computer Society, Washington (2009)
Apel, S., Batory, D., Kästner, C., Saake, G.: Feature-Oriented Software Product Lines. Springer, Berlin (2016)
Bashroush, R., Brown, T.J., Spence, I.T.A., Kilpatrick, P.: ADLARS: an architecture description language for software product lines. In: 29th Annual IEEE/NASA Software Engineering Workshop (SEW), pp. 163–173. IEEE Computer Society, Greenbelt (2005)
Bashroush, R., Garba, M., Rabiser, R., Groher, I., Botterweck, G.: CASE tool support for variability management in software product lines. ACM Comput. Surv. 50(1), 14:1–14:45 (2017)
Bayer, J., Flege, O., Knauber, P., Laqua, R., Muthig, D., Schmid, K., Widen, T., DeBaud, J.: Pulse: a methodology to develop software product lines. In: Symposium on Software reusability (SSR), Los Angeles, pp. 122–131 (1999)
Bayer, J., Flege, O., Knauber, P., Laqua, R., Muthig, D., Schmid, K., Widen, T., DeBaud, J.M.: Pulse: a methodology to develop software product lines. In: Proceedings of the 1999 Symposium on Software Reusability (SSR), pp. 122–131. ACM, Los Angeles (1999)
Bosch, J., Capilla, R., Hilliard, R.: Trends in systems and software variability. IEEE Softw. 32(3), 44–51 (2015)
Capilla, R., Bosch, J.: Binding Time and Evolution, pp. 57–73. Springer, Berlin (2013). https://doi.org/10.1007/978-3-642-36583-6_4
Capilla, R., Bosch, J., Kang, K.C.: Systems and Software Variability Management: Concepts, Tools and Experiences. Springer, Berlin (2013)
Chakir, B., Fredj, M., Nassar, M.: A model driven method for promoting reuse in SOA-solutions by managing variability. Computing Research Repository (CoRR), abs/1207.2742 (2012)
Clauß, M.: Modeling variability with UML. In: 3rd International Conference on Generative and Component-Based Software Engineering (GCSE), pp. 1–5. Springer, Berlin (2001)
Cola, S.D., Tran, C.M., Lau, K., Qian, C., Schulze, M.: A component model for defining software product families with explicit variation points. In: 19th International ACM SIGSOFT Symposium on Component-Based Software Engineering (CBSE), pp. 79–84. IEEE Computer Society, Venice (2016)
Cu, C., Ye, X., Zheng, Y.: Xlinemapper: a product line feature-architecture-implementation mapping toolset. In: 41st International Conference on Software Engineering: Companion Proceedings, ICSE ’19, pp. 87–90. IEEE Press, Piscataway (2019). https://doi.org/10.1109/ICSE-Companion.2019.00045
Dashofy, E., Asuncion, H., Hendrickson, S., Suryanarayana, G., Georgas, J., Taylor, R.: Archstudio 4: an architecture-based meta-modeling environment. In: 29th International Conference on Software Engineering (ICSE’07 Companion), pp. 67–68. IEEE, Piscataway (2007)
Dhungana, D., Grünbacher, P.: Understanding decision-oriented variability modelling. In: Software Product Line Conference – SPLC (2), pp. 233–242 (2008)
Gomaa, H.: Designing Software Product Lines with UML – from Use Cases to Pattern-Based Software Architectures. ACM, New York (2005)
Gonzalez-Huerta, J., Abrahão, S., Insfrán, E., Lewis, B.: Automatic derivation of AADL product architectures in software product line development. In: 1st International Workshop on Architecture Centric Virtual Integration and 17th International Conference on Model Driven Engineering Languages and Systems (ACVI/MoDELS), pp. 1–10. CEUR-WS.org, Valencia (2014)
Guessi, M., Oquendo, F., Nakagawa, E.Y.: Variability viewpoint to describe reference architectures. In: Working IEEE/IFIP Conference on Software Architecture (WICSA), pp. 14:1–14:6. ACM, Sydney (2014)
Halmans, G., Pohl, K.: Communicating the variability of a software-product family to customers. Softw. Syst. Model. 2(1), 15–36 (2003)
He, X., Fu, Y., Sun, C., Ma, Z., Shao, W.: Towards model-driven variability-based flexible service compositions. In: 39th IEEE Annual Computer Software and Applications Conference, COMPSAC, pp. 298–303. IEEE Computer Society, Taichung (2015)
Horcas, J.M., Pinto, M., Fuentes, L.: Software product line engineering: a practical experience. In: Proceedings of the 23rd International Systems and Software Product Line Conference, SPLC 2019, Paris, September 9–13, 2019, vol. A, pp. 25:1–25:13. ACM, New York (2019)
Hu, Y., Merlo, E., Dagenais, M., Lague, B.: C/c+ + conditional compilation analysis using symbolic execution. In: 30th International Conference on Software Maintenance, ICSM ’00. ACM, New York (2000)
Júnior, E., Farias, K., Silva, B.: A Survey on the Use of UML in the Brazilian Industry, pp. 275–284. Association for Computing Machinery, New York (2021). https://doi.org/10.1145/3474624.3474632
Kang, K., Cohen, S., Hess, J., Novak, W., Peterson, A.: Feature-oriented domain analysis (FODA) feasibility study. Technical Report. CMU/SEI-90-TR-021, Software Engineering Institute, Carnegie Mellon University, Pittsburgh (1990). http://resources.sei.cmu.edu/library/asset-view.cfm?AssetID=11231
Kim, M., Yang, H., Park, S.: A domain analysis method for software product lines based on scenarios, goals and features. In: 10th Asia-Pacific Software Engineering Conference (APSEC, pp. 126–135. IEEE Computer Society, Chiang Mai (2003)
Leitner, A., Mader, R., Kreiner, C., Steger, C., Weiß, R.: A development methodology for variant-rich automotive software architectures. Elektrotechnik und Informationstechnik 128(6), 222–227 (2011)
Linden, F.J.V.D., Schmid, K., Rommes, E.: Software Product Lines in Action: The Best Industrial Practice in Product Line Engineering, vol. 20. Springer, New York (2007)
Lisboa, L.B., Garcia, V.C., Lucrédio, D., de Almeida, E.S., de Lemos Meira, S.R., de Mattos Fortes, R.P.: A systematic review of domain analysis tools. Inf. Softw. Technol. 52(1), 1–13 (2010)
Loughran, N., Sánchez, P., Garcia, A., Fuentes, L.: Language support for managing variability in architectural models. In: 7th International Symposium on Software Composition (SC), pp. 36–51. Springer, Budapest (2008)
Mahdavi-Hezaveh, R., Dremann, J., Williams, L.: Software development with feature toggles: practices used by practitioners. Empir. Softw. Eng. 26(1) (2021)
Martínez-Fernández, S., Ayala, C.P., Franch, X., Marques, H.M.: Benefits and drawbacks of software reference architectures: a case study. Inf. Softw. Technol. 88, 37–52 (2017)
Meekel, J., Horton, T.B., Mellone, C.: Architecting for domain variability. In: 2nd International ESPRIT ARES Workshop on Development and Evolution of Software Architectures for Product Families, pp. 205–213. Springer, Berlin (1998)
Metzger, A., Pohl, K., Heymans, P., Schobbens, P.Y., Saval, G.: Disambiguating the documentation of variability in software product lines: a separation of concerns, formalization and automated analysis. In: 15th IEEE International Requirements Engineering Conference (RE 2007), pp. 243–253. IEEE, Piscataway (2007)
Milani, F., Dumas, M., Matulevicius, R.: Identifying and classifying variations in business processes. In: Enterprise, Business-Process and Information Systems Modeling – 13th International Conference, BPMDS 2012, 17th International Conference, EMMSAD 2012, and 5th EuroSymposium, held at CAiSE 2012, pp. 136–150. Springer, Gdańsk (2012)
Moon, M., Yeom, K., Chae, H.S.: An approach to developing domain requirements as a core asset based on commonality and variability analysis in a product line. IEEE Trans. Softw. Eng. 31(7), 551–569 (2005)
Moreira, R.A.F., Assunção, W.K., Martinez, J., Figueiredo, E.: Open-source software product line extraction processes: the argoUML-SPL and phaser cases. Empir. Softw. Eng. 27(4), 1–35 (2022)
OliveiraJr, E., Gimenes, I.M.S., Maldonado, J.C., Masiero, P.C., Barroca, L.: Systematic evaluation of software product line architectures. J. Univer. Comput. Sci. 19(1), 25–52 (2013)
Ortiz, F.J., Pastor, J.A., Alonso, D., Losilla, F., de Jódar, E.: A reference architecture for managing variability among teleoperated service robots. In: 2nd International Conference on Informatics in Control, Automation and Robotics (ICINCO), pp. 322–328. INSTICC Press, Barcelona (2005)
Park, S., Kim, M., Sugumaran, V.: A scenario, goal and feature-oriented domain analysis approach for developing software product lines. Ind. Manag. Data Syst. 104(4), 296–308 (2004)
Pascual, G.G., Pinto, M., Fuentes, L.: Automatic analysis of software architectures with variability. In: 13th International Conference on Software Reuse (ICSR), pp. 127–143. Springer, Pisa (2013)
Pereira, J.A., Constantino, K., Figueiredo, E.: A systematic literature review of software product line management tools. In: 14th International Conference on Software Reuse for Dynamic Systems in the Cloud and Beyond (ICSR), pp. 73–89. Springer International Publishing, Miami (2015)
Pohl, K., Böckle, G., van der Linden, F.: Software product line engineering: foundations, principles, and techniques, Springer, Berlin (2005)
Raatikainen, M., Tiihonen, J., Männistö, T.: Software product lines and variability modeling: a tertiary study. J. Syst. Softw. 149, 485–510 (2019)
Roos-Frantz, F., Benavides, D., Ruiz-Cortés, A., Heuer, A., Lauenroth, K.: Quality-aware analysis in product line engineering with the orthogonal variability model. Softw. Qual. J. 20(3–4), 519–565 (2011). https://doi.org/10.1007/s11219-011-9156-5
Rurua, N., Eshuis, R., Razavian, M.: Representing variability in enterprise architecture. Bus. Inf. Syst. Eng. 61(2), 215–227, (2019)
Schaefer, I.: Variability modelling for model-driven development of software product lines. In: 4th International Workshop on Variability Modelling of Software-Intensive Systems (VaMoS), pp. 85–92 (2010)
Schmid, K., John, I.: A customizable approach to full lifecycle variability management. Sci. Comput. Program. 53(3), 259–284 (2004)
Tekinerdogan, B., Aksit, M.: Managing variability in product line scoping using design space models. In: Journal of The American Chemical Society, pp. 1–8. Elsevier, Groningen (2003)
Vasilevskiy, A., Haugen, Ø., Chauvel, F., Johansen, M.F., Shimbara, D.: The BVR tool bundle to support product line engineering. In: Proceedings of the 19th International Conference on Software Product Line, pp. 380–384 (2015)
Weiss, D.M., Lai, C.T.R.: Software Product-Line Engineering: A Family-Based Software Development Process. Addison-Wesley Longman Publishing Co. Inc., Boston (1999)
Ziadi, T., Hélouët, L., Jézéquel, J.: Towards a UML profile for software product lines. In: Software Product-Family Engineering, 5th International Workshop, PFE 2003, Siena, November 4–6, 2003, Revised Papers. Lecture Notes in Computer Science, vol. 3014, pp. 129–139. Springer, Berlin (2003)
Ziadi, T., Jézéquel, J.: Software product line engineering with the UML: deriving products. In: Software Product Lines – Research Issues in Engineering and Management, pp. 557–588. Springer, Berlin (2006)
Acknowledgements
The work is supported by the Brazilian funding agencies FAPESP (grants 2015/24144-7, 2016/05919-0, 2018/20882-1), CNPq (Grant 313245/2021-5), and Carlos Chagas Filho Foundation for Supporting Research in the State of Rio de Janeiro (FAPERJ), under the PDR-10 program, grant 202073/2020.
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2023 Springer Nature Switzerland AG
About this chapter
Cite this chapter
Allian, A.P., Nakagawa, E.Y., Martinez, J., Assunção, W.K.G., OliveiraJr, E. (2023). Variability Implementation and UML-Based Software Product Lines. In: OliveiraJr, E. (eds) UML-Based Software Product Line Engineering with SMarty. Springer, Cham. https://doi.org/10.1007/978-3-031-18556-4_2
Download citation
DOI: https://doi.org/10.1007/978-3-031-18556-4_2
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)