Dies sind die archivierten Webseiten des Lehrstuhls für Programmierung und Softwaretechnik (PST).
Die Seiten des Software and Computational Systems Lab (SoSy) finden Sie auf https://www.sosy-lab.org/.

Oberseminar 5.7.2016

Studentenvorträge zu Projekt- und Abschlussarbeiten

14:15h - 15:45h

Raum U127, Oet. 67


Erzsébet Galgóczy, betreut von Dr. Gefei Zhang und Prof. Dr. Matthias Hölzl

Extending IntelliJ's Java Editor by Additional Program Analysis Components


Most integrated development environments (IDEs) include some functionality to perform program analysis on code. IntelliJ IDEA, an IDE primarily targeted at Java, which was first released in 2001 and has been gaining in popularity ever since, offers some particularly interesting and sophisticated program analysis tools, which, thanks to the extensive IntelliJ plugin API, can easily be extended.
This thesis builds upon some of IntelliJ IDEA’s program analysis components, specifically program flow analysis, and extends them by a component that highlights program flow dependencies graphically in the editor. The component takes the form of a toggleable IDE plugin.
The plugin consists of two components: A highlighter for program slicing, which marks all forward and backward dependencies for a selected variable in the editor window, and an additional analyzer that uses constraints from user annotations to determine a valid range for a given numerically-typed variable in a code block.
The combination of these components facilitates the debugging process by automatically collecting information on and exposing at a glance the logical chain of operations that lead to a given value and provides a highly integrated, lightweight, and unobtrusive way to include variable range checks especially for cases where the effort to write a conventional unit test would not be warranted and provides a valuable tool to increase test coverage on the most prolific sources of errors at very little cost in terms of developer time.
In addition, since evaluation happens “live”, i.e. during typing, errors become apparent the instant they are made and not just during the next test run.


David Fuggersberger, betreut von Prof. Dr. Matthias Hölzl und Dr. Fabian Stäber (ConSol)

Comparison of a monolithic and a microservice architecture based on a simple web application


In the last couple of years, the Information Technology landscape underwent drastic changes. New technologies emerged, that allowed for approaches to build software systems which were prior unfeasible. One of these approaches is building a software system by utilizing a microservice architecture. The microservice architecture enables a software system to evolve continuously, to scale and to be highly available. By transitioning to a microservice architecture, early adapters, namely Amazon and Netflix, were able to surpass limitations of their traditional architectures and establish their position at the top of their fields. In the recent past, more and more organizations attempted to follow their example and strived to implement a microservice architecture. However, with information on, and insights into, microservice architectures being rare, and Amazon and Netflix possibly being outliers, there is a lot of uncertainty regarding the implementation of a microservice architecture and the consequences of utilizing a microservice architecture. Hence, the aim of this thesis is to overcome said uncertainty. In this thesis, a web application is designed and implemented in both, a traditional monolithic and a microservice architectural style. The two implementations are compared and general results from the concrete example are derived. As a result, guidelines on how to implement a microservice architecture are given, the consequences of utilizing a microservice architecture are presented, and a microservice architectural pattern is suggested. Moreover, a novel approach to visualizing a microservice system by utilizing sophisticated documentation is explained, a possible solution for dealing with eventual consistency by taking advantage of Elasticsearch and "entry points" is discussed, and a microservice architecture checklist is shown. Finally, several proposals for future studies are made throughout this thesis.


Daniel Schaumann, betreut von Prof. Dr. Martin Wirsing und Gert Glatz (adesso AG)

Implementation of an Android app to test designs of user interfaces based on an analysis of the usability of an existing iOS app


Testing is an important part of software development, because it checks and ensures the satisfaction of the requirements and the quality of the software. Tests are usually executed simultaneously during the development to remove sources of errors early.

If software must have an user interface, in most cases there is the requirement for this interface to be easy comprehensible. This demand is difficult to test, because you need external persons.

The iNappkin System, with the Designer App, the Server and the Tester App provides tools to straightforwardly test designs of user interfaces of apps. For this purpose, the developer uses the Designer App to combine designs of the interface's parts into a project and to create test cases for this project. After that the data is synchronised via the server with the Tester App, where external testers can execute the test cases.

The Tester and Designer App are available for iOS. The significance of the test results depends on the number of testers. Therefore, in this thesis the Tester App is developed for the Android Operating System. In the course of this development the first step is to analyse the usability of the existing iOS Tester App. Doing so, there are presented some improvements, which then represent the requirements for the implementation of the Android App.