Incremental testing and maintenance of UML/OCL integrity constraints


Xavier Oriol
Data de defensa:
Departament de Llenguatges i Sistemes Informàtics, Universitat Politècnica de Catalunya.

Ensuring the correctness of data in an information system is a crucial task. Therefore, software engineers specify integrity restrictions that should be met by system data. These restrictions, however, may be violated each time a user modifies the status of the data. To avoid this, the system should either verify that the update of the data does not cause any violation of the restrictions before applying it, or repair the restrictions once the update is applied (that is, apply the update together with certain corrective measures to avoid violations). This thesis is a contribution to both problems, that is, both in the problem of automatically checking the restrictions and maintaining them, considering the information systems and their restrictions described in two of the most used conceptual modeling languages ​​of the moment: UML to describe the information system, and OCL to describe restrictions.

In the first part of the thesis, we begin by analyzing the expressiveness of the OCL language to define integrity restrictions. As a result of this analysis, we demonstrate that the OCL language is so expressive that the problem of checking the restrictions is non-decidable. To alleviate this phenomenon, we determine the subset of OCL equivalent to relational algebra (OCLfo), which is therefore less treatable in the case of constraint checking. Consequently, in the second part, we deal with the problem of checking / maintaining OCLfo restrictions based on a pre-existing method in the field of relational databases (the method of events) which we extend in different directions. In the case of the verification of restrictions, we extend the method of events to be able to deal with aggregation functions (for example, counts, total sums, etc.) in such a way that we increase the expressiveness of the restrictions that can be faced ( that is, OCLfo extended with aggregates), and in addition, we exploit this extension to improve the execution time of the original event method.

In the case of the maintenance of restrictions, we demonstrate that with a slight variation of the method of events we can solve the maintenance of restrictions using an implementation of the well-known chase algorithm. At this point, we observe how the problem of maintenance of restrictions remains undecided even in the case of OCLfo, and we determine another subset of OCL, the OCLuniv, which is decided by maintenance. Finally, in order to demonstrate the high applicability of our proposal, in the third part of the thesis, we export our results in another context, the Logics Description, where we demonstrate that with small variations of our method we can maintain a DL-Lite ontology in time polynomial using SQL queries.