TY - BOOK A1 - Kleine, Matthias A1 - Hirschfeld, Robert A1 - Bracha, Gilad T1 - An abstraction for version control systems T3 - Technische Berichte des Hasso-Plattner-Instituts für Softwaresystemtechnik an der Universität Potsdam N2 - Versionsverwaltungssysteme (VCS) ermöglichen es Entwicklern, Änderungen an Softwareartifakten zu verwalten. VCS werden mit Hilfe einer Vielzahl verschiedener Werkzeuge bedient, wie z.\,B. graphische Front-ends oder Kommandozeilenwerkzeuge. Es ist wünschenswert mit einzelnen solcher Werkzeuge unterschiedliche VCS bedienen zu können. Bislang hat sich jedoch keine Abstraktion für Versionsverwaltungssysteme durchgesetzt, mit deren Hilfe solche Werkzeuge erstellt werden können. Stattdessen implementieren Werkzeuge zur Interaktion mit mehreren VCS ad-hoc Lösungen. Diese Masterarbeit stellt Pur vor, eine Abstraktion über Versionsverwaltungskonzepte. Mit Hilfe von Pur können Anwendungsprogramme entwickelt werden, die mit mehreren Versionsverwaltungssystemen interagieren können. Im Rahmen dieser Arbeit wird eine Implementierung dieser Abstraktion bereitgestellt und mit Hilfe eines Anwendungsprogramms validiert. N2 - Version Control Systems (VCS) allow developers to manage changes to software artifacts. Developers interact with VCSs through a variety of client programs, such as graphical front-ends or command line tools. It is desirable to use the same version control client program against different VCSs. Unfortunately, no established abstraction over VCS concepts exists. Instead, VCS client programs implement ad-hoc solutions to support interaction with multiple VCSs. This thesis presents Pur, an abstraction over version control concepts that allows building rich client programs that can interact with multiple VCSs. We provide an implementation of this abstraction and validate it by implementing a client application. T3 - Technische Berichte des Hasso-Plattner-Instituts für Digital Engineering an der Universität Potsdam - 54 Y1 - 2011 U6 - http://nbn-resolving.de/urn/resolver.pl?urn:nbn:de:kobv:517-opus-55629 SN - 978-3-86956-158-5 SN - 1613-5652 SN - 2191-1665 IS - 54 PB - Universitätsverlag Potsdam CY - Potsdam ER - TY - BOOK A1 - Baltzer, Wanda A1 - Hradilak, Theresa A1 - Pfennigschmidt, Lara A1 - Prestin, Luc Maurice A1 - Spranger, Moritz A1 - Stadlinger, Simon A1 - Wendt, Leo A1 - Lincke, Jens A1 - Rein, Patrick A1 - Church, Luke A1 - Hirschfeld, Robert T1 - An individual-centered approach to visualize people’s opinions and demographic information N2 - The noble way to substantiate decisions that affect many people is to ask these people for their opinions. For governments that run whole countries, this means asking all citizens for their views to consider their situations and needs. Organizations such as Africa's Voices Foundation, who want to facilitate communication between decision-makers and citizens of a country, have difficulty mediating between these groups. To enable understanding, statements need to be summarized and visualized. Accomplishing these goals in a way that does justice to the citizens' voices and situations proves challenging. Standard charts do not help this cause as they fail to create empathy for the people behind their graphical abstractions. Furthermore, these charts do not create trust in the data they are representing as there is no way to see or navigate back to the underlying code and the original data. To fulfill these functions, visualizations would highly benefit from interactions to explore the displayed data, which standard charts often only limitedly provide. To help improve the understanding of people's voices, we developed and categorized 80 ideas for new visualizations, new interactions, and better connections between different charts, which we present in this report. From those ideas, we implemented 10 prototypes and two systems that integrate different visualizations. We show that this integration allows consistent appearance and behavior of visualizations. The visualizations all share the same main concept: representing each individual with a single dot. To realize this idea, we discuss technologies that efficiently allow the rendering of a large number of these dots. With these visualizations, direct interactions with representations of individuals are achievable by clicking on them or by dragging a selection around them. This direct interaction is only possible with a bidirectional connection from the visualization to the data it displays. We discuss different strategies for bidirectional mappings and the trade-offs involved. Having unified behavior across visualizations enhances exploration. For our prototypes, that includes grouping, filtering, highlighting, and coloring of dots. Our prototyping work was enabled by the development environment Lively4. We explain which parts of Lively4 facilitated our prototyping process. Finally, we evaluate our approach to domain problems and our developed visualization concepts. Our work provides inspiration and a starting point for visualization development in this domain. Our visualizations can improve communication between citizens and their government and motivate empathetic decisions. Our approach, combining low-level entities to create visualizations, provides value to an explorative and empathetic workflow. We show that the design space for visualizing this kind of data has a lot of potential and that it is possible to combine qualitative and quantitative approaches to data analysis. N2 - Der noble Weg, Entscheidungen, die viele Menschen betreffen, zu begründen, besteht darin, diese Menschen nach ihrer Meinung zu fragen. Für Regierungen, die ganze Länder führen, bedeutet dies, alle Bürger nach ihrer Meinung zu fragen, um ihre Situationen und Bedürfnisse zu berücksichtigen. Organisationen wie die Africa's Voices Foundation, die die Kommunikation zwischen Entscheidungsträgern und Bürgern eines Landes erleichtern wollen, haben Schwierigkeiten, zwischen diesen Gruppen zu vermitteln. Um Verständnis zu ermöglichen, müssen die Aussagen zusammengefasst und visualisiert werden. Diese Ziele auf eine Weise zu erreichen, die den Stimmen und Situationen der Bürgerinnen und Bürger gerecht wird, erweist sich als Herausforderung. Standardgrafiken helfen dabei nicht weiter, da es ihnen nicht gelingt, Empathie für die Menschen hinter ihren grafischen Abstraktionen zu schaffen. Darüber hinaus schaffen diese Diagramme kein Vertrauen in die Daten, die sie darstellen, da es keine Möglichkeit gibt, den verwendeten Code und die Originaldaten zu sehen oder zu ihnen zurück zu navigieren. Um diese Funktionen zu erfüllen, würden Visualisierungen sehr von Interaktionen zur Erkundung der angezeigten Daten profitieren, die Standardgrafiken oft nur begrenzt bieten. Um das Verständnis der Stimmen der Menschen zu verbessern, haben wir 80 Ideen für neue Visualisierungen, neue Interaktionen und bessere Verbindungen zwischen verschiedenen Diagrammen entwickelt und kategorisiert, die wir in diesem Bericht vorstellen. Aus diesen Ideen haben wir 10 Prototypen und zwei Systeme implementiert, die verschiedene Visualisierungen integrieren. Wir zeigen, dass diese Integration ein einheitliches Erscheinungsbild und Verhalten der Visualisierungen ermöglicht. Die Visualisierungen haben alle das gleiche Grundkonzept: Jedes Individuum wird durch einen einzigen Punkt dargestellt. Um diese Idee zu verwirklichen, diskutieren wir Technologien, die die effiziente Darstellung einer großen Anzahl dieser Punkte ermöglichen. Mit diesen Visualisierungen sind direkte Interaktionen mit Darstellungen von Individuen möglich, indem man auf sie klickt oder eine Auswahl um sie herumzieht. Diese direkte Interaktion ist nur mit einer bidirektionalen Verbindung von der Visualisierung zu den angezeigten Daten möglich. Wir diskutieren verschiedene Strategien für bidirektionale Mappings und die damit verbundenen Kompromisse. Ein einheitliches Verhalten über Visualisierungen hinweg verbessert die Exploration. Für unsere Prototypen umfasst dies Gruppierung, Filterung, Hervorhebung und Einfärbung von Punkten. Unsere Arbeit an den Prototypen wurde durch die Entwicklungsumgebung Lively4 ermöglicht. Wir erklären, welche Teile von Lively4 unseren Prototyping-Prozess erleichtert haben. Schließlich bewerten wir unsere Herangehensweise an Domänenprobleme und die von uns entwickelten Visualisierungskonzepte. Unsere Arbeit liefert Inspiration und einen Ausgangspunkt für die Entwicklung von Visualisierungen in diesem Bereich. Unsere Visualisierungen können die Kommunikation zwischen Bürgern und ihrer Regierung verbessern und einfühlsame Entscheidungen motivieren. Unser Ansatz, bei dem wir niedrigstufige Entitäten zur Erstellung von Visualisierungen kombinieren, bietet einen wertvollen Ansatz für einen explorativen und einfühlsamen Arbeitsablauf. Wir zeigen, dass der Designraum für die Visualisierung dieser Art von Daten ein großes Potenzial hat und dass es möglich ist, qualitative und quantitative Ansätze zur Datenanalyse zu kombinieren. T3 - Technische Berichte des Hasso-Plattner-Instituts für Digital Engineering an der Universität Potsdam - 136 KW - data visualization KW - demographic information KW - visualization concept exploration KW - web-based development environment KW - Datenvisualisierung KW - demografische Informationen KW - Visualisierungskonzept-Exploration KW - web-basierte Entwicklungsumgebung Y1 - 2021 U6 - http://nbn-resolving.de/urn/resolver.pl?urn:nbn:de:kobv:517-opus4-491457 SN - 978-3-86956-504-0 SN - 1613-5652 SN - 2191-1665 IS - 136 PB - Universitätsverlag Potsdam CY - Potsdam ER - TY - BOOK A1 - Felgentreff, Tim A1 - Borning, Alan A1 - Hirschfeld, Robert T1 - Babelsberg : specifying and solving constraints on object behavior N2 - Constraints allow developers to specify desired properties of systems in a number of domains, and have those properties be maintained automatically. This results in compact, declarative code, avoiding scattered code to check and imperatively re-satisfy invariants. Despite these advantages, constraint programming is not yet widespread, with standard imperative programming still the norm. There is a long history of research on integrating constraint programming with the imperative paradigm. However, this integration typically does not unify the constructs for encapsulation and abstraction from both paradigms. This impedes re-use of modules, as client code written in one paradigm can only use modules written to support that paradigm. Modules require redundant definitions if they are to be used in both paradigms. We present a language – Babelsberg – that unifies the constructs for en- capsulation and abstraction by using only object-oriented method definitions for both declarative and imperative code. Our prototype – Babelsberg/R – is an extension to Ruby, and continues to support Ruby’s object-oriented se- mantics. It allows programmers to add constraints to existing Ruby programs in incremental steps by placing them on the results of normal object-oriented message sends. It is implemented by modifying a state-of-the-art Ruby virtual machine. The performance of standard object-oriented code without con- straints is only modestly impacted, with typically less than 10% overhead compared with the unmodified virtual machine. Furthermore, our architec- ture for adding multiple constraint solvers allows Babelsberg to deal with constraints in a variety of domains. We argue that our approach provides a useful step toward making con- straint solving a generic tool for object-oriented programmers. We also provide example applications, written in our Ruby-based implementation, which use constraints in a variety of application domains, including interactive graphics, circuit simulations, data streaming with both hard and soft constraints on performance, and configuration file Management. N2 - Constraints – Beschränkungen und Abhängigkeiten zwischen Systemteilen – erlauben es Entwicklern, erwünschte Eigenschaften von Systemen zu spezifizieren, sodass diese automatisch sichergestellt werden. Das führt zu kompaktem, deklarativem Quelltext, und vermeidet verstreute Anweisungen, die wiederholt Invarianten prüfen und wiederherstellen müssen. Trotz dieser Vorteile ist Programmieren mit Constraints nicht verbreitet, sondern imperatives Programmieren die Norm. Es gibt eine lange Forschungsgeschichte zur Integration von Constraints mit imperativem Programmieren. Jedoch vereinheitlicht diese Integration nicht die Programmierkonstrukte zur Abstraktion und Kapselung beider Paradigmen. Das verhindert die Wiederverwendung von Modulen, da Quelltext, der in einem Paradigma geschrieben wurde, nur Module verwenden kann, die so geschrieben sind, dass sie dieses Paradigma unterstützen. Module benötigen daher redundante Definitionen, wenn sie in beiden Paradigmen zur Verfügung stehen sollen. Wir präsentieren hier eine Sprache – Babelsberg – welche die Konstrukte zur Abstraktion und Kapselung vereinheitlicht, indem sie bekannte objektorientierte Methodendefinitionen sowohl für deklarativen, als auch für imperativen Code verwendet. Unser Prototyp –Babelsberg/R – ist eine Erweiterung von Ruby, und unterstützt Rubys objektorientierte Semantik. Dieser erlaubt es Programmieren, Constraints schrittweise zu existierenden Ruby Programmen hinzuzufügen, indem diese auf den Ergebnissen von Methodenaufrufen deklariert werden. Der Prototyp ist auf Basis einer virtuellen Maschine für Ruby implementiert, wobei die Ausführungsgeschwindigkeit von objektorienterten Programmteilen ohne Constraints nur minimal – typischerweise weniger als 10% – beeinträchtigt wird. Weiterhin erlaubt es unsere Architektur, je nach Anwendungsfall, mehrere Lösungsalgorithmen für Constraints zu verwenden. Wir argumentieren, dass unser Ansatz einen nützlichen Schritt darstellt, um Programmieren mit Constraints zu einem allgemeinen Werkzeug für objektorientierte Programmierer zu machen. Wir zeigen Beispielanwendungen, die unserer Ruby-basierten Implementierung geschrieben sind, welche Constraints in einer Reihe von Anwendungen verwenden: Für interaktive Grafik, Schaltkreissimulation, Datenströme mit sowohl harten, als auch weichen Constraints bezüglich ihrer Geschwindigkeit, und Konfigurationsverwaltung. T3 - Technische Berichte des Hasso-Plattner-Instituts für Digital Engineering an der Universität Potsdam - 81 KW - Constraints KW - Beschränkungen und Abhängigkeiten KW - Objekt-orientiertes Programmieren mit Constraints KW - Constraints KW - Object Constraint Programming Y1 - 2013 U6 - http://nbn-resolving.de/urn/resolver.pl?urn:nbn:de:kobv:517-opus-67296 SN - 978-3-86956-265-0 PB - Universitätsverlag Potsdam CY - Potsdam ER - TY - BOOK A1 - Felgentreff, Tim A1 - Hirschfeld, Robert A1 - Millstein, Todd A1 - Borning, Alan T1 - Babelsberg/RML BT - executable semantics and language testing with RML N2 - New programming language designs are often evaluated on concrete implementations. However, in order to draw conclusions about the language design from the evaluation of concrete programming languages, these implementations need to be verified against the formalism of the design. To that end, we also have to ensure that the design actually meets its stated goals. A useful tool for the latter has been to create an executable semantics from a formalism that can execute a test suite of examples. However, this mechanism so far did not allow to verify an implementation against the design. Babelsberg is a new design for a family of object-constraint languages. Recently, we have developed a formal semantics to clarify some issues in the design of those languages. Supplementing this work, we report here on how this formalism is turned into an executable operational semantics using the RML system. Furthermore, we show how we extended the executable semantics to create a framework that can generate test suites for the concrete Babelsberg implementations that provide traceability from the design to the language. Finally, we discuss how these test suites helped us find and correct mistakes in the Babelsberg implementation for JavaScript. N2 - Neue Programmiersprachdesigns werden typischerweise anhand konkreter Implementierungen bewertet. Um jedoch Schlüsse aus den Erfahrungen mit einer konkreten Programmiersprache auf ein Sprachdesign ziehen zu können, muss die konkrete Sprache verifizierbar dem Design entsprechen. Zudem muss sichergestellt sein, dass das formale Design seine gesetzten Ziele auch erfüllt. Dabei haben sich ausführbare Semantiken als ein nützliches Werkzeug erwiesen, um letzteres sicherzustellen. Allerdings half dieses Werkzeug bisher nicht, auch die konkrete Implementierung gegen das Design zu verifizieren. Babelsberg ist ein neues Design für eine Familie von Objekt-Constraint Programmiersprachen, zu der wir eine formale Semantik entwickelt haben, die einige Details des Designs klarstellt. Ergänzend dazu berichten wir hier, wie dieser Formalismus in eine ausführbare Semantik mithilfe des RML Systems umgewandelt werden kann. Weiterhin zeigen wir, wie wir diese ausführbare Semantik um ein Rahmenwerk erweitert haben, mit dem sich programmatische Tests für die konkreten Babelsberg Implementierungen erzeugen lassen, welche Rückverfolgbarkeit von der Sprachimplementierung zum Sprachdesign sicherstellen. Schlussendlich diskutieren wir, wie diese Tests uns erlaubten, Fehler in der Babelsberg Implementierung für JavaScript zu finden und zu beheben. T3 - Technische Berichte des Hasso-Plattner-Instituts für Digital Engineering an der Universität Potsdam - 103 KW - object-constraint programming KW - executable semantics KW - language specification KW - Objekt-Constraint Programmierung KW - ausführbare Semantiken KW - Sprachspezifikation Y1 - 2015 U6 - http://nbn-resolving.de/urn/resolver.pl?urn:nbn:de:kobv:517-opus4-83826 SN - 978-3-86956-348-0 SN - 1613-5652 SN - 2191-1665 IS - 103 PB - Universitätsverlag Potsdam CY - Potsdam 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 - Herbst, Eva‐Maria A1 - Maschler, Fabian A1 - Niephaus, Fabio A1 - Reimann, Max A1 - Steier, Julia A1 - Felgentreff, Tim A1 - Lincke, Jens A1 - Taeumel, Marcel A1 - Hirschfeld, Robert A1 - Witt, Carsten T1 - ecoControl T1 - ecoControl BT - Entwurf und Implementierung einer Software zur Optimierung heterogener Energiesysteme in Mehrfamilienhäusern BT - design and implementation of a prototype for optimizing heterogeneous energy systems in multi‐family residential buildings N2 - Eine dezentrale Energieversorgung ist ein erster Schritt in Richtung Energiewende. Dabei werden auch in Mehrfamilienhäusern vermehrt verschiedene Strom- und Wärmeerzeuger eingesetzt. Besonders in Deutschland kommen in diesem Zusammenhang Blockheizkraftwerke immer häufiger zum Einsatz, weil sie Gas sehr effizient in Strom und Wärme umwandeln können. Außerdem ermöglichen sie, im Zusammenspiel mit anderen Energiesystemen wie beispielsweise Photovoltaik-Anlagen, eine kontinuierliche und dezentrale Energieversorgung. Bei dem Betrieb von unterschiedlichen Energiesystemen ist es wünschenswert, dass die Systeme aufeinander abgestimmt arbeiten. Allerdings ist es bisher schwierig, heterogene Energiesysteme effizient miteinander zu betreiben. Dadurch bleiben Einsparungspotentiale ungenutzt. Eine zentrale Steuerung kann deshalb die Effizienz des Gesamtsystems verbessern. Mit ecoControl stellen wir einen erweiterbaren Prototypen vor, der die Kooperation von Energiesystemen optimiert und Umweltfaktoren miteinbezieht. Dazu stellt die Software eine einheitliche Bedienungsoberfläche zur Konfiguration aller Systeme zur Verfügung. Außerdem bietet sie die Möglichkeit, Optimierungsalgorithmen mit Hilfe einer Programmierschnittstelle zu entwickeln, zu testen und auszuführen. Innerhalb solcher Algorithmen können von ecoControl bereitgestellte Vorhersagen genutzt werden. Diese Vorhersagen basieren auf dem individuellen Verhalten von jedem Energiesystem, Wettervorhersagen und auf Prognosen des Energieverbrauchs. Mithilfe einer Simulation können Techniker unterschiedliche Konfigurationen und Optimierungen sofort ausprobieren, ohne diese über einen langen Zeitraum an realen Geräten testen zu müssen. ecoControl hilft darüber hinaus auch Hausverwaltungen und Vermietern bei der Verwaltung und Analyse der Energiekosten. Wir haben anhand von Fallbeispielen gezeigt, dass Optimierungsalgorithmen, welche die Nutzung von Wärmespeichern verbessern, die Effizienz des Gesamtsystems erheblich verbessern können. Schließlich kommen wir zu dem Schluss, dass ecoControl in einem nächsten Schritt unter echten Bedingungen getestet werden muss, sobald eine geeignete Hardwarekomponente verfügbar ist. Über diese Schnittstelle werden die Messwerte an ecoControl gesendet und Steuersignale an die Geräte weitergeleitet. N2 - The energy turnaround in Germany affects not only big industries but also smaller advocates who are interested in cost-efficient and regenerative energy supply. The observable signs of decentralized supply indicate that many individuals are eager to employ affordable energy devices, such as solar power systems, by themselves. Owners or managers of multi-family residential buildings, for example, install heterogeneous sets of devices that have to satisfy the varying demands of tenants. These devices are primarily influenced by environmental factors such as the weather. Independently, on-site cogeneration units are increasingly used to produce both electrical and thermal energy in a dependable and decentralized way. While having an arguably good efficiency on their own, such energy systems, however, are not built to cooperate in an heterogeneous installation. Hence they can negatively affect overall costs or impair the optimal ecological energy usage. We propose a centralized, extensible control platform that supports low-effort integration and efficient cooperation of heterogeneous energy production and storage units. Our prototype ecoControl shows that such a software system can be used to optimize the communication protocol of energy devices in multi-family residential buildings. In addition a simulation of the devices and forecasts of both energy supply and demand facilitate an advanced configuration of the system to enable an optimal drive. An intuitive user interface supports technicians, managers or owners to monitor and adjust the operation of installed devices to accommodate given conditions - even if not anticipated by the manufacturer. In several example cases, we illustrate how optimization algorithms can improve the use of heat storages to increase overall efficiency by a significant factor. Although further investigations with representative settings are needed, we argue that ecoControl can contribute to Germany's energy turnaround by projecting a novel perspective on the application of interdependent energy production and storage units. T3 - Technische Berichte des Hasso-Plattner-Instituts für Digital Engineering an der Universität Potsdam - 93 KW - Energiesparen KW - Prognosen KW - Effizienz KW - Optimierungen KW - Algorithmen KW - Blockheizkraftwerke KW - Mehrfamilienhäuser KW - energy savings KW - forecasts KW - efficiency KW - optimizations KW - algorithms KW - cogeneration units KW - multi-­family residential buildings Y1 - 2015 U6 - http://nbn-resolving.de/urn/resolver.pl?urn:nbn:de:kobv:517-opus4-72147 SN - 978-3-86956-318-3 SN - 1613-5652 SN - 2191-1665 IS - 93 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 - 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 - BOOK A1 - Tessenow, Philipp A1 - Felgentreff, Tim A1 - Bracha, Gilad A1 - Hirschfeld, Robert T1 - Extending a dynamic programming language and runtime environment with access control T1 - Verbesserung gehosteter Dienste für kontinuierliche Integration N2 - Complexity in software systems is a major factor driving development and maintenance costs. To master this complexity, software is divided into modules that can be developed and tested separately. In order to support this separation of modules, each module should provide a clean and concise public interface. Therefore, the ability to selectively hide functionality using access control is an important feature in a programming language intended for complex software systems. Software systems are increasingly distributed, adding not only to their inherent complexity, but also presenting security challenges. The object-capability approach addresses these challenges by defining language properties providing only minimal capabilities to objects. One programming language that is based on the object-capability approach is Newspeak, a dynamic programming language designed for modularity and security. The Newspeak specification describes access control as one of Newspeak’s properties, because it is a requirement for the object-capability approach. However, access control, as defined in the Newspeak specification, is currently not enforced in its implementation. This work introduces an access control implementation for Newspeak, enabling the security of object-capabilities and enhancing modularity. We describe our implementation of access control for Newspeak. We adapted the runtime environment, the reflective system, the compiler toolchain, and the virtual machine. Finally, we describe a migration strategy for the existing Newspeak code base, so that our access control implementation can be integrated with minimal effort. N2 - Die Komplexität von Softwaresystemen hat einen hohen Einfluss auf Entwicklungs- und Wartungskosten. Um diese Komplexität zu beherschen, werden Softwaresysteme in Module unterteilt, da diese getrennt leichter zu entwickeln und zu testen sind. Zur Unterstützung einer sauberen Aufteilung von Modulen, sollten sie minimale und klar definierte Schnittstellen haben. Dafür ist die Fähigkeit, mit Hilfe der Berechtigungskontrolle selektiv die Sichtbarkeit von Funktionen eines Modules einzuschränken, von zentraler Bedeutung. Softwaresysteme sind immer stärker verteilt, was nicht nur zu ihrer Komplexität beiträgt, sondern auch Herausforderungen bezüglich der Sicherheit mit sich bringt. Der Object-Capability-Ansatz löst genau jene Sicherheitsprobleme, da dadurch Programmobjekten nur die minimal erforderlichen Fähigkeiten gegeben werden. Für diesen Ansatz ist es essentiell, dass die öffentliche Schnittstelle eines Objektes durch Berechtigungskontrolle eingeschränkt werden kann. Auf dem Object-Capability-Ansatz basiert Newspeak, eine moderne und dynamische Programmiersprache, die besonders auf Sicherheit sowie Modularität Wert legt. Die Berechtigungskontrolle ist eine zentrale Funktion, sowohl für die Modularität, als auch für die Sicherheit von Newspeak. Daher ist sie auch in der Spezifikation von Newspeak definiert. Bisher gibt es allerdings keine Implementierung, die die Berechtigungskontrolle durchsetzt. In dieser Arbeit stellen wir eine Implementierung der Berechtigungskontrolle für Newspeak vor. Damit wird sowohl die Modularität von Newspeak Programmen verbessert, als auch die Sicherheit durch den Object-Capability-Ansatz erst ermöglicht. Wir beschreiben eine Implementierung der Berechtigungskontrolle für Newspeak und passen dabei die Laufzeitumgebung, die Reflexions- und Introspektionsmodule, den Compiler sowie die virtuelle Maschine an. Große Teile des Newspeak-Programmcodes müssen für die Benutzung der Berechtigungskontrolle angepasst werden. Durch eine Migration des Newspeak-Programmcodes wird es möglich, unsere Implementierung mit existierenden Newspeak-Programmen zu benutzen. T3 - Technische Berichte des Hasso-Plattner-Instituts für Digital Engineering an der Universität Potsdam - 107 KW - access control KW - virtual machines KW - Newspeak KW - dynamic programming languages KW - Zugriffskontrolle KW - virtuelle Maschinen KW - Newspeak KW - dynamische Programmiersprachen Y1 - 2016 U6 - http://nbn-resolving.de/urn/resolver.pl?urn:nbn:de:kobv:517-opus4-92560 SN - 978-3-86956-373-2 SN - 1613-5652 SN - 2191-1665 IS - 107 PB - Universitätsverlag Potsdam CY - Potsdam ER - TY - BOOK A1 - Pape, Tobias A1 - Treffer, Arian A1 - Hirschfeld, Robert A1 - Haupt, Michael T1 - Extending a Java Virtual Machine to Dynamic Object-oriented Languages N2 - There are two common approaches to implement a virtual machine (VM) for a dynamic object-oriented language. On the one hand, it can be implemented in a C-like language for best performance and maximum control over the resulting executable. On the other hand, it can be implemented in a language such as Java that allows for higher-level abstractions. These abstractions, such as proper object-oriented modularization, automatic memory management, or interfaces, are missing in C-like languages but they can simplify the implementation of prevalent but complex concepts in VMs, such as garbage collectors (GCs) or just-in-time compilers (JITs). Yet, the implementation of a dynamic object-oriented language in Java eventually results in two VMs on top of each other (double stack), which impedes performance. For statically typed languages, the Maxine VM solves this problem; it is written in Java but can be executed without a Java virtual machine (JVM). However, it is currently not possible to execute dynamic object-oriented languages in Maxine. This work presents an approach to bringing object models and execution models of dynamic object-oriented languages to the Maxine VM and the application of this approach to Squeak/Smalltalk. The representation of objects in and the execution of dynamic object-oriented languages pose certain challenges to the Maxine VM that lacks certain variation points necessary to enable an effortless and straightforward implementation of dynamic object-oriented languages' execution models. The implementation of Squeak/Smalltalk in Maxine as a feasibility study is to unveil such missing variation points. N2 - Es gibt zwei übliche Wege, um eine virtuelle Maschine (VM) für eine dynamische objektorientierte Programmiersprache zu implementieren. Einerseits kann sie in einer C-ähnlichen Programmiersprache geschrieben werden, um bestmögliche Leistung zu erzielen und größtmöglichen Einfluss auf das sich ergebende ausführbare Programm zu haben. Andererseits kann sie in einer Sprache wie Java geschrieben werden, die weitreichendere Abstraktionen als die C-ähnlichen Sprachen erlaubt. Diese Abstraktionen, beispielsweise echte objektorientierte Modularisierung, automatische Speicherverwaltung oder explizite Schnittstellen, erlauben eine vereinfachtes Implementieren von VM-typischen, aber komplexen Konzepten, wie Speicherbereinigung (garbage collector, GCs) oder just-in-time-Compilern (JITs). Wird eine dynamische objektorientierte Programmiersprache in Java geschrieben, ist jedoch mit Leistungseinbußen zu rechen, da effektiv zwei aufeinander aufbauende virtuelle Maschinen entstehen. Die Maxine VM löst diese Problem für statisch getypte Programmiersprachen; sie ist in Java geschrieben, kann aber ohne jegliche Java VM (JVM) laufen. Es ist jedoch momentan nicht möglich, dynamische objektorientierte Programmiersprachen in Maxine auszuführen. Diese Arbeit stellt einen Ansatz zur Umsetzung von Objekt- und Ausführungsmodellen dynamischer objektorientierter Programmiersprachen innerhalb der Maxine VM vor, sowie dessen Anwendung auf Squeak/Smalltalk. Dabei stellt die Representation von Objekten und die Ausführung dynamischer objektorientierter Programmiersprachen bestimmte Heraus- und Anforderungen an die Maxine VM, die trotz des Fokus auf Modularität und Konfigurierbarkeit einige Variationspunkte vermissen lässt, welche wiederum für eine einfache Implementierung von besagten Ausführungsmodellen jedoch unerlässlich sind. Daher sollen durch eine testweise Implementierung von Squeak/Smalltalk in Maxine eben jene Variationspunkte identifiziert werden. T3 - Technische Berichte des Hasso-Plattner-Instituts für Digital Engineering an der Universität Potsdam - 82 Y1 - 2013 U6 - http://nbn-resolving.de/urn/resolver.pl?urn:nbn:de:kobv:517-opus-67438 SN - 978-3-86956-266-7 PB - Universitätsverlag Potsdam CY - Potsdam ER -