posted on 2016-04-12, 09:57authored byReiko Heckel, Abdullah Alshanqiti
Visual contracts model the operations of components or services by pre-and post-conditions formalised as graph transformation rules. They provide a precise intuitive notation to support testing, understanding and analysis of software. However, due to their detailed specification of data states and transformations, modelling real applications is an error-prone process. In this paper we propose a dynamic approach to reverse engineering visual contracts from Java based on tracing the execution of Java operations. The resulting contracts give an accurate description of the observed object transformations, their effects and preconditions in terms of object structures, parameter and attribute values, and their generalised specification by universally quantified (multi) objects. While this paper focusses on the fundamental technique rather than a particular application, we explore potential uses in our evaluation, including in program understanding, review of test reports and debugging.
History
Citation
30th IEEE/ACM International Conference on Automated Software Engineering (ASE), 2015, pp. 104-114
Author affiliation
/Organisation/COLLEGE OF SCIENCE AND ENGINEERING/Department of Computer Science
Source
30th IEEE/ACM International Conference on Automated Software Engineering (ASE 2015), Lincoln, NE, 9-13 Nov. 2015
Version
AM (Accepted Manuscript)
Published in
30th IEEE/ACM International Conference on Automated Software Engineering (ASE)
Publisher
Institute of Electrical and Electronics Engineers (IEEE), United States