University of Leicester
Browse
asej.pdf (4 MB)
Download file

Inferring visual contracts from Java programs

Download (4 MB)
journal contribution
posted on 2018-10-16, 15:34 authored by Abdullah Alshanqiti, Reiko Heckel, Timo Kehrer
Visual contracts model the operation 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. Their detailed specification of internal data states and transformations, referred to as deep behavioural modelling, is an error-prone activity. 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, patterns, and invariants. 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

Automated Software Engineering, 2018, 25 (4), pp 745–784

Author affiliation

/Organisation/COLLEGE OF SCIENCE AND ENGINEERING/Department of Informatics

Version

  • AM (Accepted Manuscript)

Published in

Automated Software Engineering

Publisher

Springer Verlag

issn

0928-8910

eissn

1573-7535

Acceptance date

2018-06-11

Copyright date

2018

Available date

2019-07-05

Publisher version

https://link.springer.com/article/10.1007/s10515-018-0242-9

Notes

The file associated with this record is under embargo until 12 months after publication, in accordance with the publisher's self-archiving policy. The full text may be available through the publisher links provided above.

Language

en

Usage metrics

    University of Leicester Publications

    Categories

    Keywords

    Exports