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...

Ausführliche Beschreibung

Gespeichert in:
Bibliographische Detailangaben
Hauptverfasser: Zaeem, Razieh Nokhbeh, Khurshid, Sarfraz
Format: Tagungsbericht
Sprache:eng
Online-Zugang:Volltext
Tags: Tag hinzufügen
Keine Tags, Fügen Sie den ersten Tag hinzu!
container_end_page 598
container_issue
container_start_page 577
container_title
container_volume
creator Zaeem, Razieh Nokhbeh
Khurshid, Sarfraz
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. This paper presents a contract-based approach for data structure repair, which allows repairing erroneous executions in deployed software by repairing erroneous states. The key novelty is the support for rich behavioral specifications, such as those that relate pre-states with post-states of the method to accurately specify expected behavior and hence to enable precise repair. The approach is based on the view of a specification as a nondeterministic implementation, which may permit a high degree of non-determinism. The key insight is to use any correct state mutations by an otherwise erroneous execution to prune the 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. Experiments using complex specifications show the approach holds much promise in increasing software reliability.
doi_str_mv 10.5555/1883978.1884016
format Conference Proceeding
fullrecord <record><control><sourceid>acm</sourceid><recordid>TN_cdi_acm_books_10_5555_1883978_1884016_brief</recordid><sourceformat>XML</sourceformat><sourcesystem>PC</sourcesystem><sourcerecordid>acm_books_10_5555_1883978_1884016</sourcerecordid><originalsourceid>FETCH-LOGICAL-a157t-70ed0fe6226ce7be7214b187bb75fa49046cbe24ef0f0ddf70cda7e79388a2f23</originalsourceid><addsrcrecordid>eNqNj7tOxDAURC0hJNCSmjYlTcL1I7ZTooiXtNI2UFvXLxQIG2Q7BX-PEfsBTDOaYkZzCLmm0A9Vt1RrPirdVxdA5RlpauJSMCooyOGCNDm_Q5UQUnB2SWBajyWhK53FHHzrsWCbS9pc2VJoU_jCObVbno9vLS7L-n1FziMuOTQn35HXh_uX6anbHx6fp7t9h3RQpVMQPMQgGZMuKBtUfWCpVtaqIaIYQUhnAxMhQgTvowLnUQU1cq2RRcZ3pP_bRfdp7Lp-ZEPB_EKaE6Q5QRqb5hBr4eafBf4DJulS0g</addsrcrecordid><sourcetype>Publisher</sourcetype><iscdi>true</iscdi><recordtype>conference_proceeding</recordtype></control><display><type>conference_proceeding</type><title>Contract-based data structure repair using alloy</title><source>Springer Books</source><creator>Zaeem, Razieh Nokhbeh ; Khurshid, Sarfraz</creator><contributor>D'Hondt, Theo</contributor><creatorcontrib>Zaeem, Razieh Nokhbeh ; Khurshid, Sarfraz ; D'Hondt, Theo</creatorcontrib><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. This paper presents a contract-based approach for data structure repair, which allows repairing erroneous executions in deployed software by repairing erroneous states. The key novelty is the support for rich behavioral specifications, such as those that relate pre-states with post-states of the method to accurately specify expected behavior and hence to enable precise repair. The approach is based on the view of a specification as a nondeterministic implementation, which may permit a high degree of non-determinism. The key insight is to use any correct state mutations by an otherwise erroneous execution to prune the 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. Experiments using complex specifications show the approach holds much promise in increasing software reliability.</description><identifier>ISBN: 9783642141065</identifier><identifier>ISBN: 3642141064</identifier><identifier>DOI: 10.5555/1883978.1884016</identifier><language>eng</language><publisher>Berlin, Heidelberg: Springer-Verlag</publisher><ispartof>Proceedings of the 24th European conference on Object-oriented programming, 2010, p.577-598</ispartof><lds50>peer_reviewed</lds50><woscitedreferencessubscribed>false</woscitedreferencessubscribed></display><links><openurl>$$Topenurl_article</openurl><openurlfulltext>$$Topenurlfull_article</openurlfulltext><thumbnail>$$Tsyndetics_thumb_exl</thumbnail><link.rule.ids>309,310,780,784,789,790,27925</link.rule.ids></links><search><contributor>D'Hondt, Theo</contributor><creatorcontrib>Zaeem, Razieh Nokhbeh</creatorcontrib><creatorcontrib>Khurshid, Sarfraz</creatorcontrib><title>Contract-based data structure repair using alloy</title><title>Proceedings of the 24th European conference on Object-oriented programming</title><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. This paper presents a contract-based approach for data structure repair, which allows repairing erroneous executions in deployed software by repairing erroneous states. The key novelty is the support for rich behavioral specifications, such as those that relate pre-states with post-states of the method to accurately specify expected behavior and hence to enable precise repair. The approach is based on the view of a specification as a nondeterministic implementation, which may permit a high degree of non-determinism. The key insight is to use any correct state mutations by an otherwise erroneous execution to prune the 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. Experiments using complex specifications show the approach holds much promise in increasing software reliability.</description><isbn>9783642141065</isbn><isbn>3642141064</isbn><fulltext>true</fulltext><rsrctype>conference_proceeding</rsrctype><creationdate>2010</creationdate><recordtype>conference_proceeding</recordtype><sourceid/><recordid>eNqNj7tOxDAURC0hJNCSmjYlTcL1I7ZTooiXtNI2UFvXLxQIG2Q7BX-PEfsBTDOaYkZzCLmm0A9Vt1RrPirdVxdA5RlpauJSMCooyOGCNDm_Q5UQUnB2SWBajyWhK53FHHzrsWCbS9pc2VJoU_jCObVbno9vLS7L-n1FziMuOTQn35HXh_uX6anbHx6fp7t9h3RQpVMQPMQgGZMuKBtUfWCpVtaqIaIYQUhnAxMhQgTvowLnUQU1cq2RRcZ3pP_bRfdp7Lp-ZEPB_EKaE6Q5QRqb5hBr4eafBf4DJulS0g</recordid><startdate>20100621</startdate><enddate>20100621</enddate><creator>Zaeem, Razieh Nokhbeh</creator><creator>Khurshid, Sarfraz</creator><general>Springer-Verlag</general><scope/></search><sort><creationdate>20100621</creationdate><title>Contract-based data structure repair using alloy</title><author>Zaeem, Razieh Nokhbeh ; Khurshid, Sarfraz</author></sort><facets><frbrtype>5</frbrtype><frbrgroupid>cdi_FETCH-LOGICAL-a157t-70ed0fe6226ce7be7214b187bb75fa49046cbe24ef0f0ddf70cda7e79388a2f23</frbrgroupid><rsrctype>conference_proceedings</rsrctype><prefilter>conference_proceedings</prefilter><language>eng</language><creationdate>2010</creationdate><toplevel>peer_reviewed</toplevel><toplevel>online_resources</toplevel><creatorcontrib>Zaeem, Razieh Nokhbeh</creatorcontrib><creatorcontrib>Khurshid, Sarfraz</creatorcontrib></facets><delivery><delcategory>Remote Search Resource</delcategory><fulltext>fulltext</fulltext></delivery><addata><au>Zaeem, Razieh Nokhbeh</au><au>Khurshid, Sarfraz</au><au>D'Hondt, Theo</au><format>book</format><genre>proceeding</genre><ristype>CONF</ristype><atitle>Contract-based data structure repair using alloy</atitle><btitle>Proceedings of the 24th European conference on Object-oriented programming</btitle><date>2010-06-21</date><risdate>2010</risdate><spage>577</spage><epage>598</epage><pages>577-598</pages><isbn>9783642141065</isbn><isbn>3642141064</isbn><abstract>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. This paper presents a contract-based approach for data structure repair, which allows repairing erroneous executions in deployed software by repairing erroneous states. The key novelty is the support for rich behavioral specifications, such as those that relate pre-states with post-states of the method to accurately specify expected behavior and hence to enable precise repair. The approach is based on the view of a specification as a nondeterministic implementation, which may permit a high degree of non-determinism. The key insight is to use any correct state mutations by an otherwise erroneous execution to prune the 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. Experiments using complex specifications show the approach holds much promise in increasing software reliability.</abstract><cop>Berlin, Heidelberg</cop><pub>Springer-Verlag</pub><doi>10.5555/1883978.1884016</doi><tpages>22</tpages></addata></record>
fulltext fulltext
identifier ISBN: 9783642141065
ispartof Proceedings of the 24th European conference on Object-oriented programming, 2010, p.577-598
issn
language eng
recordid cdi_acm_books_10_5555_1883978_1884016_brief
source Springer Books
title Contract-based data structure repair using alloy
url https://sfx.bib-bvb.de/sfx_tum?ctx_ver=Z39.88-2004&ctx_enc=info:ofi/enc:UTF-8&ctx_tim=2024-12-27T19%3A12%3A40IST&url_ver=Z39.88-2004&url_ctx_fmt=infofi/fmt:kev:mtx:ctx&rfr_id=info:sid/primo.exlibrisgroup.com:primo3-Article-acm&rft_val_fmt=info:ofi/fmt:kev:mtx:book&rft.genre=proceeding&rft.atitle=Contract-based%20data%20structure%20repair%20using%20alloy&rft.btitle=Proceedings%20of%20the%2024th%20European%20conference%20on%20Object-oriented%20programming&rft.au=Zaeem,%20Razieh%20Nokhbeh&rft.date=2010-06-21&rft.spage=577&rft.epage=598&rft.pages=577-598&rft.isbn=9783642141065&rft.isbn_list=3642141064&rft_id=info:doi/10.5555/1883978.1884016&rft_dat=%3Cacm%3Eacm_books_10_5555_1883978_1884016%3C/acm%3E%3Curl%3E%3C/url%3E&disable_directlink=true&sfx.directlink=off&sfx.report_link=0&rft_id=info:oai/&rft_id=info:pmid/&rfr_iscdi=true