title: Diagram merging and diffing in the context of cloud based IDEs
Creators: name: Dulca, Victor Gabriel
name: Avram, Irina
Publisher: name: TU Wien
Year: 2022
Subjects: subject: Theia
subject: EMF Compare
subject: Diagram diff merge
subject: Cloud based IDE

description: Das letzte Jahrzehnt hat unzählige Fortschritte auf dem Gebiet der Technologie gebracht. Wo die Softwareentwicklung früher ein komplexer und aufwändiger Prozess war, durchgeführt in einfachen Texteditoren ohne jede Art von Syntaxhervorhebung oder Validierung, sind jetzt IDEs und speziell entwickelte Code-Editoren in diesem Bereich unübertroffen. Längst vorbei sind die Zeiten, in denen das Bauen und Ausführen selbst der einfachsten Softwareteile vom Entwickler die Abarbeitung einer Reihe von Aufgaben erforderte. Jetzt lässt sich ein Großteil dieser Aufgaben per Knopfdruck in der IDE erledigen. Ob "Ausführen" oder "Starten", die allgemeine Funktionalität dieses Knopfes ist klar: Wandle den Code von dem Text aus einem Editor in ein laufendes Programm, das sein Ziel erreicht, um. Abgesehen vom Usability-Aspekt gab es in den letzten Jahren auch in anderen Bereichen Verbesserungen, was dazu geführt hat, dass frühere Nischenmethoden mehr und mehr zum Mainstream wurden. Ein Beispiel dafür ist Model Driven Development, kurz MDD. Darüber hinaus bedeutet das Aufkommen von Cloud-basierten IDEs, dass Entwickler nicht länger an die Rechenkapazitäten der Maschinen, die ihnen physisch zur Verfügung stehen, gebunden sind. Die Client-Server-Architektur solcher IDEs ermöglicht Geräten mit bescheidenen Spezifikationen, die intensiveren Aufgaben an einen Server zu delegieren und sich lediglich mit dem Senden der Anweisungen und dem Anzeigen der Ergebnisse zu beschäftigen. Es ist an der Schnittstelle zwischen den Bereichen Cloud-basierte IDEs und MDD, wo diese Diplomarbeit ihren Beitrag leistet. MDD ermöglicht Entwicklern, komplexe Anwendungen zu erstellen, währendem sie gleichzeitig ein hohes Maß an Abstraktion beibehalten und schnell Änderungen vornehmen können, ohne sich mit codespezifischen Problemen zu befassen. Da komplexe Anwendungen entsprechend komplexe Modelle hinter sich haben, ist es oft so, dass mehr als ein Entwickler an einem Modell und/oder Diagramm eines Systems arbeitet. Dies erhöht den Bedarf an kollaborativer Modellierungsunterstützung für diagrammbasierte Darstellungen, ähnlich der textbasierten Unterstützung, angeboten von Tools wie Git oder SVN, die verschiedene Versionen einer Datei miteinander vergleichen und mergen. Diese Diplomarbeit analysiert den verfügbaren Support für Vergleichen und Mergen von Diagrammen, sowohl in den am häufigsten verwendeten Cloud-basierten IDEs als auch in vollwertigen IDEs und stellt eine eigene Implementierung für die Theia Cloud-basierte IDE bereit. Schon existierende und bewährte Komponenten und Frameworks wurden wiederverwendet, wo immer es geeignet war. Somit werden dem Benutzer bereits bekannte Diff-Visualisierungsmittel, wie beispielsweise Seite-an-Seite-Vergleiche, sowie erprobte Mergemechanismen präsentiert. Die Durchführung des Vergleichs sowie der Mergeprozess werden vom EMF-Compare-Framework übernommen, wobei der Fokus dieser Arbeit auf der Visualisierung der Diffs und der möglichen Mittel zur Konfliktlösung und Diagrammmerging liegt. Die Ergebnisse wurden im Hinblick auf die Effizienz des Protokolls, der die Kommunikation zwischen den Frontend- und Backend-Komponenten ermöglicht, sowie im Hinblick auf die Verwendbarkeit der entwickelten Visualisierungs- und Merge-/Konfliktlösungsmittel bewertet. Im Falle des Kommunikationsprotokolls wurde die Performance durch Benchmarking gemessen. Für die Bewertung der Benutzerfreundlichkeit wurde die System Usability Scale verwendet. Die Ergebnisse zeigen, dass die entwickelten Vergleichs- und Mergefunktionen für die Mehrheit der Befragten einfach zu bedienen und für die täglichen Aufgaben ausreichend waren. Das System hat auf der Skala der Benutzerfreundlichkeit zwischen gut und ausgezeichnet abschnitten.
description: The last decade has brought about countless advancements in the field of technology. Where once software development was a toilsome process done in plain text editors, lacking any sort of syntax highlighting, validation or other means of aiding the developer, now IDEs and specially designed code editors reign supreme in this field. Long gone are the days when building and running even the simplest pieces of software, required the developer to undertake a series of tasks. Now most of these tasks can be achieved through the push of a button in the IDE. Be it called "Run", "Execute" or "Start", the overall functionality of that button is clear: turn the code from text in an editor to a running program that achieves its goal. Aside from the usability aspect, the last few years have seen improvements in other areas, with formerly niche methodologies becoming more and more mainstream, such as Model-driven development, or MDD for short. Furthermore the emergence of cloud-based IDEs means that developers are no longer bound by the computational capabilities of the machines that are physically available to them. The client-server architecture of such IDEs allows devices with modest specifications to delegate the more intensive tasks to a server and merely concern themselves with sending the instructions and displaying the results. It is at the intersection between the fields of cloud-based IDEs and MDD where this thesis makes its contribution. MDD allows developers to build complex applications while maintaining a high level of abstraction, and to quickly make changes without concerning themselves with code-specific issues. Because complex applications often have correspondingly complex models behind them, it is often the case that more than one developer will be working on a model and/or diagram of a system. This raises the need for collaborative modeling support for diagram-based representations, in a similar way to the text-based support offered by tools such as Git or SVN, which allow different versions of a file to be compared and merged with each other. This thesis analyzes the available support for diagram diffing and merging both within the most commonly used cloud-based IDEs, as well full-fledged IDEs, and provides an implementation of its own for the Theia cloud-based IDE. Already existing, and well established components and frameworks have been reused wherever suitable, thus presenting users with somewhat known diff visualization means, such as side by side comparisons, as well as merging mechanisms. The computation of the comparison as well as the merging process are being handled by the EMF Compare framework, with the focus of this thesis lying on the visualization of the diffs and means of conflict resolution and diagram merging. The results have been evaluated in regard to the efficiency of the protocol facilitating the communication between the frontend and the backend components of the implementation, as well as in regard to the usability of the developed visualization and merging / conflict resolution means. This evaluation has been conducted by way of benchmarking in case of the communication protocol while the System Usability Scale has been used to measure the usability of the implementation. The results themselves show that the developed diffing and merging capabilities were easy to use and sufficient for daily tasks for a majority of respondents, scoring between good and excellent on the System Usability Scale.