Skip to content

matteogiorgi/toody

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

TooDY, a new Tool for Detecting variabilitY

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:

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

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

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.

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

License

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

About

project for my BSc thesis

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published