Davy Landman
Centrum Wiskunde & Informatica
Network
Latest external collaboration on country level. Dive into details by clicking on the dots.
Publication
Featured researches published by Davy Landman.
international conference on software maintenance | 2014
Davy Landman; Alexander Serebrenik; Jurgen J. Vinju
Measuring the internal quality of source code is one of the traditional goals of making software development into an engineering discipline. Cyclomatic Complexity (CC) is an often used source code quality metric, next to Source Lines of Code (SLOC). However, the use of the CC metric is challenged by the repeated claim that CC is redundant with respect to SLOC due to strong linear correlation. We test this claim by studying a corpus of 17.8M methods in 13K open-source Java projects. Our results show that direct linear correlation between SLOC and CC is only moderate, as caused by high variance. We observe that aggregating CC and SLOC over larger units of code improves the correlation, which explains reported results of strong linear correlation in literature. We suggest that the primary cause of correlation is the aggregation. Our conclusion is that there is no strong linear correlation between CC and SLOC of Java methods, so we do not conclude that CC is redundant with SLOC. This conclusion contradicts earlier claims from literature, but concurs with the widely accepted practice of measuring of CC next to SLOC.
international conference on software engineering | 2017
Davy Landman; Alexander Serebrenik; Jurgen J. Vinju
The behavior of software that uses the Java Reflection API is fundamentally hard to predict by analyzing code. Only recent static analysis approaches can resolve reflection under unsound yet pragmatic assumptions. We survey what approaches exist and what their limitations are. We then analyze how real-world Java code uses the Reflection API, and how many Java projects contain code challenging state-of-the-art static analysis. Using a systematic literature review we collected and categorized all known methods of statically approximating reflective Java code. Next to this we constructed a representative corpus of Java systems and collected descriptive statistics of the usage of the Reflection API. We then applied an analysis on the abstract syntax trees of all source code to count code idioms which go beyond the limitation boundaries of static analysis approaches. The resulting data answers the research questions. The corpus, the tool and the results are openly available. We conclude that the need for unsound assumptions to resolve reflection is widely supported. In our corpus, reflection can not be ignored for 78% of the projects. Common challenges for analysis tools such as non-exceptional exceptions, programmatic filtering meta objects, semantics of collections, and dynamic proxies, widely occur in the corpus. For Java software engineers prioritizing on robustness, we list tactics to obtain more easy to analyze reflection code, and for static analysis tool builders we provide a list of opportunities to have significant impact on real Java code.
Journal of Software: Evolution and Process | 2016
Davy Landman; Alexander Serebrenik; Eric Bouwers; Jurgen J. Vinju
Measuring the internal quality of source code is one of the traditional goals of making software development into an engineering discipline. Cyclomatic complexity (CC) is an often used source code quality metric, next to source lines of code (SLOC). However, the use of the CC metric is challenged by the repeated claim that CC is redundant with respect to SLOC because of strong linear correlation.
2015 IEEE 1st International Workshop on Software Analytics (SWAN) | 2015
Bas Basten; Mark Hills; Paul Klint; Davy Landman; Ashim Shahi; Michael J. Steindorfer; Jurgen J. Vinju
This short paper introduces M3, a simple and extensible model for capturing facts about source code for future analysis. M3 is a core part of the standard library of the Rascal meta programming language.We motivate it, position it to related work and detail the key design aspects.
international conference on software maintenance | 2013
Paul Klint; Davy Landman; Jurgen J. Vinju
Archive | 2016
Davy Landman
Archive | 2015
Davy Landman
Archive | 2017
Davy Landman
Journal of Software: Evolution and Process | 2017
Davy Landman; Alexander Serebrenik; Eric Bouwers; Jurgen J. Vinju
Journal of Software: Evolution and Process | 2017
Davy Landman; Alexander Serebrenik; Eric Bouwers; Jurgen J. Vinju