TooDY, a new Tool for Detecting variabilitY

TooDY-welcome screenshot

Project Description

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.

Dependencies and Local Deployment

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/toody

Required Libraries

The application is written in Python and depends on several Python libraries, including:

Installing Dependencies

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 spacy

Setting up spaCy

After installing spaCy, you'll need to download the language model:

python -m spacy download en_core_web_sm

Running the Application Locally

To start the Flask server on your local machine, navigate to the project directory and run:

python app.py

Additional Information

TooDY-lista screenshot

Academic Significance

This 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.

License

This project is licensed under the GPL-3.0 license - see the LICENSE file for details.