With a background in both academia and industry, Christoph Reichenbach looks to help software engineers in their everyday work. He is associate professor in software technology at Lund university, where he joined WASP in October 2017.
His plunge into research on software technology started with an exchange visit out of the University of Darmstadt to the University of Colorado Boulder , where he received a master’s and a doctoral degree for his dissertation work on program transformation techniques, namely refactoring. His approach, program metamorphosis, offered an incremental approach to changing program structure without changing program behaviour. This is opposed to the previous transformation approach that transformed everything in a single leap.
Christoph Reichenbach likens this to renovating a bathroom.
“Let’s say that you don’t like your current bathroom, and you want to move your shower from one corner to another. With the traditional approach, you would hire someone and tell them to move the shower.”
A week later you return and find that they installed a bunch of pipes on the floor, plus a pump, to connect the shower to the drain. `This is how I do these things,’ explains the constructor.
“If that was not what you had in mind for your bathroom, then, well, bad luck! With the incremental approach, the constructor would get back to you and say, `Sure, I can move the shower, but we have to connect the drain pipes somehow.’ After this you can discuss a few alternatives, such as replacing or raising the floor, before actually getting to work,” says Christoph Reichenbach.
Solving real life problems
His graduate work was complemented by postdoctoral studies on domain specific languages during a two year postdoc at the University of Massachusetts. After this, Christoph Reichenbach worked for Google on search quality and Google’s search mechanism as software engineer for a year.
“I wanted to solve real life problems, which I could do in the industry. Sometimes in academia you get distracted by the hypothetical ‘what could be useful’ road, whereas in industry you see the problems the software developers are facing today,” says Christoph Reichenbach.
He has experience in both. After a year at Google came the call from Frankfurt University, where he was junior professor for over three years. In Frankfurt, his work focused on merging software clones, work that is continued in Lund today:
“We observed a coding practice where software engineers take code and copy it, only making small changes to it. The strength of this kind of development method is that it is very easy to use, but the weakness is that it produces a lot of different clones that are difficult to maintain.”
This creates a slight maintenance nightmare down the road, he continues. He and his group developed a tool that can take multiple copied-and-pasted pieces of code that are slightly different, and merge them into one piece of software. The work is now continued to make it more general and more useful. Christoph Reichenbach wishes so to analyze and make it easier to understand and modify code on a more abstract level as well.
He explains that his current projects are inspired by the issues he observed while in the industry, including working as a software technology consultant in a consultancy startup that the cofounded. Another project involves developing an automated system for choosing the best components for software based on needs and specifications.
“I want to provide software developers with more powerful tools that can automate much of what they have to do today, and also tools that learn from past experiences. We can enable reuse; reuse of software that has already been written and of work that developers have done recently. I want to contribute to making software better, in general,” Christoph Reichenbach concludes.