Network


Latest external collaboration on country level. Dive into details by clicking on the dots.

Hotspot


Dive into the research topics where Davy Landman is active.

Publication


Featured researches published by Davy Landman.


international conference on software maintenance | 2014

Empirical Analysis of the Relationship between CC and SLOC in a Large Corpus of Java Methods

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

Challenges for static analysis of Java reflection: literature review and empirical study

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

Empirical analysis of the relationship between CC and SLOC in a large corpus of Java methods and C functions

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

M3: A general model for code analytics in rascal

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

Exploring the Limits of Domain Model Recovery

Paul Klint; Davy Landman; Jurgen J. Vinju


Archive | 2016

A corpus of Java projects representing the 2012 Ohloh universe

Davy Landman


Archive | 2015

A Large Corpus of C Source Code based on Gentoo packages

Davy Landman


Archive | 2017

Reverse engineering source code: Empirical studies of limitations and opportunities

Davy Landman


Journal of Software: Evolution and Process | 2017

Corrigendum: Empirical analysis of the relationship between CC and SLOC in a large corpus of Java methods and C functions published on 9 December 2015: Corrigendum: Empirical analysis of the relationship between CC and SLOC in a large corpus of Java methods and C functions published on 9 December 2015

Davy Landman; Alexander Serebrenik; Eric Bouwers; Jurgen J. Vinju


Journal of Software: Evolution and Process | 2017

Corrigendum: Empirical analysis of the relationship between CC and SLOC in a large corpus of Java methods and C functions published on 9 December 2015

Davy Landman; Alexander Serebrenik; Eric Bouwers; Jurgen J. Vinju

Collaboration


Dive into the Davy Landman's collaboration.

Top Co-Authors

Avatar
Top Co-Authors

Avatar

Alexander Serebrenik

Eindhoven University of Technology

View shared research outputs
Top Co-Authors

Avatar
Top Co-Authors

Avatar

Mark Hills

East Carolina University

View shared research outputs
Top Co-Authors

Avatar
Top Co-Authors

Avatar
Top Co-Authors

Avatar
Top Co-Authors

Avatar
Top Co-Authors

Avatar
Top Co-Authors

Avatar

Michael J. Steindorfer

Delft University of Technology

View shared research outputs
Researchain Logo
Decentralizing Knowledge