Semantic information extraction for software requirements using semantic role labeling

Domain analysis is important to core assets development in software product line (SPL) engineering, and in software-as-a-service (SaaS) engineering. Traditional methods of domain analysis, however, are heavily based on manual labor. They depend on domain experts' experience to analyze the commonality and variability of systems in a domain, which appears to be an obstacle for many organizations which tend to provide SaaS service or to launch a software product line (SPL). In this paper, we propose a new approach to automatically extract the semantic information from software requirements specifications (SRSs). We address this issue by combining techniques of semantic role labeling and domain knowledge modeling. In this approach, we selected frequent verbs from software requirement specification documents in the e-commerce domain, and built the semantic frames for those verbs. Then the selected sentences were labeled manually and the result was used as training examples for machine learning. To obtain the accurate features of the examples we correct the parsing result of Stanford Parser with the help of domain knowledge. During the labeling process, we adopt a sequential way in which the previous labeled results will be used to construct dynamic features for the identification of the subsequent semantic roles. The proposed approach was implemented and evaluated. The preliminary result shows the approach is effective and reliable. The extracted semantic information can be used to model the variability and commonality of functional requirements in the domain engineering.

[1]  William J. Black Acquisition of Conceptual Data Models from Natural Language Descriptions , 1987, EACL.

[2]  Elisabeth Métais,et al.  Database Design Tools: An Expert System Approach , 1985, VLDB.

[3]  Poonam R.Kothari,et al.  Processing Natural Language Requirement to Extract Basic Elements of a Class , 2012 .

[4]  David M. Weiss,et al.  Software Product-Line Engineering: A Family-Based Software Development Process , 1999 .

[5]  Peter Sawyer,et al.  Shallow knowledge as an aid to deep understanding in early phase requirements engineering , 2005, IEEE Transactions on Software Engineering.

[6]  Nan Niu,et al.  Extracting and Modeling Product Line Functional Requirements , 2008, 2008 16th IEEE International Requirements Engineering Conference.

[7]  Yinglin Wang,et al.  Extracting Software Functional Requirements from Free Text Documents , 2009, 2009 International Conference on Information and Multimedia Technology.

[8]  Wei-Tek Tsai,et al.  Software-as-a-service (SaaS): perspectives and challenges , 2013, Science China Information Sciences.

[9]  Yinglin Wang,et al.  Model-Driven Derivation of Domain Functional Requirements from Use Cases , 2010, J. Softw. Eng. Appl..

[10]  Mihai Surdeanu,et al.  Combination Strategies for Semantic Role Labeling , 2007, J. Artif. Intell. Res..

[11]  Daniel Gildea,et al.  Automatic Labeling of Semantic Roles , 2000, ACL.

[12]  Rodina Ahmad,et al.  Class Diagram Extraction from Textual Requirements Using Natural Language Processing (NLP) Techniques , 2010, 2010 Second International Conference on Computer Research and Development.

[13]  Edward Carney,et al.  Natural Language Processing of Textual Requirements , 2015, ICONS 2015.

[14]  Florinda Imeri,et al.  Review of Software Reuse Processes , 2013 .