The search result changed since you submitted your search request. Documents might be displayed in a different sort order.
  • search hit 1 of 41797
Back to Result List

Data-driven tool construction in exploratory programming environments

Datengetriebener Werkzeugbau in explorativen Programmierumgebungen

  • This work presents a new design for programming environments that promote the exploration of domain-specific software artifacts and the construction of graphical tools for such program comprehension tasks. In complex software projects, tool building is essential because domain- or task-specific tools can support decision making by representing concerns concisely with low cognitive effort. In contrast, generic tools can only support anticipated scenarios, which usually align with programming language concepts or well-known project domains. However, the creation and modification of interactive tools is expensive because the glue that connects data to graphics is hard to find, change, and test. Even if valuable data is available in a common format and even if promising visualizations could be populated, programmers have to invest many resources to make changes in the programming environment. Consequently, only ideas of predictably high value will be implemented. In the non-graphical, command-line world, the situation looks differentThis work presents a new design for programming environments that promote the exploration of domain-specific software artifacts and the construction of graphical tools for such program comprehension tasks. In complex software projects, tool building is essential because domain- or task-specific tools can support decision making by representing concerns concisely with low cognitive effort. In contrast, generic tools can only support anticipated scenarios, which usually align with programming language concepts or well-known project domains. However, the creation and modification of interactive tools is expensive because the glue that connects data to graphics is hard to find, change, and test. Even if valuable data is available in a common format and even if promising visualizations could be populated, programmers have to invest many resources to make changes in the programming environment. Consequently, only ideas of predictably high value will be implemented. In the non-graphical, command-line world, the situation looks different and inspiring: programmers can easily build their own tools as shell scripts by configuring and combining filter programs to process data. We propose a new perspective on graphical tools and provide a concept to build and modify such tools with a focus on high quality, low effort, and continuous adaptability. That is, (1) we propose an object-oriented, data-driven, declarative scripting language that reduces the amount of and governs the effects of glue code for view-model specifications, and (2) we propose a scalable UI-design language that promotes short feedback loops in an interactive, graphical environment such as Morphic known from Self or Squeak/Smalltalk systems. We implemented our concept as a tool building environment, which we call VIVIDE, on top of Squeak/Smalltalk and Morphic. We replaced existing code browsing and debugging tools to iterate within our solution more quickly. In several case studies with undergraduate and graduate students, we observed that VIVIDE can be applied to many domains such as live language development, source-code versioning, modular code browsing, and multi-language debugging. Then, we designed a controlled experiment to measure the effect on the time to build tools. Several pilot runs showed that training is crucial and, presumably, takes days or weeks, which implies a need for further research. As a result, programmers as users can directly work with tangible representations of their software artifacts in the VIVIDE environment. Tool builders can write domain-specific scripts to populate views to approach comprehension tasks from different angles. Our novel perspective on graphical tools can inspire the creation of new trade-offs in modularity for both data providers and view designers.show moreshow less
  • Diese Arbeit schlägt einen neuartigen Entwurf für Programmierumgebungen vor, welche den Umgang mit domänenspezifischen Software-Artefakten erleichtern und die Konstruktion von unterstützenden, grafischen Werkzeugen fördern. Werkzeugbau ist in komplexen Software-Projekten ein essentieller Bestandteil, weil spezifische, auf Domäne und Aufgabe angepasste, Werkzeuge relevante Themen und Konzepte klar darstellen und somit effizient zur Entscheidungsfindung beitragen können. Im Gegensatz dazu sind vorhandene, traditionelle Werkzeuge nur an allgemeinen, wiederkehrenden Anforderungen ausgerichtet, welche im Spezialfall Gedankengänge nur unzureichend abbilden können. Leider sind das Erstellen und Anpassen von interaktiven Werkzeugen teuer, weil die Beschreibungen zwischen Information und Repräsentation nur schwer auffindbar, änderbar und prüfbar sind. Selbst wenn relevante Daten verfügbar und vielversprechende Visualisierungen konfigurierbar sind, müssten Programmierer viele Ressourcen für das Verändern ihrer Programmierumgeben investieren.Diese Arbeit schlägt einen neuartigen Entwurf für Programmierumgebungen vor, welche den Umgang mit domänenspezifischen Software-Artefakten erleichtern und die Konstruktion von unterstützenden, grafischen Werkzeugen fördern. Werkzeugbau ist in komplexen Software-Projekten ein essentieller Bestandteil, weil spezifische, auf Domäne und Aufgabe angepasste, Werkzeuge relevante Themen und Konzepte klar darstellen und somit effizient zur Entscheidungsfindung beitragen können. Im Gegensatz dazu sind vorhandene, traditionelle Werkzeuge nur an allgemeinen, wiederkehrenden Anforderungen ausgerichtet, welche im Spezialfall Gedankengänge nur unzureichend abbilden können. Leider sind das Erstellen und Anpassen von interaktiven Werkzeugen teuer, weil die Beschreibungen zwischen Information und Repräsentation nur schwer auffindbar, änderbar und prüfbar sind. Selbst wenn relevante Daten verfügbar und vielversprechende Visualisierungen konfigurierbar sind, müssten Programmierer viele Ressourcen für das Verändern ihrer Programmierumgeben investieren. Folglich können nur Ideen von hohem Wert umgesetzt werden, um diese Kosten zu rechtfertigen. Dabei sieht die Situation in der textuellen Welt der Kommandozeile sehr vielversprechend aus. Dort können Programmierer einfach ihre Werkzeuge in Form von Skripten anpassen und kleine Filterprogramme kombinieren, um Daten zu verarbeiten. Wir stellen eine neuartige Perspektive auf grafische Werkzeuge vor und vermitteln dafür ein Konzept, um diese Werkzeuge mit geringem Aufwand und in hoher Qualität zu konstruieren. Im Detail beinhaltet das, erstens, eine objekt-orientierte, daten-getriebene, deklarative Skriptsprache, um die Programmierschnittstelle zwischen Information und Repräsentation zu vereinfachen. Zweitens ist dies eine skalierbare Entwurfssprache für Nutzerschnitt-stellen, welche kurze Feedback-Schleifen und Interaktivität kombiniert, wie es in den Umgebungen Self oder Squeak/Smalltalk typisch ist. Wir haben unser Konzept in Form einer neuartigen Umgebung für Werkzeugbau mit Hilfe von Squeak/Smalltalk und Morphic umgesetzt. Die Umgebung trägt den Namen VIVIDE. Damit konnten wir die bestehenden Werkzeuge von Squeak für Quelltextexploration und ausführung ersetzen, um unsere Lösung kontinuierlich zu verbessern. In mehreren Fallstudien mit Studenten konnten wir beobachten, dass sich VIVIDE in vielen Domänen anwenden lässt: interaktive Entwicklung von Programmiersprachen, modulare Versionierung und Exploration von Quelltext und Fehleranalyse von mehrsprachigen Systemen. Mit Blick auf zukünftige Forschung haben wir ebenfalls ein kontrolliertes Experiment entworfen. Nach einigen Testläufen stellte sich die Trainingsphase von VIVIDE als größte, und somit offene, Herausforderung heraus. Im Ergebnis sind wir davon überzeugt, dass Programmierer in VIVIDE direkt mit greifbaren, interaktiven Darstellungen relevanter Software-Artefakte arbeiten können. Im Rahmen des Werkzeugbaus können Programmierer kompakte, angepasste Skripte schreiben, die Visualisierungen konfigurieren, um Programmieraufgaben spezifisch aus mehreren Blickwinkeln zu betrachten. Unsere neuartige Perspektive auf grafische Werkzeuge kann damit sowohl das Bereitstellen von Informationen, als auch den Entwurf interaktiver Grafik positiv beeinflussen.show moreshow less

