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.


Similar content being viewed by others
Notes
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.
The whole material of the experiment can be found at http://is.haifa.ac.il/~iris/research/CoreReq/exp.zip.
References
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
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
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
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
Chen CY, Chen LC, Lin L (2004) Methods for processing and prioritizing customer demands in variant product design. IIE Trans 36(3):203–219
Chen L, Babar MA (2011) A systematic review of evaluation of variability management approaches in software product lines. Inf Softw Technol 53:344–362
Clements P, Northrop L (2002) Software product lines. Addison-Wesley, Reading
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
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
Dori D (2002) Object-process methodology: a holistic systems paradigm. Springer, Berlin
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
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
Gildea D, Jurafsky D (2002) Automatic labeling of semantic roles. Comput Linguist 28(3):245–288
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
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
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
Irshad M, Petersen K, Poulding S (2017) A systematic literature review of software requirements reuse approaches. Inf Softw Technol 93:223–245
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
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.
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
Kurita T (1991) An efficient agglomerative clustering algorithm using a heap. Pattern Recognit 24(3):205–209
Landauer TK, Foltz PW, Laham D (1998) Introduction to latent semantic analysis. Discourse Process 25:259–284
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
Manning CD, Raghavan P, Schütze H (2008) Introduction to information retrieval, vol 1(1). Cambridge University Press, Cambridge, p 496
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
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
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
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
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
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
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
Pohl K, Böckle G, van der Linden F (2005) Software product-line engineering: foundations, principles, and techniques. Springer, Berlin
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
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
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
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
Runeson P, Höst M (2009) Guidelines for conducting and reporting case study research in software engineering. Empir Softw Eng 14(2):131–164
Shah US, Jinwala DC (2015) Resolving ambiguities in natural language software requirements: a comprehensive survey. ACM SIGSOFT Softw Eng Notes 40(5):1–7
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
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
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
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
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
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.
Rights and permissions
About this article
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
Received:
Accepted:
Published:
Issue Date:
DOI: https://doi.org/10.1007/s00766-018-0307-0