All posts

160 elements
All content in this website
1 September 2017 Master Thesis

Assessing Software Documents by Comprehension Effort

Talal El Afchal · Master of Science in Informatics

31 August 2017 Invited Talk

Parsing and Modeling Software Engineering Artifacts

IPSJ/SIGSE Software Engineering Symposium 2017

29 June 2017 Paper
2988 words · 15 minutes

The Code Time Machine

Exploring and analyzing the history of changes is an intrinsic part of software evolution comprehension. Existing tools that exploit the data residing in version control repositories provide only limited support for the intuitive navigation of code changes from a historical perspective. We present the Code Time Machine, a lightweight IDE plugin which uses visualization techniques to depict the history of any chosen file augmented with information mined from the underlying versioning system. Inspired by Apple's Time Machine, our tool allows both developers and the system itself to seamlessly move through time.

The Code Time Machine
29 June 2017 Paper
8295 words · 42 minutes

On the Uniqueness of Code Redundancies

Code redundancy widely occurs in software projects. Researchers have investigated the existence, causes, and impacts of code redundancy, showing that it can be put to good use, for example in the context of code completion. When analyzing source code redundancy, previous studies considered software projects as sequences of tokens, neglecting the role of the syntactic structures enforced by programming languages. However, differences in the redundancy of such structures may jeopardize the performance of applications leveraging code redundancy. We present a study of the redundancy of several types of code constructs in a large-scale dataset of active Java projects mined from GitHub, unveiling that redundancy is not uniform and mainly resides in specific code constructs. We further investigate the implications of the locality of redundancy by analyzing the performance of language models when applied to code completion. Our study discloses the perils of exploiting code redundancy without taking into account its strong locality in specific code constructs.

29 June 2017 Paper
9512 words · 48 minutes

How Developers Document Pull Requests with External References

Online resources of formal and informal documentation-such as reference manuals, forum discussions and tutorials-have become an asset to software developers, as they allow them to tackle problems and to learn about new tools, libraries, and technologies. This study investigates to what extent and for which purpose developers refer to external online resources when they contribute changes to a repository by raising a pull request. Our study involved (i) a quantitative analysis of over 150k URLs occurring in pull requests posted in GitHub, (ii) a manual coding of the kinds of software evolution activities performed in commits related to a statistically significant sample of 2,130 pull requests referencing external documentation resources, (iii) a survey with 69 participants, who provided feedback on how they use online resources and how they refer to them when filing a pull request. Results of the study indicate that, on the one hand, developers find external resources useful to learn something new or to solve specific problems, and they perceive useful referring such resources to better document changes. On the other hand, both interviews and repository mining suggest that external resources are still rarely referred in document changes.

How Developers Document Pull Requests with External References
26 June 2017 Bachelor Project

Earthquake Analytics

Marco Calzana · Bachelor of Science in Informatics

26 June 2017 Bachelor Project

A Voxel-based Approach to Earthquake Simulation

Leonardo Iandiorio · Bachelor of Science in Informatics

26 June 2017 Bachelor Project

WebDistiller

Lucas Pennati · Bachelor of Science in Informatics