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 14.07.2015

14:15h - 15:45h

Raum 057, Oet. 67


Angela Peng: Application of Monte Carlo Tree Search Methods to the Game Othello

Bachelorarbeit, betreut von Lenz Belzner

Monte Carlo Tree Search (MCTS) is a new paradigm in AI research based on
random simulations, which has proved spectacularly successful in the challenging
task of Computer Go. While the game of Go has been extensively
researched in the context of MCTS, other board games such as Othello, for
which powerful AI players based on traditional AI techniques already exist,
have so far received little research attention.
In this work, we apply the benchmark MCTS algorithm UCT as well as a
recently proposed MCTS technique called SHOT to the board game
Othello. The comparison with Minimax shows that the performance of both
UCT and SHOT for Othello is rather modest with SHOT faring even worse
than UCT. However, we find that the use of domain knowledge for guiding
move selection during the playout phase is able to signi cantly improve the
playing strength of both MCTS players. Moreover, in contrast to previous
research results we find that UCT outperforms SHOT for Othello for equal
time settings.


Florian Wagner: Detection of Cross Language Links in Framework-Based Web Applications

Bachelorarbeit, betreut von Philip Mayer

Software development with multiple programming languages is becoming increasingly popular amongst developers. Every aspect of the software is developed in an own domain specific language (DSLs) with the advantages of better productivity and more concise code. However, there is the need of communication between the different aspects - and therefor languages - of the software. Many frameworks for many different language combinations solve this problem in a multitude of ways. The common approach is to define certain identifiers and references on both sides that will then be resolved and processed at runtime. This introduces a new problem: There is yet little to no tool support for these identifiers, which makes code maintenance and refactoring across language boundaries dificult. In this work, we try to find a solution for the automatic detection of such cross-language links on a common base. The starting point denotes a set of 298 open-source projects that were previously selected with the intention of the best possible diversity.


Sabine Schermuly: Analysis and design of a reporting engine in order to fulfill heterogeneous reporting requirements

Bachelorarbeit, betreut von Rolf Hennicker

This thesis on the subject of analysis and design of a reporting engine in order to fulfill heterogeneous reporting requirements pursues the objective  to  describe in detail a possible conception of a new software product. The following chapters shall give the reader an understanding of  the chosen implementation strategy. This thesis threats only the theoretical part of the conception. Nethertheless the resulting product as described in the thesis,  has been implemented for a german financial service provider.

Each of the following chapter refine the preceding ones and specify the concept more and more.

The last chapter sums up the conception and offers a prospect on the opportunities for enhancing the software and improving the product with additional features.

Due to the fact that the software is designed for the use within a broad application landscape, it uses several interfaces to other software and frameworks. Within the scope of this thesis, those interfaces are not described any further, but will be outlined in the required context.

For a better understanding and reproduceability of the single steps, which are undertaken in the process of analysis and design, UML-diagrams  are regularly added. The reader should note, that the diagrams do not completely conform the UML language, neither are they absolutely complete as these are only used as drafts for the better understanding. Although these diagrams do contain all relevant and required elements for implementing the software as designed.


Rainer Diesch: Handling Mixed-Language Files and DSL Dialects in Automated Language Detection Routines

(Einzelpraktikum 12 ECTS)

The use of multiple programming languages within a software system is a common occurrence in software development, and thus relevant for both practice and research. For any analysis of multi-language software, it is important to decide which language actually resides within the files of the project. While language detecting tools are available, they are all restricted to detecting the language of the file as a whole, and thus disregard to important complications: Firstly, some languages have important dialects which are of greater importance than the file language itself, and secondly, a file may indeed contain multiple languages, separated by specific keywords. In this project, we have attempted to remedy this situation by creating two tools: The first automatically finds a dialect for structured data files. The second detects the use of multiple programming languages within one file, and returns information on which parts of the file contain which language. For each tool, a custom DSL was developed for configuration; the first configures language dialects, the second the detection of languages within files. The tools were tested on 1150 projects selected with a random/diverse approach, and false positives as well as false negatives were evaluated manually. The result shows that the dialect detection is accurate in 88% of cases, whereas the detection of multiple languages within one file was 80%, which are good results given the complexity of the problem. Furthermore, the analysis has shown that one of the key requirements - ease of configuration - is indeed possible with the developed tool, since dialects and language detections can be added and modified without touching the code of the tool itself.


Susanne Bakenecker: Visualisierung von Multi-Language Software durch Cushion Treemaps

(Einzelpraktikum 6 ECTS)

Today, nearly all big software systems consist of not only one, but many programming languages. The advantage of multi-language software systems is that each language can be used exactly for the scope where it is most suitable. On the downside, the use of several languages often results in very complex systems. In this thesis we introduce an application, that depicts software systems in the context of their language diversity. We chose a visual structure called "cushion treemap" to enable a fast overview over the languages. Thus, details like the proportion one language has relative to the whole system or which languages are used in the same time can be deduced easily. Furthermore, the application provides several views, which allow the user to grasp features about single components of the system very fast.