Chapter

Design Thinking Research

Part of the series Understanding Innovation pp 235-264

Preserving Access to Previous System States in the Lively Kernel

  • Lauritz ThamsenAffiliated withSoftware Architecture Group, Hasso Plattner Institute, University of Potsdam
  • , Bastian SteinertAffiliated withSoftware Architecture Group, Hasso Plattner Institute, University of Potsdam
  • , Robert HirschfeldAffiliated withSoftware Architecture Group, Hasso Plattner Institute, University of Potsdam Email author 

* Final gross prices may vary according to local VAT.

Get Access

Abstract

In programming systems such as the Lively Kernel, programmers construct applications from objects. Dedicated tools make it possible to manipulate the state and behavior of objects at runtime. Programmers are encouraged to make changes directly and receive immediate feedback on their actions. However, when programmers make mistakes in such programming systems, they need to undo the effects of their actions. Programmers either have to edit objects manually or reload parts of their applications. Moreover, changes can spread across many objects. As a result, recovering previous states is often error-prone and time-consuming. This report presents an approach to object versioning for systems like the Lively Kernel. Access to previous versions of objects is preserved using version-aware references. These references can be resolved to multiple versions of objects and, thereby, allow reestablishing preserved states of the system. We present a design based on proxies and an implementation in JavaScript.