Gsync - Global Synchronous Software Development
Modern software development has in the past two decades gone through radical changes due to higher-productivity tools and techniques to develop and analyze software. In practice this prolongs the lifetime of systems, and therefore generates novel problems affecting them. It is nowadays indeed difficult to make a distinction between developing and maintaining software, because modern techniques have made systems undergo a transition towards ``permanent evolution´´. In recent times software industry is facing a new phenomenon: distributed, collaborative software engineering. Indeed, software is nowadays often built by geographically separated development teams, which leads to a number of challenges, namely awareness (the understanding of other´s activities to provide a context for one´s activities), communication (the exchange of information between developers working remotely), and synchronization (the versioning of the system and the coordination of development activities). Despite recent efforts by a number of researchers, these and other issues concerning collaborative software engineering remain largely unaddressed. The goal of this project is to build on our previous work on "Change-based Software Evolution" in the context of the predecessor project REBASE, and extend it to "Global Synchronous Software Development", a collaborative context in which we model in a fine-grained way the real-time changes that are performed in parallel by developers working on a system.