Porting for Synchronized Cross-Platform Development
Porting software systems to new platforms nowadays is a key issue in software engineering, developers have to target multiple platforms in order to reach a higher number of users. Existing cross-platform frameworks and methodologies however are applicable only to greenfield development. There is hardly any technical or methodological support for the frequent situation that an existing mature software shall be ported rather than being completely re-implemented for an additional platform. This leads to superfluous work during the further evolution and maintenance of the original software and its target platform version. Furthermore, the lack of traceability between the versions makes the evolution process prone to structural and functional inconsistencies.
This project strives to develop a flexible method both for porting and synchronized evolution. During porting, traceability and structural equivalences between both versions are introduced. The synchronized evolution leverages the traceability and equivalencies by refactoring support, cross-platform feature localization and navigation support. These means help developers to keep multiple platform versions of a software system consistent and reduce redundant work during their evolution and maintenance.
Case Studies
Metropole des Wissens
The developed porting method has been applied to the original implementation of the iOS app "Metropole des Wissens" in order to port it to the Android platform. Both the original and ported code are currently being published as open source software.
A password-secured version for reviewers can be obtained from
swk-www.informatik.uni-hamburg.de/~stehle/HDW.zip
DESMO-JS
The method has additionally been applied to the simulation Framework DESMO-J in order to port parts of the original code to JavaScript. The project code can be obtained from
https://github.com/TilStehle/DESMO-JS
University research project, PhD research project
Duration: Apr 2015 - Jan 2020
Contact: Tilmann Stehle, Prof. Matthias Riebisch