Skip to main content

A dynamic variability management approach working with agile product line engineering practices for reusing features

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.

This is a preview of subscription content, access via your institution.

Fig. 1
Fig. 2
Fig. 3
Fig. 4
Fig. 5
Fig. 6
Fig. 7
Fig. 8
Fig. 9
Fig. 10
Fig.11
Fig. 12

References

  1. 1.

    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

    Article  Google Scholar 

  2. 2.

    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

    Article  Google Scholar 

  3. 3.

    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.

  4. 4.

    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.

  5. 5.

    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

    Article  Google Scholar 

  6. 6.

    Farahani FF, Ramsin R (2014) Methodologies for agile product line engineering: a survey and evaluation. InSoMeT, (pp. 545–564)

  7. 7.

    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

    Article  Google Scholar 

  8. 8.

    Haidar H (2020) An agile feature-driven framework for managing evolving software product lines (Doctoral dissertation, UCL-Université Catholique de Louvain).

  9. 9.

    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

  10. 10.

    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

  11. 11.

    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

    Article  Google Scholar 

  12. 12.

    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

    Article  Google Scholar 

  13. 13.

    McGregor JD (2008) Agile software product lines, deconstructed. J Object Technol. https://doi.org/10.5381/jot.2008.7.8.c1

    Article  Google Scholar 

  14. 14.

    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

  15. 15.

    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

  16. 16.

    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

    Article  Google Scholar 

  17. 17.

    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

    Article  Google Scholar 

  18. 18.

    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

    Article  Google Scholar 

  19. 19.

    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

  20. 20.

    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

  21. 21.

    Tian K, Cooper K (2006) Agile and software product line methods : are they so different ?, In 1st International Workshop On Agile Product Line Engineering

  22. 22.

    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

  23. 23.

    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

  24. 24.

    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

  25. 25.

    Ghanam Y, Maurer F (2008) An iterative model for agile product line engineering. SPLC 2:377–384

    Google Scholar 

  26. 26.

    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)

  27. 27.

    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

    Article  Google Scholar 

  28. 28.

    Babar MA, Ihme T, Pikkarainen M (2009) An industrial case of exploiting product line architectures in agile software development. 171–179

  29. 29.

    Rumpe B, Schulze C, Richenhagen J, Schloßer A (2015) Agile Synchronization between a Software Product Line and its Products, Informatik, LNI Vol. 246

  30. 30.

    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

    Article  Google Scholar 

  31. 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

    Chapter  Google Scholar 

  32. 32.

    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

  33. 33.

    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

  34. 34.

    Santos Jr A, de Lucena Jr VF. ScrumPL-Software product line engineering with scrum. InENASE 2010 (pp. 239–244)

  35. 35.

    Abouzekry A, Hassan R (2011) Software product line agility. In Proceedings of International Conference on Software Engineering Advances (pp. 1–7)

  36. 36.

    Haidar H, Kolp M, Wautelet Y (2017) Agile product line engineering: the AgiFPL Method. In ICSOFT, (pp. 275–285)

  37. 37.

    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)

  38. 38.

    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

  39. 39.

    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

    Article  Google Scholar 

  40. 40.

    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

  41. 41.

    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

    Article  Google Scholar 

  42. 42.

    Van de Ven AH, Ferry DL (1980) Measuring and assessing organizations. Wiley, NY

    Google Scholar 

  43. 43.

    Osterhof A (2001) Classroom applications of educational measurement. Prentice Hall, NJ

    Google Scholar 

  44. 44.

    Cronbach LJ (1971) Test validation, educational measurement. American Council on Education, Washington, pp 443–507

    Google Scholar 

  45. 45.

    Straub DW (1989) Validating instruments in MIS research. MIS Q 13(2):147–169

    Article  Google Scholar 

  46. 46.

    Cohen J (1988) Statistical power analysis for the behavioral sciences, 2nd edn. Lawrence Erlbaum Associates Inc Publishers, Hillsdale, NJ

    MATH  Google Scholar 

  47. 47.

    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

    Article  Google Scholar 

Download references

Author information

Affiliations

Authors

Corresponding author

Correspondence to Sadia Ali.

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

Reprints and Permissions

About this article

Verify currency and authenticity via CrossMark

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

Download citation

Keywords

  • Software product line
  • Agile software development
  • Agile software product line
  • Agile product line engineering