software visualization; collaborative software engineering; software evolution; mining software archives; software development
Lemma Remo, Lanza Michele, Olivero Fernando (2013), CEL - Modeling Everywhere, in
ICSE 2013 (35th International Conference on Software Engineering), IEEE CS Press, Los Alamitos.
Minelli Roberto, Lanza Michele (2013), Software Analytics for Mobile Applications - Insights & Lessons Learned, in
Proceedings of CSMR 2013 (17th European Conference on Software Maintenance and Reengineering), IEEE CS Press, Los Alamitos.
Olivero Fernando, Lanza Michele, D'Ambros Marco (2012), Ronda: A Fine Grained Collaborative Development Environment, in
CDVE 2012 (9th International Conference on Cooperative Design, Visualization and Engineering), IEEE Computer Society, Los Alamitos.
Olivero Fernando, Lanza Michele, D'Ambros Marco, Robbes Romain (2012), Tracking Human-Centric Controlled Experiments with Biscuit, in
Proceedings of PLATEAU 2012 (4th International Workshop on Evaluation and Usability of Programming L, IEEE Computer Society, Los Alamitos.
Hattori Lile, Lanza Michele, D'Ambros Marco (2011), A qualitative analysis of preemptive conflict detection, in
Proceedings of ICGSE 2012 (7th International Conference on Global Software Engineering), IEEE Computer Society, Los Alamitos.
Hattori Lile (2011), Change-centric Support For Team Collaboration, in
., IEEE Computer Society, Los Alamitos.
Guzzi Anja, Hattori Lile, Lanza Michele (2011), Collective Code Bookmarks for Program Comprehension, in
Pinzger Martin, Van Deursen ArieIEEE Computer Society, Palo Alto.
Olivero Fernando, Lanza Michele, D'Ambros Marco, Robbes Romain (2011), Enabling Program Comprehension through a Visual Object-focused Development Environment, in
VL/HCC 2011 (27th IEEE Symposium on Visual Languages and Human-Centric Computing), IEEE Computer Society, Los Alamitos.
Hattori Lile, Bacchelli Alberto (2011), Erase and Rewind - Learning by Replaying Examples, in
Lungu Mircea, Lanza MicheleIEEE Computer Society, Los Alamitos.
Olivero Fernando, Lanza Michele (2011), Gaucho: Programming == Modeling, in
D'Ambros Marco, Robbes RomainIEEE Computer Society, Los Alamitos.
Bacchelli Alberto, Rigotti Francesco, Hattori Lile, Lanza Michele (2011), Manhattan ‚A 3D City Visualizations in Eclipse, in
Proceedings of Eclipse-IT 2011 (6th Workshop of the Italian Eclipse Community), IEEE Computer Society, Los Alamitos.
Olivero Fernando (2011), Object Focused Environments as Vehicles for Object-Oriented Modeling, in
Proceedings of ECOOP '11 (25th European Conference on Object-Oriented Programming), IEEE Computer Society, Los Alamitos.
Olivero Fernando (2011), Object-Focused Environments as Vehicles for Object-Oriented Modeling, in
., IEEE Computer Society, Los Alamitos.
Hattori Lile, D'Ambros Marco, Lanza Michele (2011), Software Evolution Comprehension: Replay to the Rescue, in
Lungu Mircea, IEEE Computer Society, Palo Alto.
Hattori Lile (2010), Enhancing Collaboration of Multi-Developer Projects with Synchronous Changes, in
., .IEEE Computer Society, Palo Alto.
Olivero Fernando (2010), Gaucho: From Integrated Development Environments to Direct Manipulation Environments, in
Lanza Michele, Lungu MirceaIEEE Computer Society, Los Alamitos.
Hattori Lile, Lanza Michele, Robbes Romain (2010), Refining code ownership with synchronous changes, in
Journal of Empirical Software Engineering, 1-33.
Hattori Lile, Lungu Mircea (2010), Replaying Past Changes in Multi-developer Projects, in
Lanza Michele, IEEE Computer Society, Los Alamitos.
Hattori Lile (2010), Syde: A Tool for Collaborative Software Development, in
Lanza Michele, IEEE Computer Society, Palo Alto.
Hattori Lile, D'Ambros Marco, Lanza Michele, Lungu Mircea, Answering Software Evolution Questions: An Empirical Evaluation, in
Information and Software Technology, TBD(TBD).
Lemma Remo, Lanza Michele, Olivero Fernando, Co-Evolution as the Key for Live Programming, in
Proceedings of LIVE 2013 (1st International Workshop on Live Programming), IEEE CS Press, Los Alamitos.
Olivero Fernando, Lanza Michele, Enabling Program Comprehension through a Visual Object-focused Development Environment, in
D'Ambros Marco, Robbes RomainIEEE Computer Society, Palo Alto.
Olivero Fernando, Lanza Michele, D'Ambros Marco, Object-focused Environments Revisited, in
Information and Software Technology, TBD(TBD).
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 continuation 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. In particular, the GSync project aims to answer the following research questions: 1. How can we model a collaborative change-centric approach? How should concurrent changes be recorded, stored, and shared among workspaces? How can we detect arising commit conflits before they happen, and how can we resolve them? 2. How can we visually augment workspace awareness? How can we assist teams to coordinate development activities? How can we model the relationships of trust that are in place when developers work collaboratively? Can we augment the productivity of developers working in parallel? 3. How can we use 3D visualization to render the complex information generated by collaborative development? How can we step beyond the current state-of-the-art IDEs and create an immersive collaborative development environment?For the GSync project we propose to investigate the following research tracks:1. Enabling Synchronous Development. We will continue our work on change-based software evolution by devising the infrastructure to take into account collaborative aspects, by addressing the issues that arise when multiple developers work at the same time on the same system. In detail, this implies the creation of a client-server application that records every change happening to a system in real time and then broadcasts this information to all developers. The client side is represented by Syde, the Eclipse IDE plugin we have been developing, which we want to extend to model in a more accurate way, namely at the abstract syntax tree (AST) level, what happens to a system as it is being changed. The server side will serve as central repository for all the changes, and will also broadcast changes to all clients. We will also investigate how in a collaborative context commit conflicts can be detected and resolved before they happen, and will use this as a basis to develop the means to provide assistance to developers working in a collaborative context.2. Immersive Synchronous Development. Our goal is to use visualization to convey to developers the events that pertain to the first research track, which deals mostly with infrastructural issues that must remain invisible to the developers to minimize information overload. We will devise visual means to augment workspace awareness, to warn of potential conflicts, and in a latter moment to proactively assist developers. In the last part of the project, our goal is to build, on top of the Eclipse IDE, an immersive 3D environment that supports synchronous development activities.3. Demonstrator & Industrial Validation. This track integrates the first two, as they are intrinsically intertwined, i.e., the first track will provide the infrastructure for the second one, which in turn will provide valuable feedback for the first one. Our goal is to periodically publicly release an integrated version of our software prototypes, which in turn is also needed to potentially attract industrial partners for a real-world validation of our research endeavours.