Vision to Specification: Automating the Transition from Conceptual Features to Functional Requirements
By: Xiaoli Lian , Jiajun Wu , Xiaoyun Gao and more
Potential Business Impact:
Helps computers write clear instructions for software.
The translation of high-level abstract features into clear, and testable functional requirements (FRs) is a crucial step in software development, bridging the gap between user needs and technical specifications. In engineering practice, significant expert effort is needed for this translation. Our approach, EasyFR, streamlines the process by recommending Semantic Role Labeling (SRL) sequences for the given abstract features to guide Pre-trained Language Models (PLMs) in producing cohesive FR statements. By analyzing ten diverse datasets, we induce two variable SRL templates, each including two configurable parts. For concrete features, our proposed Key2Temp model can construct the appropriate variant of the SRL template by identifying a variable SRL template and placing the feature tokens in the appropriate slots. In this way, our approach reframes the process of requirement generation into a structured slot-filling activity. Experimental validation on four open datasets demonstrates that EasyFR outperforms three advanced Natural language generation (NLG) approaches, including GPT4, particularly when existing FRs are available for training. The positive influence of our SRL template variant recommendations is further confirmed through an ablation study. We believe that our results indicate a notable step forward in the realm of automated requirements synthesis, holding potential to improve the process of requirements specification in future software projects.
Similar Papers
Automated Non-Functional Requirements Generation in Software Engineering with Large Language Models: A Comparative Study
Software Engineering
Helps computers find hidden software problems early.
Incorporating Verification Standards for Security Requirements Generation from Functional Specifications
Software Engineering
Helps computers find security problems in code.
Formalising Software Requirements using Large Language Models
Software Engineering
Helps make sure computer code matches what people want.