Abstract
In recent years, software product line engineering (SPLE) has emerged as a promising reusability approach that brings out some important benefits, e.g., it increases the reusability of its core assets while decreasing the time to market. The SPL approach focuses mainly on a two-life cycle model: domain engineering, where the SPL core asset is developed for reuse, and application engineering, where the core asset is reused to generate specific products. It is important to highlight that the success of the SPL approach depends on several principles, in particular variability management. Although the SPL engineering brings out important benefits, it is clear the lack of environments aimed at automating the overall SPL life cycle, including (i) configuration of feature model (FM); (ii) configuration of products; and (iii) generation of products. Literature and industry present several important tools that encompass part of the SPL development life cycle, such as SPLOT and pure::variants. The plugin approach has also received an increasing attention in the development of SPLs. Some SPL-based approaches are characterized by the development of different applications through the selection/development of different sets of plugins. Although the use of plugins to develop SPL products is a promising approach and several works have been published in recent years, there is no tool to fully support plugin-based SPLs. This chapter presents PlugSPL (This chapter is an expanded version of a previously published paper Rodrigues et al. (Plugspl: An automated environment for supporting plugin-based software product lines. In: SEKE, pp. 647–650, 2012).), an automated environment to support the overall plugin-based SPL life cycle. PlugSPL is a modular environment, written in C#, in which a test manager can design an SPL using the SMarty approach, configure and develop its components, define a valid product configuration, and generate a product. Although there are tools that partially give support to the SPL life cycle as, for instance, pure::variants, to the best of our knowledge, there was no tool that supported plugin-based SPLs and the overall SPL life cycle. Furthermore, there are tools to design FMs, but most of them use different notations and file formats. PlugSPL provides capabilities with regard to creating or import/export FMs from/to other tools and uses a commonly used file format. Therefore, there is no need to incorporate other tools/environments into PlugSPL. Although PlugSPL is a flexible environment for modeling FMs, its most significant benefit is supporting the generation of SPL products based on its FM. Moreover, PlugSPL automatically generates an abstract class structure, which can be used to develop third-party plugins. A PlugSPL application example is presented for deriving MBT tools from the PLeTs product line.
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
Berger, T., Rublack, R., Nair, D., Atlee, J.M., Becker, M., Czarnecki, K., Wkasowski, A.: A survey of variability modeling in industrial practice. In: Proceedings of the Seventh International Workshop on Variability Modelling of Software-intensive Systems (2013)
Beuche, D.: Modeling and building software product lines with pure::Variants. In: Proeedings of the International Software Product Line Conference, p. 358. ACM, New York (2011)
Beuche, D.: Modeling and building software product lines with pure::variants. In: Proceedings of the 16th International Software Product Line Conference, vol. 2 (2012)
Cervantes, H., Charleston-Villalobos, S.: Using a lightweight workflow engine in a plugin-based product line architecture. Lecture Notes Comput. Sci. 4063, 198–205 (2006)
Chen, L., Babar, M.: Variability management in software product lines: An investigation of contemporary industrial challenges. In: Software Product Lines: Going Beyond, Lecture Notes in Computer Science. Springer, Berlin (2010)
Costa, L., Rodrigues, E., Czekster, R., Oliveira, F., Silveira, M., Zorzo, A.: Generating performance test scripts and scenarios based on abstract intermediate models. In: Proceedings of the 24th International Conference on Software Engineering and Knowledge Engineering (2012)
Czarnecki, K., Helsen, S., Eisenecker, U.W.: Formalizing cardinality-based feature models and their specialization. In: Software Process: Improvement and Practice. Wiley, Hoboken (2005)
Dammagh, M., Troyer, O.: Feature modeling tools: Evaluation and lessons learned. In: Advances in Conceptual Modeling. Recent Developments and New Directions. Lecture Notes in Computer Science. Springer, Berlin (2011)
Fritsch, C., Lehn, A., Strohm, T., Gmbh, R.B.: Evaluating variability implementation mechanisms. In: Proc. Int. Workshop on Product Line Engineering, pp. 59–64. Springer, Seattle, USA (2002)
Kästner, C., Apel, S., Kuhlemann, M.: Granularity in software product lines. In: Proceedings of the International Conference on Software Engineering, pp. 311–320. ACM, New York (2008)
Kempf, M., Kleeb, R., Klenk, M., Sommerlad, P.: Cross language refactoring for eclipse plug-ins. In: Proceedings of the Workshop on Refactoring Tools, pp. 1–4. ACM, New York (2008)
Krueger, C.W.: New methods in software product line practice. Commun. ACM 49, 37–40 (2006)
Krueger, C., Clements, P.: Systems and software product line engineering with BigLever software Gears. In: Proceedings of the 16th International Software Product Line Conference (2012)
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)
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)
Mayer, J., Melzer, I., Schweiggert, F.: Lightweight plug-in-based application development. In: Proceedings of the International Conference on NetObjectDays on Objects, Components, Architectures, Services, and Applications for a Networked World, pp. 87–102. Springer, London (2003)
Meinicke, J., Thüm, T., Schröter, R., Benduhn, F., Leich, T., Saake, G.: Mastering Software Variability with FeatureIDE. Springer, Cham (2017)
Mendonça, M., Branco, M., Cowan, D.: S.P.L.O.T.: Software product lines online tools. In: Proceedings of the Conference on Object Oriented Programming, Systems, Languages, and Applications, pp. 761–762. ACM, New York (2009). https://doi.acm.org/10.1145/1639950.1640002
Mendonça, M., Branco, M., Cowan, D.: S.P.L.O.T.: Software product lines online tools. In: OOPSLA Companion (2009)
OliveiraJr, E., Gimenes, I.M.S., Maldonado, J.C.: Systematic Management of Variability in UML-based Software Product Lines. Journal of Universal Computer Science 16(17), 2374–2393 (2010)
Pohl, K., Böckle, G., Linden, F.J.v.d.: Software Product Line Engineering: Foundations, Principles and Techniques. Springer, Berlin (2005)
Prasanna, D.R.: Dependency Injection, 1st edn. Manning Publications, Shelter Island (2009)
Rodrigues, E.M., Zorzo, A.F., OliveiraJr, E., Gimenes, I.M.S., Maldonado, J.C., Domingues, A.R.: Plugspl: An automated environment for supporting plugin-based software product lines. In: SEKE, pp. 647–650 (2012)
Rodrigues, E.M., Passos, L.T., Teixeira, L., Zorzo, A.F., Oliveira, F.M., Saad, R.S.: On the requirements and design decisions of an in-house component-based SPL automated environment. In: SEKE, pp. 492–407 (2014)
Segura, S., Galindo, J., Benavides, D., Parejo, J.A., Cortés, A.R.: BeTTy: Benchmarking and testing on the automated analysis of feature models. In: VaMoS, pp. 63–71 (2012)
Silveira, M.B., Rodrigues, E.M., Zorzo, A.F., Costa, L.T., Vieira, H.V., de Oliveira, F.M.: Model-based automatic generation of performance test scripts. In: Proceedings of the Software Engineering and Knowledge Engineering Conference, pp. 258–263. IEEE Computer Society, Miami (2011)
Thum, T., Kastner, C., Erdweg, S., Siegmund, N.: Abstract features in feature modeling. In: International Software Product Line Conference, pp. 191–200 (2011)
Thum, T., Kastner, C., Erdweg, S., Siegmund, N.: Abstract features in feature modeling. In: Proceedings of the 15th International Software Product Line Conference (2011)
Utting, M., Legeard, B.: Practical Model-Based Testing: A Tools Approach. Morgan Kaufmann, Burlington (2006)
Walls, C., Breidenbach, R.: Spring in Action. Manning Publications, Shelter Island (2007)
Wolfinger, R., Reiter, S., Dhungana, D., Grunbacher, P., Prahofer, H.: Supporting runtime system adaptation through product line engineering and plug-in techniques. In: International Conference on Commercial-off-the-Shelf (COTS)-Based Software Systems pp. 21–30 (2008)
Zhu, J., Yin, Q., Zhu, R., Guo, C., Wang, H., Wu, Q.: A plugin-based software production line integrated framework. In: International Conference on Computer Science and Software Engineering, vol. 2, pp. 562–565 (2008)
Acknowledgement
This work is supported by the Brazilian funding agency CNPq (Grant 306250/2021-7).
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
Rodrigues, E.M., Zorzo, A.F. (2023). PlugSPL: An Environment to Support SPL Life Cycle. In: OliveiraJr, E. (eds) UML-Based Software Product Line Engineering with SMarty. Springer, Cham. https://doi.org/10.1007/978-3-031-18556-4_15
Download citation
DOI: https://doi.org/10.1007/978-3-031-18556-4_15
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)