Matches in SemOpenAlex for { <https://semopenalex.org/work/W3183134251> ?p ?o ?g. }
- W3183134251 abstract "Software systems are designed according to guidelines and constraints defined by business rules. Some of these constraints define the allowable or required values for data handled by the systems. These data constraints usually originate from the problem domain (e.g., regulations), and developers must write code that enforces them. Understanding how data constraints are implemented is essential for testing, debugging, and software change. Unfortunately, there are no widely-accepted guidelines or best practices on how to implement data constraints. This paper presents an empirical study that investigates how data constraints are implemented in Java. We study the implementation of 187 data constraints extracted from the documentation of eight real-world Java software systems. First, we perform a qualitative analysis of the textual description of data constraints and identify four data constraint types. Second, we manually identify the implementations of these data constraints and reveal that they can be grouped into 31 implementation patterns. The analysis of these implementation patterns indicates that developers prefer a handful of patterns when implementing data constraints. We also found evidence suggesting that deviations from these patterns are associated with unusual implementation decisions or code smells. Third, we develop a tool-assisted protocol that allows us to identify 256 additional trace links for the data constraints implemented using the 13 most common patterns. We find that almost half of these data constraints have multiple enforcing statements, which are code clones of different types. Finally, a study with 16 professional developers indicates that the patterns we describe can be easily and accurately recognized in Java code." @default.
- W3183134251 created "2021-07-19" @default.
- W3183134251 creator A5015673181 @default.
- W3183134251 creator A5033317811 @default.
- W3183134251 creator A5056198221 @default.
- W3183134251 creator A5070230554 @default.
- W3183134251 creator A5080251944 @default.
- W3183134251 date "2022-06-16" @default.
- W3183134251 modified "2023-09-24" @default.
- W3183134251 title "An empirical study of data constraint implementations in Java" @default.
- W3183134251 cites W1593203335 @default.
- W3183134251 cites W186045649 @default.
- W3183134251 cites W1878075084 @default.
- W3183134251 cites W1964883795 @default.
- W3183134251 cites W2005569040 @default.
- W3183134251 cites W2007425631 @default.
- W3183134251 cites W2013638584 @default.
- W3183134251 cites W2014689170 @default.
- W3183134251 cites W2014758526 @default.
- W3183134251 cites W2026032320 @default.
- W3183134251 cites W2033020528 @default.
- W3183134251 cites W2044527216 @default.
- W3183134251 cites W2053154970 @default.
- W3183134251 cites W2053389232 @default.
- W3183134251 cites W2083090339 @default.
- W3183134251 cites W2085421499 @default.
- W3183134251 cites W2086927394 @default.
- W3183134251 cites W2100348239 @default.
- W3183134251 cites W2101251407 @default.
- W3183134251 cites W2101619757 @default.
- W3183134251 cites W2101832700 @default.
- W3183134251 cites W2102004391 @default.
- W3183134251 cites W2103699027 @default.
- W3183134251 cites W2104994910 @default.
- W3183134251 cites W2107930672 @default.
- W3183134251 cites W2109699558 @default.
- W3183134251 cites W2109943392 @default.
- W3183134251 cites W2110237629 @default.
- W3183134251 cites W2118655104 @default.
- W3183134251 cites W2119686964 @default.
- W3183134251 cites W2122581326 @default.
- W3183134251 cites W2125260159 @default.
- W3183134251 cites W2128581098 @default.
- W3183134251 cites W2128888088 @default.
- W3183134251 cites W2131468624 @default.
- W3183134251 cites W2131862458 @default.
- W3183134251 cites W2134094511 @default.
- W3183134251 cites W2135318650 @default.
- W3183134251 cites W2136224168 @default.
- W3183134251 cites W2140021378 @default.
- W3183134251 cites W2140255470 @default.
- W3183134251 cites W2150656895 @default.
- W3183134251 cites W2153853754 @default.
- W3183134251 cites W2155829706 @default.
- W3183134251 cites W2163412611 @default.
- W3183134251 cites W2167937164 @default.
- W3183134251 cites W2171428222 @default.
- W3183134251 cites W2232317411 @default.
- W3183134251 cites W2296164881 @default.
- W3183134251 cites W2330332751 @default.
- W3183134251 cites W2573869159 @default.
- W3183134251 cites W2598621189 @default.
- W3183134251 cites W2617604339 @default.
- W3183134251 cites W2756867283 @default.
- W3183134251 cites W2903382629 @default.
- W3183134251 cites W2945440850 @default.
- W3183134251 cites W2988199959 @default.
- W3183134251 cites W3089552543 @default.
- W3183134251 cites W3098598077 @default.
- W3183134251 cites W3149821397 @default.
- W3183134251 cites W3183134251 @default.
- W3183134251 cites W87753372 @default.
- W3183134251 doi "https://doi.org/10.1007/s10664-022-10175-w" @default.
- W3183134251 hasPublicationYear "2022" @default.
- W3183134251 type Work @default.
- W3183134251 sameAs 3183134251 @default.
- W3183134251 citedByCount "4" @default.
- W3183134251 countsByYear W31831342512022 @default.
- W3183134251 countsByYear W31831342512023 @default.
- W3183134251 crossrefType "journal-article" @default.
- W3183134251 hasAuthorship W3183134251A5015673181 @default.
- W3183134251 hasAuthorship W3183134251A5033317811 @default.
- W3183134251 hasAuthorship W3183134251A5056198221 @default.
- W3183134251 hasAuthorship W3183134251A5070230554 @default.
- W3183134251 hasAuthorship W3183134251A5080251944 @default.
- W3183134251 hasBestOaLocation W31831342512 @default.
- W3183134251 hasConcept C115903868 @default.
- W3183134251 hasConcept C124101348 @default.
- W3183134251 hasConcept C127413603 @default.
- W3183134251 hasConcept C138885662 @default.
- W3183134251 hasConcept C168065819 @default.
- W3183134251 hasConcept C199360897 @default.
- W3183134251 hasConcept C199519371 @default.
- W3183134251 hasConcept C26713055 @default.
- W3183134251 hasConcept C2776036281 @default.
- W3183134251 hasConcept C2777904410 @default.
- W3183134251 hasConcept C41008148 @default.
- W3183134251 hasConcept C41895202 @default.
- W3183134251 hasConcept C548217200 @default.
- W3183134251 hasConcept C56666940 @default.