Extracting core requirements for software product lines

  • Iris Reinhartz-BergerEmail author
  • Mark Kemelman
Original Article


Software Product Line Engineering (SPLE) is a promising paradigm for reusing knowledge and artifacts among similar software products. However, SPLE methods and techniques require a high up-front investment and hence are profitable if several similar software products are developed. Thus in practice adoption of SPLE commonly takes a bottom-up approach, in which analyzing the commonality and variability of existing products and transforming them into reusable ones (termed core assets) are needed. These time-consuming and error-prone tasks call for automation. The literature partially deals with solutions for early software development stages, mainly in the form of variability analysis. We aim for further creation of core requirements—reusable requirements that can be adapted for different software products. To this end, we introduce an automated extractive method, named CoreReq, to generate core requirements from product requirements written in a natural language. The approach clusters similar requirements, captures variable parts utilizing natural language processing techniques, and generates core requirements following an ontological variability framework. Focusing on cloning scenarios, we evaluated CoreReq through examples and a controlled experiment. Based on the results, we claim that core requirements generation with CoreReq is feasible and usable for specifying requirements of new similar products in cloning scenarios.


Software Product Line Engineering Systematic reuse Requirements specification Variability analysis 



  1. 1.
    Andersen N, Czarnecki K, She S, Wąsowski A (2012) Efficient synthesis of feature models. In: Proceedings of the 16th international software product line conference, vol 1. ACM, pp 106–115Google Scholar
  2. 2.
    Assunção WK, Lopez-Herrejon RE, Linsbauer L, Vergilio SR, Egyed A (2017) Reengineering legacy applications into software product lines: a systematic mapping. Empir Softw Eng 22(6):1–45CrossRefGoogle Scholar
  3. 3.
    Bakar NH, Kasirun ZM, Salleh N (2015) Feature extraction approaches from natural language requirements for reuse in software product lines: a systematic literature review. J Syst Softw 106:132–149CrossRefGoogle Scholar
  4. 4.
    Berger T, Rublack R, Nair D, Atlee JM, Becker M, Czarnecki K, Wąsowski A (2013) A survey of variability modeling in industrial practice. In: Proceedings of the seventh international workshop on variability modeling of software-intensive systems. ACM, pp 7:1–7:8Google Scholar
  5. 5.
    Chen CY, Chen LC, Lin L (2004) Methods for processing and prioritizing customer demands in variant product design. IIE Trans 36(3):203–219CrossRefGoogle Scholar
  6. 6.
    Chen L, Babar MA (2011) A systematic review of evaluation of variability management approaches in software product lines. Inf Softw Technol 53:344–362CrossRefGoogle Scholar
  7. 7.
    Clements P, Northrop L (2002) Software product lines. Addison-Wesley, ReadingGoogle Scholar
  8. 8.
    Deeptimahanti DK, Babar MA (2009) An automated tool for generating UML models from natural language requirements. In: Proceedings of the 2009 IEEE/ACM international conference on automated software engineering, pp 680–682Google Scholar
  9. 9.
    Domann C, Juergens E, Streit J (2009) The curse of copy and paste cloning in requirements specifications. In: Proceedings of the 3rd international symposium on empirical software engineering and measurement. IEEE Computer Society, pp 443–446Google Scholar
  10. 10.
    Dori D (2002) Object-process methodology: a holistic systems paradigm. Springer, BerlinCrossRefGoogle Scholar
  11. 11.
    Galster M, Weyns D, Tofan D, Michalik B, Avgeriou P (2014) Variability in software systems—a systematic literature review. IEEE Trans Softw Eng 40(3):282–306CrossRefGoogle Scholar
  12. 12.
    Génova G, Fuentes JM, Llorens J, Hurtado O, Moreno V (2013) A framework to measure and improve the quality of textual requirements. Requir Eng 18(1):25–41CrossRefGoogle Scholar
  13. 13.
    Gildea D, Jurafsky D (2002) Automatic labeling of semantic roles. Comput Linguist 28(3):245–288CrossRefGoogle Scholar
  14. 14.
    Halmans G, Pohl K, Sikora E (2008) Documenting application-specific adaptations in software product line engineering. In: Proceedings of the 20th international conference on advanced information systems engineering (CAiSE’2008). Lecture notes in computer science, vol 5074, pp 109–123Google Scholar
  15. 15.
    Ibrahim M, Ahmad R (2010) Class diagram extraction from textual requirements using natural language processing (NLP) techniques. In: IEEE 2010 second international conference on computer research and development, pp 200–204Google Scholar
  16. 16.
    Ilieva M, Ormandjieva O (2005) Automatic transition of natural language software requirements specification into formal presentation. In: Natural language processing and information systems, pp 427–434Google Scholar
  17. 17.
    Irshad M, Petersen K, Poulding S (2017) A systematic literature review of software requirements reuse approaches. Inf Softw Technol 93:223–245CrossRefGoogle Scholar
  18. 18.
    Itzik N, Reinhartz-Berger I, Wand Y (2016) Variability analysis of requirements: considering behavioral differences and reflecting stakeholders’ perspectives. IEEE Trans Softw Eng 42(7):687–706CrossRefGoogle Scholar
  19. 19.
    Kang KC, Cohen SG, Hess JA, Novak WE, Peterson AS (1990) Feature-oriented domain analysis (FODA) feasibility study (No. CMU/SEI-90-TR-21). Carnegie-Mellon University, Software Engineering Institute, Pittsburgh, PA.Google Scholar
  20. 20.
    Kitchenham BA, Lawrence S, Lesley P, Pickard M, Jones PW, Hoaglin DC, Emam KE (2002) Preliminary guidelines for empirical research. IEEE Trans Softw Eng 28(8):721–734CrossRefGoogle Scholar
  21. 21.
    Kurita T (1991) An efficient agglomerative clustering algorithm using a heap. Pattern Recognit 24(3):205–209MathSciNetCrossRefGoogle Scholar
  22. 22.
    Landauer TK, Foltz PW, Laham D (1998) Introduction to latent semantic analysis. Discourse Process 25:259–284CrossRefGoogle Scholar
  23. 23.
    Lee H, Recasens M, Chang A, Surdeanu M, Jurafsky D (2012) Joint entity and event coreference resolution across documents. In: Proceedings of the 2012 joint conference on empirical methods in natural language processing and computational natural language learning. Association for Computational Linguistics, pp 489–500Google Scholar
  24. 24.
    Manning CD, Raghavan P, Schütze H (2008) Introduction to information retrieval, vol 1(1). Cambridge University Press, Cambridge, p 496CrossRefGoogle Scholar
  25. 25.
    Martinez J, Ziadi T, Bissyandé TF, Klein J, Le Traon Y (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, pp 101–110Google Scholar
  26. 26.
    McZara J, Sarkani S, Holzer T, Eveleigh T (2015) Software requirements prioritization and selection using linguistic tools and constraint solvers: a controlled experiment. Empir Softw Eng 20(6):1721–1761CrossRefGoogle Scholar
  27. 27.
    Mich L (1996) NL-OOPS: from natural language to object oriented requirements using the natural language processing system LOLITA. Nat Lang Eng 2(2):161–187CrossRefGoogle Scholar
  28. 28.
    Mihalcea R, Corley C, Strapparava C (2006) Corpus-based and knowledge-based measures of text semantic similarity. In: The 21st national conference on artificial intelligence (AAAI’2006), vol 1, pp 775–780Google Scholar
  29. 29.
    Moon M, Yeom K, Chae HS (2005) 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–569CrossRefGoogle Scholar
  30. 30.
    Nazir F, Butt WH, Anwar MW, Khattak MAK (2017) The applications of natural language processing (NLP) for software requirement engineering: a systematic literature review. In: International conference on information science and applications, pp 485–493Google Scholar
  31. 31.
    Omoronyia I, Sindre G, Stålhane T, Biffl S, Moser T, Sunindyo W (2010) A domain ontology building process for guiding requirements elicitation. In: International working conference on requirements engineering: foundation for software quality, pp 188–202Google Scholar
  32. 32.
    Pohl K, Böckle G, van der Linden F (2005) Software product-line engineering: foundations, principles, and techniques. Springer, BerlinCrossRefGoogle Scholar
  33. 33.
    Reinhartz-Berger I, Itzik N, Wand Y (2014) Analyzing variability of software product lines using semantic and ontological considerations. In: Proceedings of the 26th international conference on advanced information systems engineering (CAiSE’14). Lecture notes in computer science, vol 8484, pp 150–164Google Scholar
  34. 34.
    Reinhartz-Berger I, Zamansky A, Kemelman M (2015). Analyzing variability of cloned artifacts: formal framework and its application to requirements. In: International conference on enterprise, business-process and information systems modeling. Springer, pp 311–325Google Scholar
  35. 35.
    Rubin J, Czarnecki K, Chechik M (2013) Managing cloned variants: a framework and experience. In: Proceedings of the 17th international software product line conference. ACM, pp 101–110Google Scholar
  36. 36.
    Rubin J, Czarnecki K, Chechik M (2015) Cloned product variants: from ad-hoc to managed software product lines. Int J Softw Tools Technol Transf 17(5):627–646CrossRefGoogle Scholar
  37. 37.
    Runeson P, Höst M (2009) Guidelines for conducting and reporting case study research in software engineering. Empir Softw Eng 14(2):131–164CrossRefGoogle Scholar
  38. 38.
    Shah US, Jinwala DC (2015) Resolving ambiguities in natural language software requirements: a comprehensive survey. ACM SIGSOFT Softw Eng Notes 40(5):1–7CrossRefGoogle Scholar
  39. 39.
    Sharma A, Kushwaha DS (2011) Natural language based component extraction from requirement engineering document and its complexity analysis. ACM SIGSOFT Softw Eng Notes 36(1):1–14CrossRefGoogle Scholar
  40. 40.
    Sharma VS, Ramnani RR, Sengupta S (2014) A framework for identifying and analyzing non-functional requirements from text. In: Proceedings of the 4th international workshop on twin peaks of requirements and architecture, pp 1–8Google Scholar
  41. 41.
    Svahnberg M, Aurum A, Wohlin C (2008) Using students as subjects: an empirical evaluation. In: Proceedings of the second ACM-IEEE international symposium on empirical software engineering and measurement, Kaiserslautern, Germany, pp 288–290Google Scholar
  42. 42.
    Wohlin C, Runeson P, Höst M, Ohlsson M, Regnell B, Wesslén A (2000) Experimentation in software engineering: an introduction. Kluwer Academic Publishers, DordrechtCrossRefGoogle Scholar
  43. 43.
    Wu Z, Palmer M (1994) Verbs semantics and lexical selection. In: Proceedings of the 32nd annual meeting on Association for Computational Linguistics. Association for Computational LinguisticsGoogle Scholar

Copyright information

© Springer-Verlag London Ltd., part of Springer Nature 2019

Authors and Affiliations

  1. 1.Department of Information SystemsUniversity of HaifaHaifaIsrael

Personalised recommendations