Abstract
Agile software development (ASD) and software product line (SPL) have shown significant benefits for software engineering processes and practices. Although both methodologies promise similar benefits, they are based on different foundations. SPL encourages systematic reuse that exploits the commonalities of various products belonging to a common domain and manages their variations systematically. In contrast, ASD stresses a flexible and rapid development of products using iterative and incremental approaches. ASD encourages active involvement of customers and their frequent feedback. Both ASD and SPL require alternatives to extend agile methods for several reasons such as (1) to manage reusability and variability across the products of any domain, (2) to avoid the risk of developing core assets that will become obsolete and not used in future projects, and (3) to meet the requirements of changing markets. This motivates the researchers for the integration of ASD and SPL approaches. As a result, an innovative approach called agile product line engineering (APLE) by integrating SPL and ASD has been introduced. The principal aim of APLE is to maximize the benefits of ASD and SPL and address the shortcomings of both. However, combining both is a major challenge. Researchers have proposed a few approaches that try to put APLE into practice, but none of the existing approaches cover all APLE features needed. This paper proposes a new dynamic variability approach for APLE that uses APLE practices for reusing features. The proposed approach (PA) is based on the agile method Scrum and the reactive approach of SPL. In this approach, reusable core assets respond reactively to customer requirements. The PA constructs and develops the SPL architecture iteratively and incrementally. It provides the benefits of reusability and maintainability of SPLs while keeping the delivery-focused approach from agile methods. We conducted a quantitative survey of software companies applying the APLE to assess the performance of the PA and hypotheses of empirical study. Findings of empirical evaluation provide evidence on integrating ASD and SPL and the application of APLE into practices.
Similar content being viewed by others
References
Díaz J, Pérez J, Garbajosa J (2014) Agile product-line architecting in practice: a case study in smart grids. Inf Softw Technol 56(7):727–48
Díaz J, Pérez J, Alarcón PP, Garbajosa J (2011) Agile product line engineering—a systematic literature review. Softw Pract Exp 41(8):921–41
Johansson, A (2015) Toward improvements of teamwork in globally distributed agile teams, University of Gothenburg, Chalmers University of Technology, Department of Computer Science and Engineering, Göteborg, Sweden.
Misra SC, Kumar U, Kumar V, Grant G (2006) The organizational changes required and the challenges involved in adopting agile methodologies in traditional software development organizations. In: 2006 1st International Conference on Digital Information Management, 6 (pp. 25–28). IEEE.
Da Silva IF, da Mota Silveira Neto PA, O’Leary P, De Almeida ES, de Lemos Meira SR (2011) Agile software product lines: a systematic mapping study. Softw Pract Exp 41(8):899–920
Farahani FF, Ramsin R (2014) Methodologies for agile product line engineering: a survey and evaluation. InSoMeT, (pp. 545–564)
Lee J, Kang S, Lee D (2010) A comparison of software product line scoping approaches. Int J Software Eng Knowl Eng. https://doi.org/10.1142/S021819401000489X
Haidar H (2020) An agile feature-driven framework for managing evolving software product lines (Doctoral dissertation, UCL-Université Catholique de Louvain).
Metzger A, Pohl, K (2014) Software product line engineering and variability management: achievements and challenges. Future of Software Engineering, FOSE 2014 Proceedings. https://doi.org/10.1145/2593882.2593888
Eriksson M (2005) An introduction to software product line development. Proceedings of Ume’s Seventh Student Conference in Computing Science, UMINF-03.05, 26–37
Noor MA, Rabiser R, Gru P (2008) Agile product line planning: a collaborative approach and a case study. J Syst Softw. https://doi.org/10.1016/j.jss.2007.10.028
Assunção WKG, Lopez-Herrejon RE, Linsbauer L et al (2017) Reengineering legacy applications into software product lines: a systematic mapping. Empir Softw Eng. https://doi.org/10.1007/s10664-017-9499-z
McGregor JD (2008) Agile software product lines, deconstructed. J Object Technol. https://doi.org/10.5381/jot.2008.7.8.c1
Haidar H, Kolp M, Wautelet Y (2017) Goal-oriented requirement engineering for agile software product lines: an overview. Louvain School of Management Research Institute Working Paper Series, Louvain, Belgium, 1–36
Parizi RM, Gandomani TJ, Nafchi MZ (2014) Hidden facilitators of agile transition: agile coaches and agile champions. 2014 8th Malaysian Software Engineering Conference, MySEC 2014. https://doi.org/10.1109/MySec.2014.6986022
Gandomani TJ, Zulzalil H, Ghani AAA, Sultan ABM, Nafchi MZ (2013) Obstacles in moving to agile software development methods at a glance. J Comput Sci. https://doi.org/10.3844/jcssp.2013.620.625
Ali A, Hafeez Y, Hussain S, Yang S (2020) Role of requirement prioritization technique to improve the quality of highly-configurable systems. IEEE Access 8:27549–27573
Sarwar A, Hafeez Y, Hussain S, Yang S (2020) Towards taxonomical-based situational model to improve the quality of agile distributed teams. IEEE Access 8:6812–6826
Ghanam Y, Andreychuk D, Maurer F (2010) Reactive variability management in agile software development. In 2010 Agile Conference (pp. 27–34). IEEE. https://doi.org/10.1109/AGILE.2010.6
Hohl P, Theobald S, Becker M, Stupperich M, Münch J (2018). Mapping agility to automotive software product line concerns. Lecture Notes in Computer Science (Including Subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics), 11271 LNCS, 409–421. https://doi.org/10.1007/978-3-030-03673-7_32
Tian K, Cooper K (2006) Agile and software product line methods : are they so different ?, In 1st International Workshop On Agile Product Line Engineering
Carbon R, Lindvall M, Muthig D, Costa P (2006) Integrating product line engineering and agile methods: flexible design up-front vs. incremental design. In 1st International Workshop on Agile Product Line Engineering (APLE'06), Maryland, USA
Mccaffery F, Thiel S, Richardson I (2012) An Agile process model for product derivation in software product line engineering. 561–571. https://doi.org/10.1002/smr
Dıaz J, Pérez J, Yagüe A, Garbajosa J (2011) Tailoring the scrum development process to address agile product line engineering. Proceedings of the XV Jornadas de Ingenierıa del Software y Bases de Datos (JISBD 2011), 91
Ghanam Y, Maurer F (2008) An iterative model for agile product line engineering. SPLC 2:377–384
Da Silva IF (2012). An agile approach for software product lines scoping. In Proceedings of the 16th International Software Product Line Conference-Volume 2 (pp. 225–228)
Kou G, Yang P, Peng Y, Xiao F, Chen Y, Alsaadi FE (2020) Evaluation of feature selection methods for text classification with small datasets using multiple criteria decision-making methods. Appl Soft Comput 86:105836. https://doi.org/10.1016/j.asoc.2019.105836
Babar MA, Ihme T, Pikkarainen M (2009) An industrial case of exploiting product line architectures in agile software development. 171–179
Rumpe B, Schulze C, Richenhagen J, Schloßer A (2015) Agile Synchronization between a Software Product Line and its Products, Informatik, LNI Vol. 246
Mohan K, Ramesh B, Sugumaran V (2010) Integrating software product line engineering and agile development. IEEE Softw 27(3):48–55. https://doi.org/10.1109/MS.2010.31
Ghanam Y, Maurer F (2010) Extreme product line engineering—refactoring for variability: a test-driven approach. In: Sillitti A, Martin A, Wang X, Whitworth E (eds) Agile processes in software engineering and extreme programming. Lecture notes in business information processing, vol 48. Springer, Berlin, Heidelberg, pp 43–57. https://doi.org/10.1007/978-3-642-13054-0_4
Neves GS, Vilain P (2014) Reactive variability realization with test-driven development and refactoring. Proceedings of the International Conference on Software Engineering and Knowledge Engineering, SEKE, 100–105
Noor MA, Briggs RO (2007) A collaborative approach for product line scoping: a case study in collaboration engineering. In Proceedings of the 25th Conference on IASTED International Multi-Conference: Software Engineering. Innsbruck, Austria, pp. 216–223
Santos Jr A, de Lucena Jr VF. ScrumPL-Software product line engineering with scrum. InENASE 2010 (pp. 239–244)
Abouzekry A, Hassan R (2011) Software product line agility. In Proceedings of International Conference on Software Engineering Advances (pp. 1–7)
Haidar H, Kolp M, Wautelet Y (2017) Agile product line engineering: the AgiFPL Method. In ICSOFT, (pp. 275–285)
Klünder J, Hohl P, Schneider K (2018) Becoming agile while preserving software product lines: an agile transformation model for large companies. In Proceedings of International Conference on Software and System Process (pp. 1–10)
Vale T, Cabral B, Alvim L, Soares L, et al (2014) SPLICE: A lightweight software product line development process for small and medium size projects. In 2014 Eighth Brazilian Symposium on Software Components, Architectures and Reuse (pp. 42–52). IEEE
Klünder JA, Hohl P, Prenner N, Schneider K (2019) Transformation towards agile software product line engineering in large companies: a literature review. J Softw Evolut Process 31(5):e2168
Hohl P, Stupperich M, Munch J, Schneider K (2018) Combining agile development and software product lines in automotive: challenges and recommendations. 2018 IEEE International Conference on Engineering, Technology and Innovation, ICE/ITMC 2018 Proceedings. https://doi.org/10.1109/ICE.2018.8436277
Shen F, Zhao X, Kou G (2020) Three-stage reject inference learning framework for credit scoring using unsupervised transfer learning and three-way decision theory. Decis Support Syst 1(137):113366
Van de Ven AH, Ferry DL (1980) Measuring and assessing organizations. Wiley, NY
Osterhof A (2001) Classroom applications of educational measurement. Prentice Hall, NJ
Cronbach LJ (1971) Test validation, educational measurement. American Council on Education, Washington, pp 443–507
Straub DW (1989) Validating instruments in MIS research. MIS Q 13(2):147–169
Cohen J (1988) Statistical power analysis for the behavioral sciences, 2nd edn. Lawrence Erlbaum Associates Inc Publishers, Hillsdale, NJ
El Emam K (1999) Benchmarking Kappa: interrater agreement in software process assessments. Empir Softw Eng 4(2):113–133. https://doi.org/10.1023/A:1009820201126
Author information
Authors and Affiliations
Corresponding author
Additional information
Publisher's Note
Springer Nature remains neutral with regard to jurisdictional claims in published maps and institutional affiliations.
Appendix
Appendix
See Table 10.
Rights and permissions
About this article
Cite this article
Kiani, A.A., Hafeez, Y., Imran, M. et al. A dynamic variability management approach working with agile product line engineering practices for reusing features. J Supercomput 77, 8391–8432 (2021). https://doi.org/10.1007/s11227-021-03627-5
Accepted:
Published:
Issue Date:
DOI: https://doi.org/10.1007/s11227-021-03627-5