Inferring visual contracts from Java']Java programs

被引:0
|
作者
Alshanqiti, Abdullah [1 ]
Heckel, Reiko [1 ]
Kehrer, Timo [2 ]
机构
[1] Univ Leicester, Dept Comp Sci, Leicester, Leics, England
[2] Humboldt Univ, Inst Informat, Berlin, Germany
关键词
Visual contracts; Graph transformation; Model extraction; Dynamic analysis; Reverse engineering; Specification mining; MODEL TRANSFORMATION;
D O I
10.1007/s10515-018-0242-9
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
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.
引用
收藏
页码:745 / 784
页数:40
相关论文
共 50 条
  • [1] Inferring visual contracts from Java programs
    Abdullah Alshanqiti
    Reiko Heckel
    Timo Kehrer
    [J]. Automated Software Engineering, 2018, 25 : 745 - 784
  • [2] Extracting Visual Contracts from Java']Java Programs
    Alshanqiti, Abdullah
    Heckel, Reiko
    [J]. 2015 30TH IEEE/ACM INTERNATIONAL CONFERENCE ON AUTOMATED SOFTWARE ENGINEERING (ASE), 2015, : 104 - 114
  • [3] Sip4J: Statically Inferring Access Permission Contracts for Parallelising Sequential Java']Java Programs
    Sadiq, Ayesha
    Li, Li
    Li, Yuan-Fang
    Ahmed, Ijaz
    Ling, Sea
    [J]. 34TH IEEE/ACM INTERNATIONAL CONFERENCE ON AUTOMATED SOFTWARE ENGINEERING (ASE 2019), 2019, : 1098 - 1101
  • [4] Visual debugging of multithreaded Java']Java programs
    Jackson, D
    [J]. IEEE SYMPOSIA ON HUMAN-CENTRIC COMPUTING LANGUAGES AND ENVIRONMENTS, PROCEEDINGS, 2001, : 340 - 341
  • [5] Adding contracts to Java']Java
    Newmarch, J
    [J]. TOOLS 27: TECHNOLOGY OF OBJECT-ORIENTED LANGUAGES, PROCEEDINGS, 1998, : 2 - 7
  • [6] Dynamic data race detection in Java']Java-programs using synchronization contracts
    Tsitelov, Dmitry
    Trifanov, Vitaly
    [J]. 2013 TOOLS & METHODS OF PROGRAM ANALYSIS (TMPA 2013), 2013, : 3 - 8
  • [7] Visual debugging of multithreaded Java programs
    Jackson, David
    [J]. 2001 IEEE Symposium on Human-Centric Computing, 2001, : 340 - 341
  • [8] Coordination contracts for Java']Java applications
    Gouveia, J
    Koutsoukos, G
    Wermelinger, M
    Andrade, L
    Fiadeiro, JL
    [J]. ICSE 2002: PROCEEDINGS OF THE 24TH INTERNATIONAL CONFERENCE ON SOFTWARE ENGINEERING, 2002, : 714 - 714
  • [9] Inferring aliasing and encapsulation properties for Java']Java
    Ma, Kin-Keung
    Foster, Jeffrey S.
    [J]. ACM SIGPLAN NOTICES, 2007, 42 (10) : 423 - 440
  • [10] Inferring Aliasing and Encapsulation Properties for Java']Java
    Ma, Kin-Keung
    Foster, Jeffrey S.
    [J]. OOPSLA: 22ND INTERNATIONAL CONFERENCE ON OBJECT-ORIENTED PROGRAMMING, SYSTEMS, LANGUAGES, AND APPLICATIONS, PROCEEDINGS, 2007, : 423 - 440