Boris Spasojević. Building Ecosystem-Aware Tools Using the Ecosystem Monitoring Framework. In Extended Abstracts of the Nineth Seminar on Advanced Techniques and Tools for Software Evolution (SATToSE 2016), July 2016. Details.
Integrating ecosystem data into developer tools can be very beneficial but is usually complicated. By automating the routine parts of this task we can reduce the amount of work needed to develop these tools. We have developed a framework that allows developers to quickly develop new tools that use ecosystem data. This framework automates the execution of user-defined analyses on ecosystem projects, allowing the developer to focus only on what ecosystem data is needed for her tool and how to present it.
Haidar Osman. Null Check Analysis. In Extended Abstracts of the Eighth Seminar on Advanced Techniques and Tools for Software Evolution (SATToSE 2015), p. 86—88, July 2015. Details.
Null dereferencing is one of the most frequent bugs in Java systems causing programs to crash due to the uncaught NullPointerException. Developers often fix this bug by introducing a guard (i.e., null check) on the potentially-null objects before using them. In this paper we investigate the null checks in 717 open-source Java systems to understand when and why developers introduce null checks. We find that 35% of the if-statements are null checks. A deeper investigation shows that 71% of the checked-for-null objects are returned from method calls. This indicates that null checks have a serious impact on performance and that developers introduce null checks when they use methods that return null.
Haidar Osman, Manuel Leuenberger, Mircea Lungu, and Oscar Nierstrasz. Tracking Null Checks in Open-Source Java Systems. In Proceedings of the 23rd IEEE International Conference on Software Analysis, Evolution, and Reengineering (SANER), March 2016. Details.
It is widely acknowledged that null values should be avoided if possible or carefully used when necessary in Java code. The careless use of null has negative effects on maintainability, code readability, and software performance. However, a study on understanding null usage is still missing. In this paper we analyze null checks in 810 open-source Java systems and manually inspect 100 code samples to understand when and why developers use null. We find that 35% of all conditional statements contain null checks. A deeper investigation reveals many questionable practices with respect to using null. Uninitialized member variables, returning null in methods, and passing null as a method parameter are among the most recurrent reasons for introducing null checks. Developers often return null in methods to signal errors instead of throwing a proper exception. As a result, 71% of the values checked for null are returned from method calls. Our study provides a novel evidence of an overuse of null checks and of the null value itself in Java, and at the same time, reveals actionable recommendations to reduce this null usage.
Linus Schwab. Using RSS Feeds to Support Second Language Acquisition. Bachelor’s thesis, University of Bern, June 2016. Details.
Zeeguu is a language learning platform, that allows people to extend their vocabulary and language skills by reading any text they like. Additionally, it provides feedback on the progress and exercises to further improve the aquired knowledge. This thesis introduces the Zeeguu Reader, a mobile application for Android that uses RSS feeds to automatically provide the user with the newest articles from the news sources or blogs he subscribes to, while supporting the user with translations and keeping track of his reading progress. Its features include an article recommender that tries to automatically select the articles that fit best to the user’s current language level. For the RSS part, the application uses the Feedly Cloud1, which synchronizes the subscrip- tions and reading progress between different devices and allows the user to continue reading where he left on any computer in the Feedly web interface and keep learning the language with the Zeeguu Chrome plugin.
Kenneth Radunz. Dicto Auto-Complete Engine — a back end for autocompletion. Bachelor’s thesis, University of Bern, June 2016. Details.
Most programming languages have an IDE that supports autocompletion. This feature increases productivity and makes programming an easier and smoother experience. The goal of this project is to add autocompletion to the Dicto language. To ensure reusability, it is implemented in a frontend-backend approach. From this it follows that any new front end only needs to communicate to an already existing back end, which is responsible for the logic. Performance concerns are addressed in the later parts of the thesis.