Retrieving Data Constraint Implementations Using Fine-Grained Code Patterns

3Citations
Citations of this article
9Readers
Mendeley users who have this article in their library.
Get full text

Abstract

Business rules are an important part of the requirements of software systems that are meant to support an organization. These rules describe the operations, definitions, and constraints that apply to the organization. Within the software system, business rules are often translated into constraints on the values that are required or allowed for data, called data constraints. Business rules are subject to frequent changes, which in turn require changes to the corre-sponding data constraints in the software. The ability to efficiently and precisely identify where data constraints are implemented in the source code is essential for performing such necessary changes. In this paper, we introduce Lasso, the first technique that automatically retrieves the method and line of code where a given data constraint is enforced. Lasso is based on traceability link recovery approaches and leverages results from recent research that identified line-of-code level implementation patterns for data constraints. We implement three versions of Lasso that can retrieve data constraint implementations when they are implemented with any one of 13 frequently occurring patterns. We evaluate the three versions on a set of 299 data constraints from 15 real-world Java systems, and find that they improve method-level link recovery by 30%,70%, and 163%, in terms of true positives within the first 10 results, compared to their text-retrieval-based baseline. More importantly, the Lasso variants correctly identify the line of code implementing the constraint inside the methods for 68% of the 299 constraints.

Cite

CITATION STYLE

APA

Florez, J. M., Perry, J., Wei, S., & Marcus, A. (2022). Retrieving Data Constraint Implementations Using Fine-Grained Code Patterns. In Proceedings - International Conference on Software Engineering (Vol. 2022-May, pp. 1893–1905). IEEE Computer Society. https://doi.org/10.1145/3510003.3510167

Register to see more suggestions

Mendeley helps you to discover research relevant for your work.

Already have an account?

Save time finding and organizing research with Mendeley

Sign up for free