Towards the automated identification of data constraints in software documents
Open Access
- 17 October 2026
- journal article
- research article
- Published by Springer Nature in Requirements Engineering
- Vol. 31 (2) , 22
Abstract
Data constraints are important business rules that specify the values allowed or required for the data used in a software system. These constraints are typically described in textual software artifacts ( e.g., requirements, developer documents, user manuals, etc. ). In this paper, we focus on automating the task of identifying data constraints in natural language software documents. In order to automate this task, we first study how data constraints are described in natural language. Specifically, we studied 546 data constraints described in the natural language artifacts of nine software systems. We uncovered and documented nine linguistic discourse patterns that stakeholders use to describe data constraints in natural language. We cast the constraint identification and extraction as a text matching and classification problem. We explore the suitability of traditional machine learning techniques, using the discourse patterns we discovered, together with other linguistic elements, as features, for automatically classifying sentence fragments as data constraint descriptions. The best combination of features and learner achieves 63.63% precision and 61.40% recall (62.34% F1). Automating the extraction of data constraints from natural language text is essential for automating their traceability to code, test generation, compliance analysis, etc.Keywords
Funding Information
- National Science Foundation (NSF), United States (1910976)
This publication has 65 references indexed in Scilit:
- Automated categorization of software security requirements: an NLP and ML based approachRequirements Engineering, 2025
- Causality in requirements artifacts: prevalence, detection, and impactRequirements Engineering, 2022
- Classifying code comments in Java software systemsEmpirical Software Engineering, 2019
- Categorizing the Content of GitHub README FilesEmpirical Software Engineering, 2018
- Combining text mining and data mining for bug report classificationJournal of Software: Evolution and Process, 2016
- Recommending reference API documentationEmpirical Software Engineering, 2014
- Pattern Recognition and Classification2013
- What should developers be aware of? An empirical study on the directives of API documentationEmpirical Software Engineering, 2011
- Borderline-SMOTE: A New Over-Sampling Method in Imbalanced Data Sets Learning2005
- The Linguistic Structure of Discourse2005