Back to results

Universität Potsdam

Built-in recovery support for explorative programming

Abstract

dc:description.abstract

This work introduces concepts and corresponding tool support to enable a complementary approach in dealing with recovery. Programmers need to recover a development state, or a part thereof, when previously made changes reveal undesired implications. However, when the need arises suddenly and unexpectedly, recovery often involves expensive and tedious work. To avoid tedious work, literature recommends keeping away from unexpected recovery demands by following a structured and disciplined approach, which consists of the application of various best practices including working only on one thing at a time, performing small steps, as well as making proper use of versioning and testing tools. However, the attempt to avoid unexpected recovery is both time-consuming and error-prone. On the one hand, it requires disproportionate effort to minimize the risk of unexpected situations. On the other hand, applying recommended practices selectively, which saves time, can hardly avoid recovery. In addition, the constant need for foresight and self-control has unfavorable implications. It is exhaustive and impedes creative problem solving. This work proposes to make recovery fast and easy and introduces corresponding support called CoExist. Such dedicated support turns situations of unanticipated recovery from tedious experiences into pleasant ones. It makes recovery fast and easy to accomplish, even if explicit commits are unavailable or tests have been ignored for some time. When mistakes and unexpected insights are no longer associated with tedious corrective actions, programmers are encouraged to change source code as a means to reason about it, as opposed to making changes only after structuring and evaluating them mentally. This work further reports on an implementation of the proposed tool support in the Squeak/Smalltalk development environment. The development of the tools has been accompanied by regular performance and usability tests. In addition, this work investigates whether the proposed tools affect programmers’ performance. In a controlled lab study, 22 participants improved the design of two different applications. Using a repeated measurement setup, the study examined the effect of providing CoExist on programming performance. The result of analyzing 88 hours of programming suggests that built-in recovery support as provided with CoExist positively has a positive effect on programming performance in explorative programming tasks.

Degree

thesis:*
Level thesis:degree_level
thesis.doctoral
Grantor dc:publisher
Universität Potsdam
Year
2014

Author and committee

dc:creator, dc:contributor.*
Author dc:creator
  • Steinert, Bastian
Contributors dc:contributor
  • Hirschfeld, Robert

Subjects

dc:subject × 8

Rights

dc:rights
Statement dc:rights
  • CC-BY-NC-ND - Namensnennung, nicht kommerziell, keine Bearbeitungen 4.0 International

Identifiers

dc:identifier.*
OAI identifier oai:identifier
oai:kobv.de-opus4-uni-potsdam:6891

Chain of custody

source
Harvested from
Universität Potsdam - Diss
Base URL
publishup.uni-potsdam.de/opus4-ubp/oai
Last updated
2026-07-24
Source record
OAI-PMH GetRecord
citation

Steinert, Bastian. Built-in recovery support for explorative programming. thesis.doctoral thesis, Universität Potsdam, 2014. https://publishup.uni-potsdam.de/frontdoor/index/index/docId/6891