ABSTRACT
The extractive adoption of Software Product Lines (SPL) relies on the reuse of the already developed systems, employing a reengineering process. However, due to the diversity of options found in the daily practice of SPL development, rigorous planning of scenarios is critical to perform SPL reengineering. This diversity is the result of different organizational aspects, such as team experience and product portfolio. Hence, a proper planning process must consider technical and organizational aspects, however, most existing studies in the field do not take into account organizational aspects of the companies. In this work, we present SPLReePlan, an automated framework to aid the SPL reengineering planning taking into account technical and organizational aspects. Our framework is supported by a web-based tool, ready to be used in the industry. To investigate how flexible is SPLReePlan to support the SPL reengineering planning in diverse situations, we extracted eight different scenarios from the SPL literature, which are used as input for the evaluation of SPLReePlan. The results indicate that SPLReePlan can be satisfactorily customized to a variety of scenarios with different artifacts, feature retrieval techniques, and reengineering activities. As a contribution, we discuss the lessons learned within the evaluation, and present challenges that were faced, being a source of information for tool builders or motivating new studies.
- M. Acher, A. Cleve, P. Collet, P. Merle, L. Duchien, and P. Lahire. 2013. Extraction and evolution of architectural variability models in plugin-based systems. Software & Systems Modeling 13, 4 (2013), 1367–1394.Google ScholarDigital Library
- R. Al-Msie’Deen, D. Seriai, M. Huchard, C. Urtado, S. Vauttier, and H. Eyal-Salman. 2012. An approach to recover feature models from object-oriented source code. Actes de la Journée Lignes de Produits(2012), 15–26.Google Scholar
- H.I. Alsawalqah, S. Kang, and J. Lee. 2014. A method to optimize the scope of a software product platform based on end-user features. Journal of Systems and Software 98 (2014), 79 – 106. https://doi.org/10.1016/j.jss.2014.08.034Google ScholarDigital Library
- V. Alves, C. Schwanninger, L. Barbosa, A. Rashid, P. Sawyer, P. Rayson, C. Pohl, and A. Rummler. 2008. An exploratory study of information retrieval techniques in domain analysis. In 12th International Software Product Line Conference. IEEE, 67–76.Google Scholar
- W. Assunção, R. Lopez-Herrejon, L. Linsbauer, S. Vergilio, and A. Egyed. 2017. Reengineering legacy applications into software product lines: a systematic mapping. Empirical Software Engineering(2017), 1–45.Google Scholar
- G. Bécan, M. Acher, B. Baudry, and S. Nasr. 2013. Breathing ontological knowledge into feature model management. Available at: https://hal.inria.fr/hal-00874867/. Access in: 26 april 2020.Google Scholar
- J. Bosch. 2006. The challenges of broadening the scope of software product families. Commun. ACM 49, 12 (2006), 41–44.Google ScholarDigital Library
- H. P. Breivold, S. Larsson, and R. Land. 2008. Migrating Industrial Systems towards Software Product Lines: Experiences and Observations through Case Studies. In 2008 34th Euromicro Conference Software Engineering and Advanced Applications. 232–239.Google Scholar
- S. Chardigny, A. Seriai, M. Oussalah, and D. Tamzalit. 2008. Extraction of Component-Based Architecture from Object-Oriented Systems. In Seventh Working IEEE/IFIP Conference on Software Architecture (WICSA 2008). 285–288.Google ScholarDigital Library
- K. Chen, W. Zhang, H. Zhao, and H. Mei. 2005. An approach to constructing feature models based on requirements clustering. In Requirements Engineering, 2005. Proceedings. 13th IEEE International Conference on. IEEE, 31–40.Google Scholar
- J. deBaud and K. Schmid. 1999. A systematic approach to derive the scope of software product lines. In Proceedings of the 1999 International Conference on Software Engineering (IEEE Cat. No.99CB37002). 34–43. https://doi.org/10.1145/302405.302409Google ScholarDigital Library
- S. Dumais. 2004. Latent semantic analysis. Annual review of information science and technology 38, 1(2004), 188–230.Google Scholar
- H. Eyal-Salman, D. Seriai, and C. Dony. 2013. Feature-to-code traceability in a collection of software variants: Combining formal concept analysis and information retrieval. In 14th International Conference on Information Reuse and Integration. IEEE, 209–216.Google Scholar
- A. Ferrari, G. O. Spagnolo, and F. Dell’Orletta. 2013. Mining commonalities and variabilities from natural language documents. In 17th International Software Product Line Conference. ACM, 116–120.Google Scholar
- S. Fischer, L. Linsbauer, R. E. Lopez-Herrejon, and A. Egyed. 2014. Enhancing clone-and-own with systematic reuse for developing software variants. In Software Maintenance and Evolution (ICSME), 2014 IEEE International Conference on. IEEE, 391–400.Google Scholar
- B. Ganter and R. Wille. 2012. Formal concept analysis: mathematical foundations. Springer Science & Business Media.Google Scholar
- E. N. Haslinger, R. E. Lopez-Herrejon, and A. Egyed. 2011. Reverse engineering feature models from programs’ feature sets. In 18th Working Conference on Reverse Engineering. IEEE, 308–312.Google Scholar
- Florian Heidenreich, Jan Kopcsek, and Christian Wende. 2008. FeatureMapper: mapping features to models. In Companion of the 30th international conference on Software engineering. ACM, 943–944.Google ScholarDigital Library
- A. Hubaux, P. Heymans, and D. Benavides. 2008. Variability modeling challenges from the trenches of an open source product line re-engineering project. In 12th International Software Product Line Conference. IEEE, 55–64.Google Scholar
- K. Kang, M. Kim, J. Lee, and B. Kim. 2005. Feature-oriented re-engineering of legacy systems into product line assets–a case study. In International Conference on Software Product Lines. Springer, 45–56.Google Scholar
- J. Krüger, W. Mahmood, and T. Berger. 2020. Promote-Pl: A Round-Trip Engineering Process Model for Adopting and Evolving Product Lines. In 24th ACM Conference on Systems and Software Product Line: Volume A (Montreal, Quebec, Canada) (SPLC ’20). ACM, New York, NY, USA, Article 2, 12 pages. https://doi.org/10.1145/3382025.3414970Google ScholarDigital Library
- U. Kulesza, V. Alves, A. Garcia, A. Neto, E. Cirilo, C. De Lucena, and P. Borba. 2007. Mapping features to aspects: A model-based generative approach. In Early Aspects Workshop. Springer, 155–174.Google Scholar
- M. A Laguna and Y. Crespo. 2013. A systematic mapping study on software product line evolution: From legacy system reengineering to product line refactoring. Science of Computer Programming 78, 8 (2013), 1010–1034.Google ScholarDigital Library
- L. B. Lisboa, V. C. Garcia, D. Lucrédio, E. S. de Almeida, S. R. de Lemos Meira, and R. P. de Mattos Fortes. 2010. A systematic review of domain analysis tools. Information and Software Technology 52, 1 (2010), 1 – 13. https://doi.org/10.1016/j.infsof.2009.05.001Google ScholarDigital Library
- L. Marchezan, W. KG Assunção, J. Carbonell, E. M. Rodrigues, M. Bernardino, and F. Basso. 2021. SPLReePlan Data set. https://doi.org/10.5281/zenodo.5091627Google Scholar
- L. Marchezan, J. Carbonell, E. Rodrigues, M. Bernardino, F. P. Basso, and W. K. G. Assunção. 2020. Enhancing the Feature Retrieval Process with Scoping and Tool Support: PAxSPL_v2. In Proceedings of the 24th ACM International Systems and Software Product Line Conference - Volume B (Montreal, QC, Canada) (SPLC ’20). Association for Computing Machinery, New York, NY, USA, 29–36. https://doi.org/10.1145/3382026.3425767Google ScholarDigital Library
- L. Marchezan, E. Rodrigues, M. Bernardino, and F. P. Basso. 2019. PAxSPL: A feature retrieval process for software product line reengineering. Software: Practice and Experience 49, 8 (2019), 1278–1306. https://doi.org/10.1002/spe.2707Google ScholarCross Ref
- J. Martinez, W. K. G. Assunção, and T. Ziadi. 2017. ESPLA: A Catalog of Extractive SPL Adoption Case Studies. In Proceedings of the 21st International Systems and Software Product Line Conference - Volume B (Sevilla, Spain) (SPLC ’17). ACM, New York, NY, USA, 38–41. https://doi.org/10.1145/3109729.3109748Google ScholarDigital Library
- Jabier Martinez, Tewfik Ziadi, Tegawendé F Bissyandé, Jacques Klein, and Yves Le Traon. 2015. Bottom-up adoption of software product lines: a generic and extensible approach. In Proceedings of the 19th International Conference on Software Product Line. ACM, 101–110.Google ScholarDigital Library
- C. Nunes, A. Garcia, C. Lucena, and J. Lee. 2012. History-sensitive heuristics for recovery of features in code of evolving program families. In 16th International Software Product Line Conference. ACM, 136–145.Google Scholar
- P. Paškevičius, R. Damaševičius, E. Karčiauskas, and R. Marcinkevičius. 2012. Automatic Extraction of Features and Generation of Feature Models from Java Programs. Information Technology And Control 41, 4 (2012), 376–384.Google Scholar
- J. A. Pereira, K. Constantino, and E. Figueiredo. 2015. A systematic literature review of software product line management tools. In International Conference on Software Reuse. Springer, 73–89.Google Scholar
- J. Rubin and M. Chechik. 2010. From Products to Product Lines Using Model Matching and Refactoring.. In SPLC Workshops. 155–162.Google Scholar
- G. Salton, A. Wong, and C. Yang. 1975. A vector space model for automatic indexing. Commun. ACM 18, 11 (1975), 613–620.Google ScholarDigital Library
- K. Schmid. 2002. A Comprehensive Product Line Scoping Approach and Its Validation. In Proceedings of the 24th International Conference on Software Engineering (Orlando, Florida) (ICSE ’02). ACM, New York, NY, USA, 593–603.Google ScholarDigital Library
- A. Shatnawi, A. Seriai, and H. Sahraoui. 2014. Recovering Architectural Variability of a Family of Product Variants. In Software Reuse for Dynamic Systems in the Cloud and Beyond. Springer International Publishing, Cham, 17–33.Google Scholar
- F. Van der Linden, K. Schmid, and E. Rommes. 2007. Software product lines in action: the best industrial practice in product line engineering. Springer Science & Business Media.Google Scholar
- C. Wohlin, P. Runeson, M. Höst, M. C Ohlsson, B. Regnell, and A. Wesslén. 2012. Experimentation in software engineering. Vol. 1. Springer Science & Business Media.Google Scholar
Index Terms
- SPLReePlan - Automated Support for Software Product Line Reengineering Planning
Recommendations
Enhancing the Feature Retrieval Process with Scoping and Tool Support: PAxSPL_v2
SPLC '20: Proceedings of the 24th ACM International Systems and Software Product Line Conference - Volume BSoftware Product Lines (SPLs) are commonly adopted with an extractive approach, by performing a reengineering process in legacy systems, when dealing with variability and reuse became challenging. As a starting activity of the process, the legacy ...
Variability Management in a Software Product Line Unaware Company: Towards a Real Evaluation
SPLC '19: Proceedings of the 23rd International Systems and Software Product Line Conference - Volume BSoftware Product Lines (SPL) enable systematic reuse within an organization thus, enabling the reduction of costs, efforts, development time and the average number of defects per product. However, there is little empirical evidence of SPL adoption in ...
Variability management in software product line engineering
ICSE '06: Proceedings of the 28th international conference on Software engineeringBy explicitly modeling and managing variability, software product line engineering provides a systematic approach for creating a diversity of similar products at low cost, in short time, and with high quality. This tutorial focuses on the two principle ...
Comments