File Download

There are no files associated with this item.

  • Find it @ UNIST can give you direct access to the published full text of this article. (UNISTARs only)
Related Researcher

이주용

Yi, Jooyong
Programming Languages and Software Engineering Lab.
Read More

Views & Downloads

Detailed Information

Cited time in webofscience Cited time in scopus
Metadata Downloads

Full metadata record

DC Field Value Language
dc.citation.number 3 -
dc.citation.startPage 18 -
dc.citation.title ACM TRANSACTIONS ON SOFTWARE ENGINEERING AND METHODOLOGY -
dc.citation.volume 24 -
dc.contributor.author Yi, Jooyong -
dc.contributor.author Qi, Dawei -
dc.contributor.author Tan, Shin Hwei -
dc.contributor.author Roychoudhury, Abhik -
dc.date.accessioned 2023-12-22T01:12:45Z -
dc.date.available 2023-12-22T01:12:45Z -
dc.date.created 2019-02-25 -
dc.date.issued 2015-05 -
dc.description.abstract 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. -
dc.identifier.bibliographicCitation ACM TRANSACTIONS ON SOFTWARE ENGINEERING AND METHODOLOGY, v.24, no.3, pp.18 -
dc.identifier.doi 10.1145/2729973 -
dc.identifier.issn 1049-331X -
dc.identifier.scopusid 2-s2.0-84930161410 -
dc.identifier.uri https://scholarworks.unist.ac.kr/handle/201301/26248 -
dc.identifier.url https://dl.acm.org/citation.cfm?doid=2776776.2729973 -
dc.identifier.wosid 000354826200006 -
dc.language 영어 -
dc.publisher ASSOC COMPUTING MACHINERY -
dc.title Software Change Contracts -
dc.type Article -
dc.description.isOpenAccess FALSE -
dc.relation.journalWebOfScienceCategory Computer Science, Software Engineering -
dc.relation.journalResearchArea Computer Science -
dc.type.docType Article -
dc.description.journalRegisteredClass scie -
dc.description.journalRegisteredClass scopus -
dc.subject.keywordAuthor Languages -
dc.subject.keywordAuthor Reliability -
dc.subject.keywordAuthor Theory -
dc.subject.keywordAuthor Verification -
dc.subject.keywordAuthor Software changes -
dc.subject.keywordAuthor dynamic checking -
dc.subject.keywordAuthor static checking -
dc.subject.keywordPlus OBJECT-ORIENTED PROGRAMS -
dc.subject.keywordPlus REGRESSION VERIFICATION -
dc.subject.keywordPlus CHECKING -
dc.subject.keywordPlus JAVA -

qrcode

Items in Repository are protected by copyright, with all rights reserved, unless otherwise indicated.