TooDY is a natural language processing tool designed to identify variability indicators in requirement documents. It leverages lexical and syntactic analysis and is built upon the spaCy library.
This tool situates itself in the research line of specifying software product lines (SPL) from natural language requirement documents. Ambiguities in requirement documents often lead to inconsistencies between client expectations and the developed product, resulting in undesirable rework of artifacts. However, ambiguity can also be a means to defer decisions.
Building on this concept, it has been shown that ambiguity detection can also serve as a way to capture hidden aspects of variability in requirements, utilizing specific variability indicators that differ from known ambiguity indicators.
In order to execute the application locally, you'll need to install the required dependencies and libraries. Clone this repository first:
git clone https://github.com/matteogiorgi/toodyThe application is written in Python and depends on several Python libraries, including:
- spaCy for natural language processing.
- Flask a lightweight WYSIWYG web application framework.
- Flask-Login for managing user sessions.
- Flask-SQLAlchemy an ORM for Flask applications.
- Werkzeug for password hashing and authentication.
- APScheduler for scheduling background jobs.
- python-slugify for generating slugs from strings.
- Pytz for timezone calculations.
To install the required dependencies, first make shure you have Python and pip installed. Then, run the following command:
pip install flask flask_login flask_sqlalchemy werkzeug apscheduler python-slugify pytz
pip install -U pip setuptools wheel
pip install -U spacyAfter installing spaCy, you'll need to download the language model:
python -m spacy download en_core_web_smTo start the Flask server on your local machine, navigate to the project directory and run:
python app.pyThis project has been developed as the final project for the Bachelor's thesis in Computer Science at the University of Pisa. The thesis demonstrates the application of natural language processing techniques and delivers a tool for detecting variability indicators in requirement documents.
- Dissertation: for an in-depth understanding of the theoretical background and the methodologies adopted in this project, you can access the dissertation at this link.
- Live Application: to see the web application in action, visit toody.pythonanywhere.com.
This project is licensed under the GPL-3.0 license - see the LICENSE file for details.

