Three MSc theses to be presented on June 16, 2017.
June 16 is the extra day for coordinated master thesis presentations in Computer Science at Lund University, Faculty of Engineering. Seven MSc theses will be presented.
Note to potential opponents: Register as opponent to the presentation of your choice by sending an email to the examiner for that presentation (firstname.lastname@example.org). Do not forget to specify the presentation you register for! Note that the number of opponents may be limited (often to two), so you might be forced to choose another presentation if you register too late. Registrations are individual, just as the oppositions are! More instructions are found on this page.
|TITLE||Purity checking for reference attribute grammars|
|SUPERVISOR||Görel Hedin (LTH)|
|ABSTRACT||JastAdd is a meta compilation tool. It supports Reference Attribute Grammars (RAGs) and other declarative features for easy computation of abstract syntax tree properties in compilers. The Attributes values are computed automatically on demand, and are defined by relations, called equations. JastAdd provides caching and optionally parallel evaluation for evaluation of attributes. The control flow is managed by JastAdd and thus not specified by the programmer. Therefore the result must be invariant of exact order of execution. This requires that the equations are without side effects, i.e., pure otherwise unexpected behaviour might occur. This is not checked by JastAdd and upto the programmer to guarantee. For large programs keeping the code side effect free can be hard and side effect might find their way into the code and may cause subtle errors under specific situations. This thesis explores the possibility to use existing purity checkers for JastAdd. However, no existing tool was directly applicable, and I have therefore implemented a prototype purity checking tool for JastAdd and Java programs. The solution is then tested on several programs and the performance evaluated.|
|PRESENTERS||Björn Boyd Isacsson, Gustav Ek|
|TITLE||An Evaluation of Dynamic Software Updating Techniques to Preserve State and Minimise Downtime in C|
|SUPERVISORS||Lars Bendix (LTH), Umut Lindskog (Axis AB)|
|ABSTRACT||Software updating is typically a quite costly process. Most programs need to be restarted during an update, causing downtime and commonly also a loss of its state. To avoid this downtime, a principle called dynamic software updating can be used. This is a general principle in which the state of the program is transferred from an older version of the program to an updated one. The transfer of state means that the updated program will start back up at the same place as the old version stopped. In this paper, we looked at three possible implementations of DSU. These three options are dynamic updates via systemd, the system command exec, and a library called Kitsune. We concluded that in an embedded system use-case, exec is the best option if you require fast update times, and systemd if there are significant memory restrictions.|
|TITLE||Remodelling the Software Development Life-Cycle using combinations from Scrum and Extreme Programming: A case study about using components from two agile frameworks to shape development processes|
|OBS||Kandidatarbete (tar bara andra kandidatarbetare som opponenter)|
|SUPERVISOR||Ulf Asklund (LTH)|
|ABSTRACT||The purpose of the study is to have increased clarity from a real-world case in what the possible benefits and risks are when combining two popular agile development frameworks. Many studies have been focused towards evaluating agile methodologies individually, but few have looked at the benefits and risks of combining them. The paper seeks to understand why a combination would be more beneficial from a theoretical standpoint by referencing the software development life-cycle model. Two combinations built on elements from Scrum and Extreme Programming are assessed and researched throughout the paper. The author will try to prove whether the agile combinations performs better than a stand-alone implementation and to identify key components that make a combination successful.|