An NLP Tool for Checking Conformance to Requirement Templates


RETA (REquirements Template Analyzer), formerly called RUBRIC, is a flexible tool for automatically checking natural language requirements against templates for conformance. RETA further provides a range of diagnostics to highlight potentially problematic syntactic constructs in natural language statements which can result in ambiguities. 
RETA is based on a Natural Language Processing (NLP) technique, known as text chunking and has been implemented as a plugin for an open-source and freely available NLP framework, called GATE. Through the GATE user interface, RETA enables users to:
  • Automatically verify conformance to requirement templates. Our public distribution of the RETA provides this function only for Rupp's template.
  • Detect constructs, including among others passive voice, and use of conjunctions and pronouns, which can potentially lead to ambiguities and therefore need to be carefully reviewed during requirements inspections.
  • Obtain intuitive feedback, through visual text markup, about template conformance and adherence to requirements writing best practices.


Relevant Publications

Chetan AroraMehrdad SabetzadehLionel Briand, Frank Zimmer, Raul Gnaga. "Automatic Checking of Conformance to Requirement Boilerplates via Text Chunking: An Industrial Case Study". 7th ACM/IEEE International Symposium on Empirical Software Engineering and Measurement (ESEM 2013). Baltimore, MD, USA 2013. [Download]

Chetan AroraMehrdad SabetzadehLionel Briand, Frank Zimmer, "Automated Checking of Conformance to Requirements Templates Using Natural Language Processing", IEEE Transactions on Software Engineering, vol.41, no. 10, pp. 944-968, Oct. 2015. [Download]

System Requirements

RETA has been tested on Windows/Mac systems with:
  • Java Development Kit (JDK) 1.8.0 and above [Download]
  • GATE Framework 8.1 release [Download]
    • Note: The distribution of RETA we provide through this website has not been tested with earlier versions of GATE. Please make sure you download Release 8.1 (May 11th 2014).

Download & Installation

With JDK and GATE installed, you can invoke GATE and start RETA from the GATE .xgapp file, by following these steps.
  1. Download the zip file: and unzip it.
  2. The unzipped folder contains application.xgapp file, and two sub-folders (application-resources  and plugins).
  3. Launch the installed GATE framework application on your computer, and select the File>Restore Application from File.. option.
  4. It will open a pop-up window with heading "Select a file for this resource". Select the application.xgapp file unzipped in step 2.
  5. It will load relevant resources for RETA automatically. In addition, you will get an example requirements specification document and corpus loaded (the same requirements shown in the video demo above). This allows you to try out RETA and see the feedback it generates in seconds!
  6.  If you are interested in applying RETA to other requirements specifications, simply create new documents and corpuses through the GATE interface and apply the ReTA_Pipeline. You can also save the pipeline for future use.To do this, right-click on ReTA_Pipeline under Applications and choose Save Application State.
    • Note: The correct sequence of NLP modules in ReTA_Pipeline is: 

Tool Maturity

RETA has been used in a number of industrial case studies, some of which were conducted in collaboration with our industry partner, SES TechCom (see our IEEE TSE paper above for details). After the completion of the case studies, the requirements experts involved were given a hands-on tutorial on how to use RETA. Following the training, RETA has been used independently by the experts during requirements inspections. While we have not yet solicited systematic feedback from the experts regarding their perception about the tool, the informal feedback we have received so far has been positive.

 RETA has been recently cited in a public research report involving Nuclear Waste Management Fund, Govt. Finland. "Controlled natural language requirements in the design and analysis of safety critical I&C systems".