Download full text files

Export metadata

Additional Services

Share in Twitter Search Google Scholar Statistics
Metadaten
Author:Marcel TaeumelGND
URN:urn:nbn:de:kobv:517-opus4-444289
DOI:https://doi.org/10.25932/publishup-44428
Advisor:Robert Hirschfeld
Document Type:Doctoral Thesis
Language:English
Year of Completion:2020
Publishing Institution:Universität Potsdam
Granting Institution:Universität Potsdam
Date of final exam:2020/01/21
Release Date:2020/02/13
Tag:Direkte Manipulation; Exploration; Lebendigkeit; Nutzerinteraktion; Programmieren; Skriptsprachen; Squeak/Smalltalk; Werkzeugbau
Squeak/Smalltalk; direct manipulation; exploration; immediacy; liveness; programming; scripting languages; tool building; user interaction
Pagenumber:xiv, 299
RVK - Regensburg Classification:ST 240, ST 232
Organizational units:Digital Engineering Fakultät / Hasso-Plattner-Institut für Digital Engineering GmbH
CCS Classification:D. Software / D.1 PROGRAMMING TECHNIQUES (E) / D.1.5 Object-oriented Programming
D. Software / D.2 SOFTWARE ENGINEERING (K.6.3) / D.2.3 Coding Tools and Techniques (REVISED)
D. Software / D.2 SOFTWARE ENGINEERING (K.6.3) / D.2.5 Testing and Debugging
D. Software / D.2 SOFTWARE ENGINEERING (K.6.3) / D.2.6 Programming Environments
D. Software / D.2 SOFTWARE ENGINEERING (K.6.3) / D.2.7 Distribution, Maintenance, and Enhancement (REVISED)
Dewey Decimal Classification:0 Informatik, Informationswissenschaft, allgemeine Werke / 00 Informatik, Wissen, Systeme / 004 Datenverarbeitung; Informatik
Licence (German):License LogoCreative Commons - Namensnennung, Nicht kommerziell, Keine Bearbeitung 4.0 International