Automatic Version Control System for Distributed Software Development
Master Thesis, March 2012 — September 2012
Author: Sandra Weber
Supervisor: Martin Nordio and Christian Estler
Project plan here See report here
Software development nowadays is global. Companies cross borders in the search of qualified personal. Teams are spread over more than one countries and have to deal with the difficulties of different time zones and other cultures. The distributed collaboration results into many new challenges that must be faced like communication, requirements engineering and API design. The difficulties of distributed software engineering have been researched, for example in the DOSE course.
Each software developer knows this situation: You are working at a team of two or three people. Everybody has his own computer, yet you all end up looking at the same screen. Even if each person keeps working on their own laptop, before being able to share the newly added code the annoying circle of software configuration management "commit-resolve-update" must be completed, before the other team members can comment on the new code. Nowadays interactive programming techniques like pair programming or code review are commonly used. Yet the standard IDE offers little support for this kind of collaboration.
The software development environments (IDEs) are the most important tool for a developer. But even so we work in teams, an IDE is still a personal tool. Cloudstudio moves the IDE to the cloud; this does not just follow the trend to offer services in the cloud, but reacts to the needs of distributed software development. Cloudstudio offers the possibility to simultaneously program on different software elements, to validate code using its verification framework and to communicate using integrated tools. Another main feature of Cloudstudio is the simplification of the software configuration management, which will be further improved during this project. The user no longer has to worry about committing and sharing the newly added code; the others can directly see his live changes. As soon as the code compiles correctly it will be automatically committed; there is no worrying about committing and updating to be up-to- date with recent changes of other team members. The goal of this project is to improve the software configuration management of Cloudstudio such that the user has all the comfort of an automatic version control system, while still having additional, useful features of standard version control systems at hand.