Contract-based data structure repair using alloy

Contracts and specifications have long been used in object-oriented design, programming and testing to enhance reliability before software deployment. However, the use of specifications in deployed software is commonly limited to runtime checking where assertions form a basis for detecting incorrect...

Full description

Bibliographic Details
Main Author: Nokhbeh Zaeem, Razieh
Format: Others
Language:English
Published: 2010
Subjects:
Online Access:http://hdl.handle.net/2152/ETD-UT-2010-05-1055
id ndltd-UTEXAS-oai-repositories.lib.utexas.edu-2152-ETD-UT-2010-05-1055
record_format oai_dc
spelling ndltd-UTEXAS-oai-repositories.lib.utexas.edu-2152-ETD-UT-2010-05-10552015-09-20T16:55:20ZContract-based data structure repair using alloyNokhbeh Zaeem, RaziehData structure repairProgramming by contractSpecificationsAlloyContracts and specifications have long been used in object-oriented design, programming and testing to enhance reliability before software deployment. However, the use of specifications in deployed software is commonly limited to runtime checking where assertions form a basis for detecting incorrect program states to terminate the erroneous executions. We present a contract-based approach for data structure repair, which repairs erroneous states in deployed software. The key novelty is the support for rich behavioral specifications, such as those that relate pre-states with post-states of a method to accurately specify expected behavior and precise repair. The approach is based on the view of a specification as a non-deterministic implementation. The key insight is to use any correct state mutations by an otherwise erroneous execution to prune non-determinism in the specification, thereby transmuting the specification to an implementation that does not incur a prohibitively high performance penalty. While invariants, pre-conditions and post-conditions could be provided in different modeling languages, we leverage the Alloy tool-set, specifically the Alloy language and the Alloy Analyzer for systematically repairing erroneous states. Four different algorithms are presented and implemented in our data structure repair framework. These algorithms can repair a medium sized erroneous data structure in a few seconds. We introduce repair guide annotations defined by the user to improve the accuracy and performance of the repair mechanism. Experiments using complex specifications show the approach holds much promise in increasing software reliability.text2010-10-25T15:46:20Z2010-10-25T15:46:25Z2010-10-25T15:46:20Z2010-10-25T15:46:25Z2010-052010-10-25May 20102010-10-25T15:46:25Zthesisapplication/pdfhttp://hdl.handle.net/2152/ETD-UT-2010-05-1055eng
collection NDLTD
language English
format Others
sources NDLTD
topic Data structure repair
Programming by contract
Specifications
Alloy
spellingShingle Data structure repair
Programming by contract
Specifications
Alloy
Nokhbeh Zaeem, Razieh
Contract-based data structure repair using alloy
description Contracts and specifications have long been used in object-oriented design, programming and testing to enhance reliability before software deployment. However, the use of specifications in deployed software is commonly limited to runtime checking where assertions form a basis for detecting incorrect program states to terminate the erroneous executions. We present a contract-based approach for data structure repair, which repairs erroneous states in deployed software. The key novelty is the support for rich behavioral specifications, such as those that relate pre-states with post-states of a method to accurately specify expected behavior and precise repair. The approach is based on the view of a specification as a non-deterministic implementation. The key insight is to use any correct state mutations by an otherwise erroneous execution to prune non-determinism in the specification, thereby transmuting the specification to an implementation that does not incur a prohibitively high performance penalty. While invariants, pre-conditions and post-conditions could be provided in different modeling languages, we leverage the Alloy tool-set, specifically the Alloy language and the Alloy Analyzer for systematically repairing erroneous states. Four different algorithms are presented and implemented in our data structure repair framework. These algorithms can repair a medium sized erroneous data structure in a few seconds. We introduce repair guide annotations defined by the user to improve the accuracy and performance of the repair mechanism. Experiments using complex specifications show the approach holds much promise in increasing software reliability. === text
author Nokhbeh Zaeem, Razieh
author_facet Nokhbeh Zaeem, Razieh
author_sort Nokhbeh Zaeem, Razieh
title Contract-based data structure repair using alloy
title_short Contract-based data structure repair using alloy
title_full Contract-based data structure repair using alloy
title_fullStr Contract-based data structure repair using alloy
title_full_unstemmed Contract-based data structure repair using alloy
title_sort contract-based data structure repair using alloy
publishDate 2010
url http://hdl.handle.net/2152/ETD-UT-2010-05-1055
work_keys_str_mv AT nokhbehzaeemrazieh contractbaseddatastructurerepairusingalloy
_version_ 1716820960463552512