Extracting interaction-based stateful behavior in Rich Internet Applications

    Research output: Chapter in Book/Report/Conference proceedingConference contribution

    9 Citations (Scopus)

    Abstract

    Although asynchronous technologies such as Ajax make Rich Internet Applications (RIAs) responsive, they can result in unexpected behavior due to nondeterministic client-side processing and asynchronous communication. One difficulty in understanding such erroneous behavior lies in the unpredictable contexts of the running system. Dynamic behavior analysis techniques do not help to verify the correctness of certain "blind spots" in the execution path. In this work, we present a static approach for extracting all possible state transitions described in source code from the RIAs. Our approach is based on the assumption that user, server and self interactions with the RIAs can change the states of the application. Our method consists of four steps: 1) using given specifications of Ajax relevant to interactions as rules, 2) creating a call graph, annotating interactions on it and extracting interaction controls, 3) abstracting the call graph to extract relationships among the interactions, and 4) refining the relationships with the interaction controls. By extracting the state machines of test scenarios of the correct and wrong behavior, it can help developers to pinpoint the statements in the source code that lead to the erroneous behavior. Our approach has been evaluated against a few experimental cases and we conclude that it can extract comprehensible state machines in a reasonable time.

    Original languageEnglish
    Title of host publicationProceedings of the European Conference on Software Maintenance and Reengineering, CSMR
    Pages423-428
    Number of pages6
    DOIs
    Publication statusPublished - 2012
    Event2012 16th European Conference on Software Maintenance and Reengineering, CSMR 2012 - Szeged
    Duration: 2012 Mar 272012 Mar 30

    Other

    Other2012 16th European Conference on Software Maintenance and Reengineering, CSMR 2012
    CitySzeged
    Period12/3/2712/3/30

    Fingerprint

    Internet
    Refining
    Servers
    Specifications
    Communication
    Processing

    Keywords

    • Ajax
    • Program comprehension
    • Reverse engineering
    • Rich Internet Applications

    ASJC Scopus subject areas

    • Software

    Cite this

    Maezawa, Y., Washizaki, H., & Honiden, S. (2012). Extracting interaction-based stateful behavior in Rich Internet Applications. In Proceedings of the European Conference on Software Maintenance and Reengineering, CSMR (pp. 423-428). [6178915] https://doi.org/10.1109/CSMR.2012.53

    Extracting interaction-based stateful behavior in Rich Internet Applications. / Maezawa, Yuta; Washizaki, Hironori; Honiden, Shinichi.

    Proceedings of the European Conference on Software Maintenance and Reengineering, CSMR. 2012. p. 423-428 6178915.

    Research output: Chapter in Book/Report/Conference proceedingConference contribution

    Maezawa, Y, Washizaki, H & Honiden, S 2012, Extracting interaction-based stateful behavior in Rich Internet Applications. in Proceedings of the European Conference on Software Maintenance and Reengineering, CSMR., 6178915, pp. 423-428, 2012 16th European Conference on Software Maintenance and Reengineering, CSMR 2012, Szeged, 12/3/27. https://doi.org/10.1109/CSMR.2012.53
    Maezawa Y, Washizaki H, Honiden S. Extracting interaction-based stateful behavior in Rich Internet Applications. In Proceedings of the European Conference on Software Maintenance and Reengineering, CSMR. 2012. p. 423-428. 6178915 https://doi.org/10.1109/CSMR.2012.53
    Maezawa, Yuta ; Washizaki, Hironori ; Honiden, Shinichi. / Extracting interaction-based stateful behavior in Rich Internet Applications. Proceedings of the European Conference on Software Maintenance and Reengineering, CSMR. 2012. pp. 423-428
    @inproceedings{7ed68d2d3f2a467c95ad950459f92fb7,
    title = "Extracting interaction-based stateful behavior in Rich Internet Applications",
    abstract = "Although asynchronous technologies such as Ajax make Rich Internet Applications (RIAs) responsive, they can result in unexpected behavior due to nondeterministic client-side processing and asynchronous communication. One difficulty in understanding such erroneous behavior lies in the unpredictable contexts of the running system. Dynamic behavior analysis techniques do not help to verify the correctness of certain {"}blind spots{"} in the execution path. In this work, we present a static approach for extracting all possible state transitions described in source code from the RIAs. Our approach is based on the assumption that user, server and self interactions with the RIAs can change the states of the application. Our method consists of four steps: 1) using given specifications of Ajax relevant to interactions as rules, 2) creating a call graph, annotating interactions on it and extracting interaction controls, 3) abstracting the call graph to extract relationships among the interactions, and 4) refining the relationships with the interaction controls. By extracting the state machines of test scenarios of the correct and wrong behavior, it can help developers to pinpoint the statements in the source code that lead to the erroneous behavior. Our approach has been evaluated against a few experimental cases and we conclude that it can extract comprehensible state machines in a reasonable time.",
    keywords = "Ajax, Program comprehension, Reverse engineering, Rich Internet Applications",
    author = "Yuta Maezawa and Hironori Washizaki and Shinichi Honiden",
    year = "2012",
    doi = "10.1109/CSMR.2012.53",
    language = "English",
    isbn = "9780769546667",
    pages = "423--428",
    booktitle = "Proceedings of the European Conference on Software Maintenance and Reengineering, CSMR",

    }

    TY - GEN

    T1 - Extracting interaction-based stateful behavior in Rich Internet Applications

    AU - Maezawa, Yuta

    AU - Washizaki, Hironori

    AU - Honiden, Shinichi

    PY - 2012

    Y1 - 2012

    N2 - Although asynchronous technologies such as Ajax make Rich Internet Applications (RIAs) responsive, they can result in unexpected behavior due to nondeterministic client-side processing and asynchronous communication. One difficulty in understanding such erroneous behavior lies in the unpredictable contexts of the running system. Dynamic behavior analysis techniques do not help to verify the correctness of certain "blind spots" in the execution path. In this work, we present a static approach for extracting all possible state transitions described in source code from the RIAs. Our approach is based on the assumption that user, server and self interactions with the RIAs can change the states of the application. Our method consists of four steps: 1) using given specifications of Ajax relevant to interactions as rules, 2) creating a call graph, annotating interactions on it and extracting interaction controls, 3) abstracting the call graph to extract relationships among the interactions, and 4) refining the relationships with the interaction controls. By extracting the state machines of test scenarios of the correct and wrong behavior, it can help developers to pinpoint the statements in the source code that lead to the erroneous behavior. Our approach has been evaluated against a few experimental cases and we conclude that it can extract comprehensible state machines in a reasonable time.

    AB - Although asynchronous technologies such as Ajax make Rich Internet Applications (RIAs) responsive, they can result in unexpected behavior due to nondeterministic client-side processing and asynchronous communication. One difficulty in understanding such erroneous behavior lies in the unpredictable contexts of the running system. Dynamic behavior analysis techniques do not help to verify the correctness of certain "blind spots" in the execution path. In this work, we present a static approach for extracting all possible state transitions described in source code from the RIAs. Our approach is based on the assumption that user, server and self interactions with the RIAs can change the states of the application. Our method consists of four steps: 1) using given specifications of Ajax relevant to interactions as rules, 2) creating a call graph, annotating interactions on it and extracting interaction controls, 3) abstracting the call graph to extract relationships among the interactions, and 4) refining the relationships with the interaction controls. By extracting the state machines of test scenarios of the correct and wrong behavior, it can help developers to pinpoint the statements in the source code that lead to the erroneous behavior. Our approach has been evaluated against a few experimental cases and we conclude that it can extract comprehensible state machines in a reasonable time.

    KW - Ajax

    KW - Program comprehension

    KW - Reverse engineering

    KW - Rich Internet Applications

    UR - http://www.scopus.com/inward/record.url?scp=84860538886&partnerID=8YFLogxK

    UR - http://www.scopus.com/inward/citedby.url?scp=84860538886&partnerID=8YFLogxK

    U2 - 10.1109/CSMR.2012.53

    DO - 10.1109/CSMR.2012.53

    M3 - Conference contribution

    AN - SCOPUS:84860538886

    SN - 9780769546667

    SP - 423

    EP - 428

    BT - Proceedings of the European Conference on Software Maintenance and Reengineering, CSMR

    ER -