arrow
返回

Software Change Contracts

delete2015-05-13
delete8
delete
OA
AI
J
Jooyong Yi
D
Dawei Qi
S
Shin Hwei Tan
A
Abhik Roychoudhury *
DOI:10.1145/2729973delete
delete原文链接
delete分享
delete收藏
查看原文
摘要

摘要

En 中文
Software errors often originate from incorrect changes, including incorrect program fixes, incorrect feature updates, and so on. Capturing the intended program behavior explicitly via contracts is thus an attractive proposition. In our recent work, we had espoused the notion of change contracts to express the intended program behavior changes across program versions. Change contracts differ from program contracts in that they do not require the programmer to describe the intended behavior of those program features which are unchanged across program versions. In this work, we present the formal semantics of our change contract language built on top of the Java modeling language (JML). Our change contract language can describe behavioral as well as structural changes. We evaluate the expressivity of the change contract language via a survey given to final-year undergraduate students. The survey results enable to understand the usability of our change contract language for purposes of writing contracts, comprehending written contracts, and modifying programs according to given change contracts. Finally, we develop both dynamic and static checkers for change contracts, and show how they can be used in maintaining software changes. We use our dynamic checker to automatically suggest tests that manifest violations of change contracts. Meanwhile, we use our static checker to verify that a program is changed as specified in its change contract. Apart from verification, our static checker also performs various other software engineering tasks, such as localizing the buggy method, detecting/debugging regression errors, and classifying the cause for a test failure as either error in production code or error in test code.
Keyword:
Languages
Reliability
Theory
Verification
Software changes
dynamic checking
static checking
AI总结

AI总结

对已上传原文的论文进行重点信息的提取,主要内容包括:简要概述、研究摘要、背景介绍、关键亮点、图文解析、展望与总结。

期刊

A
ACM Transactions on Software Engineering and Methodology
IF:
6.2
论文数:
1.2K
被引数:
3.4K

机构

N
National University of Singapore
学者数:
7.5W
论文数: 6.5W
被引数: 11.4W
引用论文

引用论文

Inheritance of seed size in cowpea (Vigna unguiculata (L.) Walp.)
err1984-11-01
err0
errOAAI
errI. Drabo; R. Redden; J. B. Smithson; V. D. Aggarwal
err分享
err收藏
Evolution of bract development and B‐class MADS box gene expression in petaloid bracts of Cornus s. l. (Cornaceae)
err2012-08-16
err0
PREAI
errChun‐Miao Feng; Xiang Liu; Yi Yu; Deyu Xie; Robert G. Franks; Qiu‐Yun (Jenny) Xiang
err分享
err收藏
Comparison of ureteroscopic procedures with rigid and semirigid ureteroscopes in pediatric population: does the caliber of instrument matter?
err2010-06-03
err0
PREAI
errOrhan Tanriverdi; Mesrur Selcuk Silay; Muammer Kendirci; Mustafa Kadihasanoglu; Mustafa Aydın; Kaya Horasanli; Cengiz Miroglu
err分享
err收藏
err分享
err收藏
Local invertibility and sensitivity of atomic structure-feature mappings
err2021-10-20
err0
errOAAI
errSergey N. Pozdnyakov; Liwei Zhang; Christoph Ortner; Gábor Csányi; Michele Ceriotti
err分享
err收藏
学者 查看更多内容