Skip to main content
Log in

Extracting core requirements for software product lines

  • Original Article
  • Published:
Requirements Engineering Aims and scope Submit manuscript

Abstract

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.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Fig. 1
Fig. 2

Similar content being viewed by others

Notes

  1. See http://www.omg.org/spec/ReqIF.

  2. The measure by Wu and Palmer calculates similarity by considering the depths of the concepts in WordNet, a large, well-known lexical database for the English language, along with the depth of their Least Common Super (LCS) concepts.

  3. http://www.semanticsimilarity.org/.

  4. http://ws4jdemo.appspot.com/.

  5. http://en.sempar.ims.uni-stuttgart.de/ or http://barbar.cs.lth.se:8081/.

  6. http://opennlp.apache.org/.

  7. https://nlp.stanford.edu/.

  8. See http://is.haifa.ac.il/~iris/research/CoreReq/generated-outputs.html.

  9. The whole material of the experiment can be found at http://is.haifa.ac.il/~iris/research/CoreReq/exp.zip.

References

  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–115

  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–45

    Article  Google Scholar 

  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–149

    Article  Google Scholar 

  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:8

  5. Chen CY, Chen LC, Lin L (2004) Methods for processing and prioritizing customer demands in variant product design. IIE Trans 36(3):203–219

    Article  Google Scholar 

  6. Chen L, Babar MA (2011) A systematic review of evaluation of variability management approaches in software product lines. Inf Softw Technol 53:344–362

    Article  Google Scholar 

  7. Clements P, Northrop L (2002) Software product lines. Addison-Wesley, Reading

    Google Scholar 

  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–682

  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–446

  10. Dori D (2002) Object-process methodology: a holistic systems paradigm. Springer, Berlin

    Book  MATH  Google Scholar 

  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–306

    Article  Google Scholar 

  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–41

    Article  Google Scholar 

  13. Gildea D, Jurafsky D (2002) Automatic labeling of semantic roles. Comput Linguist 28(3):245–288

    Article  Google Scholar 

  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–123

    Google Scholar 

  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–204

  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–434

    Chapter  Google Scholar 

  17. Irshad M, Petersen K, Poulding S (2017) A systematic literature review of software requirements reuse approaches. Inf Softw Technol 93:223–245

    Article  Google Scholar 

  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–706

    Article  Google Scholar 

  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.

  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–734

    Article  Google Scholar 

  21. Kurita T (1991) An efficient agglomerative clustering algorithm using a heap. Pattern Recognit 24(3):205–209

    Article  MathSciNet  Google Scholar 

  22. Landauer TK, Foltz PW, Laham D (1998) Introduction to latent semantic analysis. Discourse Process 25:259–284

    Article  Google Scholar 

  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–500

  24. Manning CD, Raghavan P, Schütze H (2008) Introduction to information retrieval, vol 1(1). Cambridge University Press, Cambridge, p 496

    Book  MATH  Google Scholar 

  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–110

  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–1761

    Article  Google Scholar 

  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–187

    Article  Google Scholar 

  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–780

  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–569

    Article  Google Scholar 

  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–493

    Chapter  Google Scholar 

  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–202

    Chapter  Google Scholar 

  32. Pohl K, Böckle G, van der Linden F (2005) Software product-line engineering: foundations, principles, and techniques. Springer, Berlin

    Book  MATH  Google Scholar 

  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–164

    Chapter  Google Scholar 

  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–325

  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–110

  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–646

    Article  Google Scholar 

  37. Runeson P, Höst M (2009) Guidelines for conducting and reporting case study research in software engineering. Empir Softw Eng 14(2):131–164

    Article  Google Scholar 

  38. Shah US, Jinwala DC (2015) Resolving ambiguities in natural language software requirements: a comprehensive survey. ACM SIGSOFT Softw Eng Notes 40(5):1–7

    Article  Google Scholar 

  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–14

    Article  Google Scholar 

  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–8

  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–290

  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, Dordrecht

    Book  MATH  Google Scholar 

  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 Linguistics

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Iris Reinhartz-Berger.

Additional information

Publisher’s Note

Springer Nature remains neutral with regard to jurisdictional claims in published maps and institutional affiliations.

Rights and permissions

Reprints and permissions

About this article

Check for updates. Verify currency and authenticity via CrossMark

Cite this article

Reinhartz-Berger, I., Kemelman, M. Extracting core requirements for software product lines. Requirements Eng 25, 47–65 (2020). https://doi.org/10.1007/s00766-018-0307-0

Download citation

  • Received:

  • Accepted:

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s00766-018-0307-0

Keywords

Navigation