Supervised Master's theses
Henrik Gyllensvärd, Niklas Welander:
Reducing Double Maintenance for Web-based Application on a code- and logical level,
summary, report, December 2014.
A problem within the mobile instustry today is creating third-party applications. Generally developer teams have to develop the same application for several platforms and each platform uses a specific native language. A result of this is that many applications both look and act similar; but have different code bases and work very differently beneath the surface. This is a double maintenance problem for developers that is hard to solve. If a new feature is to be added, each team has to work on making the same functionality work on each device.
But the big problem with double maintenance still remains. Even if each application is written with the same technology, if the teams still develop each application separately from each other, very little is gained. But there might be a way to improve this. When applications are written with the same technology, we think that there is a high chance that a big propotion of the code is either the same, or could be the same.
We want to investigate if it is possible to combine the code base into a combined one for platforms supporting native web applications. This should reduce or possibly eliminate the double maintenance problem. But by combining the code bases we believe that it will introduce another problem, namely variants. Provided that we are able to combine the code bases and that it creates variants. We will also investigate how to work with the created variants. We also want to investigate if, and how we can minimize the amount of platform specific code for communicating with each platform’s hardware.
After analyzing the code, making iterative experiments along the way and by researching different approaches on the code structure; we managed to create an environment controlled by a python script that simulates one combined code base, while it actually is separated into several different ones. To support variants, a specific markup was introduced that allows each platform to have its own sections of code.