TY - BOOK
A1 - Schreiber, Robin
A1 - Krahn, Robert
A1 - Ingalls, Daniel H. H.
A1 - Hirschfeld, Robert
T1 - Transmorphic
T1 - Transmorphic
BT - mapping direct manipulation to source code transformations
BT - Abbilden von direkter Manipulation zu Transformationen im Programmtext
N2 - Defining Graphical User Interfaces (GUIs) through functional abstractions can reduce the complexity that arises from mutable abstractions. Recent examples, such as Facebook's React GUI framework have shown, how modelling the view as a functional projection from the application state to a visual representation can reduce the number of interacting objects and thus help to improve the reliabiliy of the system. This however comes at the price of a more rigid, functional framework where programmers are forced to express visual entities with functional abstractions, detached from the way one intuitively thinks about the physical world.
In contrast to that, the GUI Framework Morphic allows interactions in the graphical domain, such as grabbing, dragging or resizing of elements to evolve an application at runtime, providing liveness and directness in the development workflow. Modelling each visual entity through mutable abstractions however makes it difficult to ensure correctness when GUIs start to grow more complex. Furthermore, by evolving morphs at runtime through direct manipulation we diverge more and more from the symbolic description that corresponds to the morph. Given that both of these approaches have their merits and problems, is there a way to combine them in a meaningful way that preserves their respective benefits?
As a solution for this problem, we propose to lift Morphic's concept of direct manipulation from the mutation of state to the transformation of source code. In particular, we will explore the design, implementation and integration of a bidirectional mapping between the graphical representation and a functional and declarative symbolic description of a graphical user interface within a self hosted development environment. We will present Transmorphic, a functional take on the Morphic GUI Framework, where the visual and structural properties of morphs are defined in a purely functional, declarative fashion. In Transmorphic, the developer is able to assemble different morphs at runtime through direct manipulation which is automatically translated into changes in the code of the application. In this way, the comprehensiveness and predictability of direct manipulation can be used in the context of a purely functional GUI, while the effects of the manipulation are reflected in a medium that is always in reach for the programmer and can even be used to incorporate the source transformations into the source files of the application.
N2 - Das Definieren von graphischen Benutzeroberflächen mittels funktionaler Abstraktionen, kann die Komplexität der Verwaltung des Zustandes der Anwendung erheblich reduzieren. Aktuelle Beispiele, wie Facebook's Framework *React*, zeigen auf, wie das modellieren der visuellen Schnittstelle als eine funktionale Projektion vom Zustand der Anwendung zur graphischen Repräsentation, die Anzahl der agierenden Objekte erheblich reduzieren und so die Verlässlichkeit des Systems erhöhen kann. Der Preis für die so erreichte Stabilität, ist eine relativ statische graphische Repräsentation, die sich zur Laufzeit nicht dynamisch anpassen lässt und in der jede visuelle Entität nur mittles funktionaler Abstraktionen beschrieben werden kann, was nicht unserem intuitiven Verständnis der Welt entspricht.
Im Gegensatz dazu, erlaubt das Rahmenwerk Morphic mittles Interaktionen wie Ziehen, Greifen oder Skalieren von visuellen Elementen, die grahische Darstellung der Anwendung zur Laufzeit in einer unmittelbaren ("live") und direkten Art und Weise weiter zu entwickeln. Um diese Flexibilität zu erreichen, modelliert Morphic allerdings jedes graphische Objekt mittels veränderlichem Zustand, was das Garantieren der Fehlerfreiheit von graphischen Oberfläche, insbesondere bei sehr komplexen Schnittstellen, deutlich erschwehrt. Hinzu kommt, dass die dynamischen Anpassungen zur Laufzeit dazu führen, dass sich die Oberfläche mehr und mehr von ihrer ursprünglichen symbolischen Definition entfernt, da Morphic von selbst die Änderungen in der Laufzeit nicht im Quellcode reflektieren kann. Die Frage ist also ob es eine Kombination beider Ansätze gibt, welche es vermag die Vorteile zu erhalten und Nachteile wenn möglich auszugleichen.
Als Lösung für dieses Problem schlagen wir vor das Konzept der direkten Manipulation aus Morphic auf Transformationen im Quellcode zu übertragen. Hierfür werden wir das Design, die Implementierung und Integration einer bidirektionalen Abbildung zwischen graphischer Darstellung und einer funktionalen, deklarativen symbolischen Beschreibung in einer selbsterhaltenden Entwicklungsumgebung erörtern. Wir werden Transmorphic vorstellen, eine funktionale Variante des Morphic Frameworks, in der visuelle und strukturelle Eigenschaften in einer strikt funktionalen und daher deklarativen Art und Weise definiert werden. Innerhalb von Transmorphic hat der Entwickler die Möglichkeit verschieden Morphs zur Laufzeit mittels direkter Manipulation zusammenzusetzen, was direkt zu Änderungen im Quellcode der Anwendung übersetzt wird. Auf diese Weise kann die verständliche und nachvollziehbare direkte Interaktion aus Morphic, im Kontext einer vollständig funktional beschriebenen graphischen Benutzeroberfläche verwendet werden.
T3 - Technische Berichte des Hasso-Plattner-Instituts für Digital Engineering an der Universität Potsdam - 110
KW - functional programming
KW - morphic
KW - functional lenses
KW - direct manipulation
KW - synchronization
KW - FRP
KW - reactive
KW - immutable values
KW - live programming
KW - funktionale Programmierung
KW - Morphic
KW - Functional Lenses
KW - direkte Manipulation
KW - Synchronisation
KW - FRP
KW - reaktive Programmierung
KW - Unveränderlichkeit
KW - Live-Programmierung
Y1 - 2016
U6 - http://nbn-resolving.de/urn/resolver.pl?urn:nbn:de:kobv:517-opus4-98300
SN - 978-3-86956-387-9
SN - 1613-5652
SN - 2191-1665
IS - 110
PB - Universitätsverlag Potsdam
CY - Potsdam
ER -
TY - BOOK
A1 - Otto, Philipp
A1 - Pollak, Jaqueline
A1 - Werner, Daniel
A1 - Wolff, Felix
A1 - Steinert, Bastian
A1 - Thamsen, Lauritz
A1 - Taeumel, Marcel
A1 - Lincke, Jens
A1 - Krahn, Robert
A1 - Ingalls, Daniel H. H.
A1 - Hirschfeld, Robert
T1 - Exploratives Erstellen von interaktiven Inhalten in einer dynamischen Umgebung
T1 - Exploratory authoring of interactive content in a live environment
N2 - Bei der Erstellung von Visualisierungen gibt es im Wesentlichen zwei Ansätze. Zum einen können mit geringem Aufwand schnell Standarddiagramme erstellt werden. Zum anderen gibt es die Möglichkeit, individuelle und interaktive Visualisierungen zu programmieren. Dies ist jedoch mit einem deutlich höheren Aufwand verbunden.
Flower ermöglicht eine schnelle Erstellung individueller und interaktiver Visualisierungen, indem es den Entwicklungssprozess stark vereinfacht und die Nutzer bei den einzelnen Aktivitäten wie dem Import und der Aufbereitung von Daten, deren Abbildung auf visuelle Elemente sowie der Integration von Interaktivität direkt unterstützt.
N2 - To create visualizations for studying or conveying the meaning of data, users can usually choose between two options: 1) generating standard diagrams with low effort such as bar charts or scatter plots or 2) constructing individual, interactive, domain-specific visualizations at great expense.
This report presents the concepts and implementation of Flower, an approach to simplify the process of creating individual and interactive visualizations. Flower supports users users carrying out the following activities directly and interactively: (i) import and transformation of data, (ii) creation of visual mappings, and (iii) provisioning of interactivity.
T3 - Technische Berichte des Hasso-Plattner-Instituts für Digital Engineering an der Universität Potsdam - 101
KW - Visualisierung
KW - Skript-Entwicklungsumgebungen
KW - Werkzeuge
KW - Lively Kernel
KW - visualization
KW - scripting environments
KW - tools
KW - lively kernel
Y1 - 2015
U6 - http://nbn-resolving.de/urn/resolver.pl?urn:nbn:de:kobv:517-opus4-83806
SN - 978-3-86956-346-6
SN - 1613-5652
SN - 2191-1665
IS - 101
PB - Universitätsverlag Potsdam
CY - Potsdam
ER -
TY - JOUR
A1 - Rein, Patrick
A1 - Ramson, Stefan
A1 - Lincke, Jens
A1 - Felgentreff, Tim
A1 - Hirschfeld, Robert
T1 - Group-Based Behavior Adaptation Mechanisms in Object-Oriented Systems
JF - IEEE software
N2 - Dynamic and distributed systems require behavior adaptations for groups of objects. Group-based behavior adaptation mechanisms scope adaptations to objects matching conditions beyond class membership. The specification of groups can be explicit or implicit.
KW - group-based behavior adaptation
KW - lively groups
KW - ContextErlang
KW - entity-component-system
KW - predicated generic functions
KW - active layers
KW - reactive object queries
KW - context groups
KW - implied methods
KW - object-oriented languages
KW - software engineering
KW - software development
KW - contextual-variability modeling
Y1 - 2017
U6 - https://doi.org/10.1109/MS.2017.4121224
SN - 0740-7459
SN - 1937-4194
VL - 34
IS - 6
SP - 78
EP - 82
PB - Inst. of Electr. and Electronics Engineers
CY - Los Alamitos
ER -
TY - JOUR
A1 - Hirschfeld, Robert
A1 - Kawarnura, Katsuya
T1 - Dynamic service adaptation
JF - Software : practice & experience
N2 - Change can be observed in our environment and in the technology we build. While changes in the environment happen continuously and implicitly, our technology has to be kept in sync with the changing world around it. Although we can prepare for some of the changes for most of them we cannot. This is especially true for next-generation mobile communication systems that are expected to support the creation of a ubiquitous society where virtually everything is connected and made available within an organic information network. Resources will frequently join or leave the network, new types of media or new combinations of existing types will be used to interact and cooperate, and services will be tailored to preferences and needs of individual customers to better meet their needs. This paper outlines our research in the area of dynamic service adaptation to provide concepts and technologies allowing for such environments. Copyright (C) 2006 John Wiley & Sons, Ltd.
KW - dynamic service adaptation
KW - DSA
KW - aspect-oriented programming
KW - dynamic AOP
Y1 - 2006
U6 - https://doi.org/10.1002/spe.766
SN - 0038-0644
SN - 1097-024X
VL - 36
IS - 11-12
SP - 1115
EP - 1131
PB - Wiley
CY - Chichester
ER -
TY - JOUR
A1 - Mattis, Toni
A1 - Beckmann, Tom
A1 - Rein, Patrick
A1 - Hirschfeld, Robert
T1 - First-class concepts
BT - Reified architectural knowledge beyond dominant decompositions
JF - Journal of object technology : JOT / ETH Zürich, Department of Computer Science
N2 - Ideally, programs are partitioned into independently maintainable and understandable modules. As a system grows, its architecture gradually loses the capability to accommodate new concepts in a modular way. While refactoring is expensive and not always possible, and the programming language might lack dedicated primary language constructs to express certain cross-cutting concerns, programmers are still able to explain and delineate convoluted concepts through secondary means: code comments, use of whitespace and arrangement of code, documentation, or communicating tacit knowledge.
Secondary constructs are easy to change and provide high flexibility in communicating cross-cutting concerns and other concepts among programmers. However, such secondary constructs usually have no reified representation that can be explored and manipulated as first-class entities through the programming environment.
In this exploratory work, we discuss novel ways to express a wide range of concepts, including cross-cutting concerns, patterns, and lifecycle artifacts independently of the dominant decomposition imposed by an existing architecture. We propose the representation of concepts as first-class objects inside the programming environment that retain the capability to change as easily as code comments. We explore new tools that allow programmers to view, navigate, and change programs based on conceptual perspectives. In a small case study, we demonstrate how such views can be created and how the programming experience changes from draining programmers' attention by stretching it across multiple modules toward focusing it on cohesively presented concepts. Our designs are geared toward facilitating multiple secondary perspectives on a system to co-exist in symbiosis with the original architecture, hence making it easier to explore, understand, and explain complex contexts and narratives that are hard or impossible to express using primary modularity constructs.
KW - software engineering
KW - modularity
KW - exploratory programming
KW - program
KW - comprehension
KW - remodularization
KW - architecture recovery
Y1 - 2022
U6 - https://doi.org/10.5381/jot.2022.21.2.a6
SN - 1660-1769
VL - 21
IS - 2
SP - 1
EP - 15
PB - ETH Zürich, Department of Computer Science
CY - Zürich
ER -
TY - BOOK
A1 - Haupt, Michael
A1 - Marr, Stefan
A1 - Hirschfeld, Robert
T1 - CSOM/PL : a virtual machine product line
N2 - CSOM/PL is a software product line (SPL) derived from applying multi-dimensional separation of concerns (MDSOC) techniques to the domain of high-level language virtual machine (VM) implementations. For CSOM/PL, we modularised CSOM, a Smalltalk VM implemented in C, using VMADL (virtual machine architecture description language). Several features of the original CSOM were encapsulated in VMADL modules and composed in various combinations. In an evaluation of our approach, we show that applying MDSOC and SPL principles to a domain as complex as that of VMs is not only feasible but beneficial, as it improves understandability, maintainability, and configurability of VM implementations without harming performance.
N2 - CSOM/PL ist eine Softwareproduktfamilie (software product line, SPL), die erstellt wurde, indem Techniken der mehrdimensionalen Belangtrennung (multi-dimensional separation of concerns, MDSOC) auf die Domäne der virtuellen Maschinen (VM) für höhere Programmiersprachen angewendet wurden. Dazu wurde CSOM, eine in C implementierte Smalltalk-VM, mittels VMADL (virtual machine architecture description language) in Module zerlegt. Etliche Eigenschaften von CSOM wurden in VMADL-Module gekapselt und auf unterschiedliche Weisen komponiert. Die Auswertung des Ansatzes zeigt, dass die Anwendung von MDSOC- und SPL-Prinzipien auf die komplexe VM-Domäne nicht nur machbar ist, sondern darüber hinaus auch Vorteile mit sich bringt, da die Verständlichkeit, Wartbarkeit und Konfigurierbarkeit von VM-Implementierungen ohne Beeinträchtigung der Ausführungsgeschwindigkeit verbessert werden.
T3 - Technische Berichte des Hasso-Plattner-Instituts für Digital Engineering an der Universität Potsdam - 48
KW - Virtuelle Maschinen
KW - Architektur
KW - Softwareproduktlinien
KW - mehrdimensionale Belangtrennung
KW - Virtual machines
KW - architecture
KW - software product lines
KW - multi-dimensional separation of concerns
Y1 - 2011
U6 - http://nbn-resolving.de/urn/resolver.pl?urn:nbn:de:kobv:517-opus-52332
SN - 978-3-86956-134-9
PB - Universitätsverlag Potsdam
CY - Potsdam
ER -
TY - BOOK
A1 - Calmez, Conrad
A1 - Hesse, Hubert
A1 - Siegmund, Benjamin
A1 - Stamm, Sebastian
A1 - Thomschke, Astrid
A1 - Hirschfeld, Robert
A1 - Ingalls, Dan
A1 - Lincke, Jens
T1 - Explorative authoring of Active Web content in a mobile environment
N2 - Developing rich Web applications can be a complex job - especially when it comes to mobile device support. Web-based environments such as Lively Webwerkstatt can help developers implement such applications by making the development process more direct and interactive. Further the process of developing software is collaborative which creates the need that the development environment offers collaboration facilities. This report describes extensions of the webbased development environment Lively Webwerkstatt such that it can be used in a mobile environment. The extensions are collaboration mechanisms, user interface adaptations but as well event processing and performance measuring on mobile devices.
N2 - Vielseitige Webanwendungen zu entwickeln kann eine komplexe Aufgabe sein - besonders wenn es die Unterstützung mobiler Geräte betrifft. Webbasierte Umgebungen wie Lively Kernel können Entwicklern helfen Webanwendungen zu entwickeln, indem sie den Entwicklungsprozess direkter und interaktiver gestalten. Zudem sind Entwicklungsprozesse von Software kollaborativ, d.h. Enwicklungsumgebungen müssen so gestaltet sein, dass sie mit kollaborativen Elementen zu unterstützen. Diese Arbeit beschreibt die Erweiterungen der webbasierten Entwicklungsumgebung Lively Webwerkstatt, so dass diese in einer mobilen Umgebung genutzt werden kann. Die Reichweite dieser Erweiterungen erstreckt sich von Kollaborationsmechanismen und Benutzerschnittstellen bis hin zu Eventbehandlung und Performanzmessungen auf mobilen Geräten.
T3 - Technische Berichte des Hasso-Plattner-Instituts für Digital Engineering an der Universität Potsdam - 72
KW - Web applications
KW - Mobile Application Development
KW - CSCW
KW - Lively Kernel
Y1 - 2013
U6 - http://nbn-resolving.de/urn/resolver.pl?urn:nbn:de:kobv:517-opus-64054
SN - 978-3-86956-232-2
PB - Universitätsverlag Potsdam
CY - Potsdam
ER -
TY - BOOK
A1 - Geller, Felix
A1 - Hirschfeld, Robert
A1 - Bracha, Gilad
T1 - Pattern Matching for an object-oriented and dynamically typed programming language
N2 - Pattern matching is a well-established concept in the functional programming community. It provides the means for concisely identifying and destructuring values of interest. This enables a clean separation of data structures and respective functionality, as well as dispatching functionality based on more than a single value. Unfortunately, expressive pattern matching facilities are seldomly incorporated in present object-oriented programming languages. We present a seamless integration of pattern matching facilities in an object-oriented and dynamically typed programming language: Newspeak. We describe language extensions to improve the practicability and integrate our additions with the existing programming environment for Newspeak. This report is based on the first author’s master’s thesis.
T3 - Technische Berichte des Hasso-Plattner-Instituts für Digital Engineering an der Universität Potsdam - 36
KW - Pattern Matching
KW - Musterabgleich
KW - Muster
KW - Objekt-Orientiertes Programmieren
KW - Dynamische Typ Systeme
KW - Pattern Matching
KW - Patterns
KW - Object-Oriented Programming
KW - Dynamic Type System
Y1 - 2010
U6 - http://nbn-resolving.de/urn/resolver.pl?urn:nbn:de:kobv:517-opus-43035
SN - 978-3-86956-065-6
PB - Universitätsverlag Potsdam
CY - Potsdam
ER -
TY - JOUR
A1 - Perscheid, Michael
A1 - Siegmund, Benjamin
A1 - Taeumel, Marcel
A1 - Hirschfeld, Robert
T1 - Studying the advancement in debugging practice of professional software developers
JF - Software Quality Journal
N2 - In 1997, Henry Lieberman stated that debugging is the dirty little secret of computer science. Since then, several promising debugging technologies have been developed such as back-in-time debuggers and automatic fault localization methods. However, the last study about the state-of-the-art in debugging is still more than 15 years old and so it is not clear whether these new approaches have been applied in practice or not. For that reason, we investigate the current state of debugging in a comprehensive study. First, we review the available literature and learn about current approaches and study results. Second, we observe several professional developers while debugging and interview them about their experiences. Third, we create a questionnaire that serves as the basis for a larger online debugging survey. Based on these results, we present new insights into debugging practice that help to suggest new directions for future research.
KW - Debugging
KW - Literature review
KW - Field study
KW - Online survey
Y1 - 2016
U6 - https://doi.org/10.1007/s11219-015-9294-2
SN - 0963-9314
SN - 1573-1367
VL - 25
SP - 83
EP - 110
PB - Springer
CY - Dordrecht
ER -
TY - JOUR
A1 - Felgentreff, Tim
A1 - Perscheid, Michael
A1 - Hirschfeld, Robert
T1 - Implementing record and refinement for debugging timing-dependent communication
JF - Science of computer programming
N2 - Distributed applications are hard to debug because timing-dependent network communication is a source of non-deterministic behavior. Current approaches to debug non deterministic failures include post-mortem debugging as well as record and replay. However, the first impairs system performance to gather data, whereas the latter requires developers to understand the timing-dependent communication at a lower level of abstraction than they develop at. Furthermore, both approaches require intrusive core library modifications to gather data from live systems. In this paper, we present the Peek-At-Talk debugger for investigating non-deterministic failures with low overhead in a systematic, top-down method, with a particular focus on tool-building issues in the following areas: First, we show how our debugging framework Path Tools guides developers from failures to their root causes and gathers run-time data with low overhead. Second, we present Peek-At-Talk, an extension to our Path Tools framework to record non-deterministic communication and refine behavioral data that connects source code with network events. Finally, we scope changes to the core library to record network communication without impacting other network applications.
KW - Distributed debugging
KW - Record and replay
KW - Dynamic analysis
KW - Record and refinement
Y1 - 2016
U6 - https://doi.org/10.1016/j.scico.2015.11.006
SN - 0167-6423
SN - 1872-7964
VL - 134
SP - 4
EP - 18
PB - Elsevier
CY - Amsterdam
ER -