Automatically Finding Integrity Violations In Database-Centric Applications
This web page is a companion to our FSE 2015 paper submission entitled "Automatically Finding Integrity Violations In Database-Centric Applications".
1. What is DACITE?
We propose a novel solution for DcA Constraints resolutIon and TEsting (DACITE) that enables stakeholders to automatically obtain assertions that semantically relate attributes. That is, after annotating a small number of expressions and statements in the source code that obtain values of attributes from the databases, a static analysis is performed to obtain constraints that relate these attributes. On the database side, we apply associative rule mining (ARM) to obtain constraints directly from the data that relate different attributes. Next, we combine these constrains and we use SAT-solvers to determine if a solution exists for the combined constraint. If no such solution is found, DACITE marks these constraints as potential semantic errors and it issues a warning to stakeholders.
The following diagram depicts the DACITE components:

System |
Commit ID |
Link to the commit |
Link to the commit messages |
Elastic Search |
b81e3de85e7ee2285e61ce2fa3bb5286cd65ffbd |
||
Elastic Search |
9282ae4ffd14545d13e7273573ab5010b7545e23 |
||
Elastic Search |
93a8e80affc855f156d9295568409aab3972ffa1 |
||
Elastic Search |
bdced9c7723816d2a1c4f777701493d242ad6c2a |
||
Elastic Search |
fc6bc4c4776a2f710f57616e3495aaf6a230c4d3 |
||
Retrofit |
44e798e2834d2c2d42b8310f1838169b6310411f |
||
Retrofit |
ab26b8b06e5ded58306496e44d315622246f1ae7 |
||
Retrofit |
654f3f0eb47ec33ec5a5a7240c5c12ec2fa58c35 |
||
Retrofit |
c6776aa9d6f1ef7708e285b785921d1d69d7dbe6 |
||
Retrofit |
ed2e8a5b52e933034b74e5aa66bc42862bfd30de |
||
Spring Social |
000721a5285807b147e8937f53af3667a79b131e |
||
Spring Social |
852c62509660b4ea9f64eedc483da7c3c3a6957f |
||
Spring Social |
b190311e40eb7ac48c95da814f94afc55105e282 |
||
Spring Social |
fac93fc12d8027381fb3aacfdb7d5b1840dccb43 |
||
Spring Social |
d2ec33111fb5d12e79480a34bd001971c18f739b |
||
Spring Social |
5b1c92e9bd5b2854379803d49d3d246f7ac480c1 |
||
Spring Social |
03b308d622200f77dab9827500e40a50bb3491d7 |
||
Spring Social |
8b1f8d8d6e4589926d0bab4cce5ef71e5f32e352 |
||
Spring Social |
0f2f72fb3e8cfb2cbbef67fbc958a89532250b92 |
||
Spring Social |
7b029f2b765e9a789b5671f0e768e758f716cd1a |
||
JFreeChart |
01e24fcb3a8c0bc77570cc8e04604b92c3cf0768 |
||
JFreeChart |
73e9a423c96a6275df2571fa901efbef3011ed2f |
||
JFreeChart |
12b3d349a597ad09df0f324c4ab7e0d3ab65172e |
||
JFreeChart |
74e804eb896bb7fc70fb1bb3071322ff74cd9fc5 |
||
JFreeChart |
eebe22d75077c33ec126a29a2573f307c3e5e2b8 |
||
JFreeChart |
2f6c23b2dbcc5dab755ed2e78bafcc217fa33456 |
||
JFreeChart |
6e9c0bdfe2b2957a0f4d06757ad6ec5e5d2560fa |
||
JFreeChart |
8c4514dec8254d530e311be36075b6290a240ad9 |
||
JFreeChart |
7eb6e6f248dfd272d1e8c95300f9945c41aa05d7 |
||
JFreeChart |
ecbd702c2c81a04a0f2e75162b650d700920b490 |
||
Apache Solr |
aafff21e67ae628085d6b1c53e7526bbf6424d2c |
||
Apache Solr |
6adadf76461893a30fee9b3be461e9b6d69c690b |
||
Apache Solr |
d4e14735a500c18a91e72a0fe6be4b09b995ed8d |
||
Apache Solr |
783d774562343190ea543efe452f128809645456 |
||
Apache Solr |
78950416c289dc72ab7bd88349603ec7fed9ccfe |
||
Apache Solr |
088f1973021abdc83d2207fb2543182ec26d2f38 |
||
Apache Solr |
7702de0a6ca22f9aad670f5952bd85618d105c9d |
||
Apache Solr |
761ff1a1433ba27be3e64387f484dcf339368dd8 |
||
Apache Solr |
fa452cec34e242610bd41ff0c2a40c9f19738ebd |
||
Apache Solr |
c9b036ce2461a956964f7649cadd90c5e4f1a5a1 |
||
Apache Felix |
d98e08a5c8eb9548b32c0fed96c0e3108095acd8 |
||
Apache Felix |
52b15d67f3a85f97f1771aa50b0e2e24a0fc3dd5 |
||
Apache Felix |
7a9a3cece7e0eef1d6bfa2f882a8f3e108871e03 |
||
Apache Felix |
41ff672929c81d805313b4aec902b47963733c69 |
||
Apache Felix |
5ae51c582e168d0d11475ceed0bcde5dcf750f0c |
||
Apache Felix |
5d22673a314129bcf5aa575513f31d228d65085e |
||
Apache Felix |
5bef4a83258249f4204d2c33a15cc9888d33bf5a |
||
Apache Felix |
993435b880210933c1cd1933abf36cdd32cbade9 |
||
Apache Felix |
d64965620accd9e91c308399a03cd32ec31276a9 |
||
Apache Felix |
e26ed202103200c03ac5b413be3410d628458ff2 |
2. Results


The spreadsheets with the data collected can be downloaded here.
The sheets in the files have the following data:
- The experiment data for our subjects
- Time consumption for all three phases
- Recall and False positive report
3. User Study
Results of the user study without using DACITE.
APP | Recall(cons) | Precision(cons) | FScore(cons) | Recall(in) | Precision(in) | FScore(in) | Time(m)* |
UMAS | 0.22 | 0.50 | 0.30 | 0.44 | 0.33 | 0.36 | 20 |
Durbodax | 0.56 | 0.56 | 0.56 | 0.56 | 0.67 | 0.60 | 20 |
Broker | 0.67 | 1.00 | 0.74 | 0.89 | 0.76 | 0.81 | 15.3 |
Potholes | 0 | 0 | 0 | 0.67 | 0.53 | 0.57 | 20 |
Results of the user study using DACITE.
APP | Recall(cons) | Precision(cons) | FScore(cons) | Recall(in) | Precision(in) | FScore(in) | Time(m)* |
UMAS | 0.56 | 1.00 | 0.67 | 0.78 | 0.67 | 0.71 | 17 |
Durbodax | 0.44 | 0.58 | 0.45 | 0.89 | 0.70 | 0.74 | 9.6 |
Broker | 1.00 | 1.00 | 1.00 | 0.89 | 0.92 | 0.90 | 13.7 |
Potholes | 0.33 | 0.50 | 0.40 | 0.89 | 0.58 | 0.70 | 13 |
4. Downloads
- DACITE can be downloaded here
- JPF that we use is available at here
- Subject applications are available at here
*Authors
- Boyang Li
- The College of William and Mary, VA, USA.
E-mail: boyang at cs dot wm dot edu - Denys Poshyvanyk
- The College of William and Mary, VA, USA
E-mail: denys at cs dot wm dot edu - Mark Grechanik
- University of Illinois at Chicago, IL, USA
E-mail: drmark at uic dot edu