Comprovació i manteniment incrementals de les restriccions d’integritat UML/OCL

Tesi

Estudiant:
Xavier Oriol
Director:
Data de defensa:
11/07/2017
Departament:
Departament de Llenguatges i Sistemes Informàtics, Universitat Politècnica de Catalunya.

Assegurar la correctesa de les dades d’un sistema d’informació és una tasca crucial. Per això, els enginyers del software especifiquen restriccions d’integritat que haurien de ser satisfetes per les dades del sistema. Aquestes restriccions, no obstant, poden violar-se cada vegada que un usuari modifica l’estat de les dades. Per evitar-ho, el sistema hauria de, o bé, comprovar que l’actualització de les dades no causa cap violació de les restriccions abans d’aplicar-la, o bé reparar les restriccions un cop aplicada l’actualització (és a dir, aplicar l’actualització conjuntament amb certes mesures correctives per evitar les violacions). Aquesta tesi és una contribució a ambdós problemes, és a dir, tant en el problema de comprovar automàticament les restriccions com el de mantenir-les, considerant els sistemes d’informació i les seves restriccions descrites en dos dels llenguatges de modelització conceptual més usats del moment: UML per descriure el sistema d’informació, i OCL per descriure’n les restriccions.

A la primera part de la tesi, comencem analitzant l’expressivitat del llenguatge OCL per definir restriccions d’integritat. Fruït d’aquest anàlisi, demostrem que el llenguatge OCL és tan expressiu que el problema de comprovar-ne les restriccions és no-decidible. Per pal·liar aquest fenomen, determinem el subconjunt d’OCL equivalent a l’àlgebra relacional (OCLfo), el qual és, per tant, tractable almenys en el cas de la comprovació de restriccions. Conseqüentment, a la segona part, tractem el problema de comprovació/manteniment de restriccions OCLfo partint d’un mètode preexistent en el camp de les bases de dades relacional (el mètode dels esdeveniments) el qual estenem en diferents direccions. En el cas de la comprovació de restriccions, estenem el mètode dels esdeveniments per poder fer front a funcions d’agregació (per exemple, comptatges, sumes totals, etc.) de tal manera que augmentem l’expressivitat de les restriccions que poden fer front (és a dir, OCLfo estès amb agregats), i a més, explotem aquesta extensió per millorar el temps d’execució del mètode dels esdeveniments original.

En el cas del manteniment de restriccions, demostrem que amb una lleugera variació del mètode dels esdeveniments podem resoldre el manteniment de restriccions utilitzant una implementació del conegut algorisme chase. En aquest punt, observem com el problema de manteniment de restriccions segueix sent no-decidible fins i tot en el cas d’OCLfo, i determinem un altre subconjunt d’OCL, l’OCLuniv, que sí és decidible pel manteniment. Finalment, per tal de demostrar l’alta aplicabilitat de la nostra proposta, a la tercera part de la tesi, exportem els nostres resultats en un altre context, els Descripcion Logics, on demostrem que amb petites variacions del nostre mètode podem mantenir una ontologia DL-Lite en temps polinòmic mitjançant consultes SQL.