Software

Although software development is not my primary activity anymore, sometimes I come up with things that are worth to share. The list below is sorted from more to less related to my research. Most source code is available on my GitHub Profile.

ImpRec

– A Recommendation System for Change Impact Analysis

ImpRecIcon

ImpRec is a prototype tool supporting change impact analysis (CIA) developed as part of a research project at the Department of Computer Science at LundUniversity. The tool has been developed as a proof-of-concept of the potential benefits of reusing traceability from previously completed impact analyses. ImpRec is a recommendation system for software engineering (RSSE) that uses a combination of information retrieval-based trace recovery techniques and analysis of network structure to identify potential impact for a given tracker case.

ImpRecOverview
Overview of the change impact analysis support in ImpRec.
ImpRecGUI
ImpRec GUI.
Publications
- M. Borg, K. Wnuk, B. Regnell, and P. Runeson. Supporting Change Impact Analysis Using a Recommendation System: An Industrial Case Study in a Safety-Critical Context, IEEE Transactions on Software Engineering, 43(7), pp. 675-700, 2017. (link, preprint, data, code)
- M. Borg and P. Runeson, Changes, Evolution and Bugs - Recommendation Systems for Issue Management, In Robillard, Maalej, Walker, and Zimmermann (Eds.), Recommendation Systems in Software Engineering, pp. 407-509, Springer, 2014. (blog, link)
- M. Borg, O. Gotel, and K. Wnuk. Enabling Traceability Reuse for Impact Analyses: A Feasibility Study in a Safety Context, In Proc. of the International Workshop on Traceability in Emerging Forms of Software Engineering, pp. 72-79, 2013. (blog, link)

SZZ Unleashed

An open implementation of the SZZ algorithm

The credit for this tool development goes to Oscar Svensson and Kristian Berg – I was only the satisfied supervisor of their MSc thesis project. SZZ Unleashed is an implementation of the SZZ algorithm, i.e. an approach to identify bug-introducing commits, introduced by Śliwerski et al. in “When Do Changes Induce Fixes?”, in Proc. of the International Workshop on Mining Software Repositories, May 17, 2005. The implementation uses “line number mappings” as proposed by Williams and Spacco in “SZZ Revisited: Verifying When Changes Induce Fixes”, in Proc. of the Workshop on Defects in Large Software Systems, July 20, 2008.

Publications
- M. Borg, O. Svensson, K. Berg, and D. Hansson. SZZ Unleashed: An 
Open Implementation of the SZZ Algorithm - Featuring Example Usage in a Study of Just-in-Time Bug Prediction for the Jenkins Project. In Proc. of the 3rd ACM SIGSOFT International Workshop on Machine Learning Techniques for Software Quality Evaluation (MaLTeSQuE), pp. 7-12, 2019. (blog, preprint, link)

RacketGhost

– An Android Open Source Ghosting Coach

RacketGhostIconRacketGhost is an open source ghosting coach for Android, available for free on Google Play. Ghosting is a common exercise in squash and badminton, but it works best if someone shouts directions at random. As I rarely have such a coach available, I made one for my Android mobile. Ghosting is a great exercise to improve footwork and stamina, and the users appear to like it – The number of app downloads on Google Play probably beats the number of reads on my average paper.

RacketGhost1
Squash ghosting.

RacketGhost2
Badminton ghosting.

RacketGhost3
Configuration of ghosting session.

RacketGhost4
Ghosting history.

KaffeKombat

– A 48h contribution to Global Game Jam 2016

slarvsylta
Team Slarvsylta during GGJ’16.

Together with my friend Viktor, a more experienced Unity developer, we joined in on the fun of the 48 h Global Game Jam (GGJ) in Malmö – Participating as the team Slarvsylta (yes… it is a Swedish pun). It was my first attempt at developing a game and I learned a lot in the process. Before the event I followed two Coursera MOOCs on the Unity game engine, barely enough to keep up during the weekend. Now I really hope to get a chance to do something related to my research projects. I have some ideas for cool demos, let’s see when there is time to actually pursue these ideas.

The secret theme of GGJ’16 was RITUAL, and we decided to do something related to the coffee addiction in Sweden. The concept was a two player fight for the final cup of coffee using the analog sticks on a shared game controller, thus creating a constrained feeling during game play. With quite difficult controls, a slippery kitchen table, and a too hot cup, the product is somewhat like an inverted air hockey game – You score points on your own end of the table, somewhat novel at least.

Our game qualified for the following diversifiers: i) A LOCAL GAME FOR LOCAL PEOPLE – featuring local game site, ii) ONE HAND TIED ON MY BACK – game played with one hand, iii) LOUDMOUTH – all sounds created by sounds from mouth, and iv) LEGO GOT IT RIGHT – no spoken or written words, not even in the instructions.

KaffeKombat
KaffeKombat screenshot.