/SHACL4J

Primary LanguagePythonMIT LicenseMIT

SHACL4J

SHACL4J es una herramienta que tiene como objetivo servir de soporte para validar requerimientos provenientes de un programa de gestión de proyectos.

Estructura

  • Data: el dataset con historias exportadas de un proyecto finalizado que utilizó el producto Jira
  • Utils: módulos para una corrección básica con Spacy del texto extraído del dataset
  • Ontology: la ontología a utilizar para conceptualizar todos los elementos necesarios de la Ingeniería de Software que servirán para formalizar los requerimientos extraídos de Jira
  • Src: contiene el código principal para la conversión de formato del dataset original, el script que genera individuos en el grafo y el validador SHACL

Instalación y ejecución

git clone https://github.com/tanevitch/SHACL4J.git
cd SHACL4J
python -m venv .env
.env\Scripts\activate
pip install -r requirements.txt
python main.py

Contribución

Para la ontología utilizada se seleccionaron conceptos de SWORE [1] y Requirements Ontology [2], realizando los alineamientos necesarios para aquellos términos que representan semánticamente lo mismo, y modificaciones menores para reemplazar las clases RO:LevelOfCost y RO:LevelOfRisk por propiedades de datos como las que define SWORE:priority y SWORE:status, quedando como resultado EX:cost y EX:risk, con rango Requirement y dominio una cadena de texto.

Para el poblado del grafo se toma como entrada la ontología onto_entrada.owl y el dataset stories.json (que aparece por la conversión de DatasetStories.xlsx a json), realizando el un pequeño procesamiento de datos con Spacy para eliminar caracteres no deseados e identificar que se cumplan ciertos patrones sintácticos.

A partir del grafo output.xml se realiza la verificación de consistencia, completitud y calidad aplicando reglas (originalmente presentadas en [2]) escritas en lenguaje SHACL, dando como resultado un archivo de texto donde se detallan los errores en caso de existir


[1]: Riechert, T., Lauenroth, K., & Lehmann, J. (2007). SWORE - SoftWiki Ontology for Requirements Engineering. 111-118.

[2]: Siegemund, K. (2015). Contributions to ontology-driven requirements engineering [PhD Thesis]. Citeseer.

License

MIT