  Software requirements specification is undoubtedly critical for the whole
software life-cycle. Nowadays, writing software requirements specifications
primarily depends on human work. Although massive studies have been proposed to
fasten the process via proposing advanced elicitation and analysis techniques,
it is still a time-consuming and error-prone task that needs to take domain
knowledge and business information into consideration. In this paper, we
propose an approach, named ReqGen, which can provide recommendations by
automatically generating natural language requirements specifications based on
certain given keywords. Specifically, ReqGen consists of three critical steps.
First, keywords-oriented knowledge is selected from domain ontology and is
injected to the basic Unified pre-trained Language Model (UniLM) for domain
fine-tuning. Second, a copy mechanism is integrated to ensure the occurrence of
keywords in the generated statements. Finally, a requirement syntax constrained
decoding is designed to close the semantic and syntax distance between the
candidate and reference specifications. Experiments on two public datasets from
different groups and domains show that ReqGen outperforms six popular natural
language generation approaches with respect to the hard constraint of
keywords(phrases) inclusion, BLEU, ROUGE and syntax compliance. We believe that
ReqGen can promote the efficiency and intelligence of specifying software
requirements.
