Experimental evaluation of a tool for the verification and transformation of source code in event-driven systems

G. Gülesir, Klaas van den Berg, Lodewijk Bergmans, Mehmet Aksit

    Research output: Contribution to journalArticleAcademicpeer-review

    5 Citations (Scopus)
    46 Downloads (Pure)

    Abstract

    In event-driven systems, separating the reactive part of software (i.e., event-driven control) from the non-reactive part is a common design practice. The reactive part is typically structured according to the states and transitions of a system, whereas the non-reactive part is typically structured according to the concepts of the application domain (e.g., the services provided by the system). In such systems, the non-reactive part of software stimulates the reactive part with event calls. Whenever the non-reactive part is modified (e.g., during evolution), the existing event calls may become invalid, new event calls may become necessary, and the two parts of software may become incompatible. Manually finding and repairing these types of defects is a time-consuming and error-prone maintenance task. In this article, we present a solution that combines source code model checking and aspect-oriented programming techniques, to reduce the time spent by developers and to automatically find defects, while performing the maintenance task mentioned above. In addition, we present controlled experiments showing that the solution can reduce the time by 75%, and enable the prevention of one defect per 140 lines of source code.
    Original languageUndefined
    Article number10.1007/s10664-009-9107-y
    Pages (from-to)720-777
    Number of pages58
    JournalEmpirical software engineering
    Volume14
    Issue number1
    DOIs
    Publication statusPublished - 18 Mar 2009

    Keywords

    • Source code transformation
    • Source code verification
    • EWI-15346
    • METIS-264398
    • IR-65488
    • Event-driven systems
    • Formal experiment

    Cite this

    @article{dca48b92a4b347a596cbfc19d4d85b2d,
    title = "Experimental evaluation of a tool for the verification and transformation of source code in event-driven systems",
    abstract = "In event-driven systems, separating the reactive part of software (i.e., event-driven control) from the non-reactive part is a common design practice. The reactive part is typically structured according to the states and transitions of a system, whereas the non-reactive part is typically structured according to the concepts of the application domain (e.g., the services provided by the system). In such systems, the non-reactive part of software stimulates the reactive part with event calls. Whenever the non-reactive part is modified (e.g., during evolution), the existing event calls may become invalid, new event calls may become necessary, and the two parts of software may become incompatible. Manually finding and repairing these types of defects is a time-consuming and error-prone maintenance task. In this article, we present a solution that combines source code model checking and aspect-oriented programming techniques, to reduce the time spent by developers and to automatically find defects, while performing the maintenance task mentioned above. In addition, we present controlled experiments showing that the solution can reduce the time by 75{\%}, and enable the prevention of one defect per 140 lines of source code.",
    keywords = "Source code transformation, Source code verification, EWI-15346, METIS-264398, IR-65488, Event-driven systems, Formal experiment",
    author = "G. G{\"u}lesir and {van den Berg}, Klaas and Lodewijk Bergmans and Mehmet Aksit",
    note = "10.1007/s10664-009-9107-y",
    year = "2009",
    month = "3",
    day = "18",
    doi = "10.1007/s10664-009-9107-y",
    language = "Undefined",
    volume = "14",
    pages = "720--777",
    journal = "Empirical software engineering",
    issn = "1382-3256",
    publisher = "Springer",
    number = "1",

    }

    Experimental evaluation of a tool for the verification and transformation of source code in event-driven systems. / Gülesir, G.; van den Berg, Klaas; Bergmans, Lodewijk; Aksit, Mehmet.

    In: Empirical software engineering, Vol. 14, No. 1, 10.1007/s10664-009-9107-y, 18.03.2009, p. 720-777.

    Research output: Contribution to journalArticleAcademicpeer-review

    TY - JOUR

    T1 - Experimental evaluation of a tool for the verification and transformation of source code in event-driven systems

    AU - Gülesir, G.

    AU - van den Berg, Klaas

    AU - Bergmans, Lodewijk

    AU - Aksit, Mehmet

    N1 - 10.1007/s10664-009-9107-y

    PY - 2009/3/18

    Y1 - 2009/3/18

    N2 - In event-driven systems, separating the reactive part of software (i.e., event-driven control) from the non-reactive part is a common design practice. The reactive part is typically structured according to the states and transitions of a system, whereas the non-reactive part is typically structured according to the concepts of the application domain (e.g., the services provided by the system). In such systems, the non-reactive part of software stimulates the reactive part with event calls. Whenever the non-reactive part is modified (e.g., during evolution), the existing event calls may become invalid, new event calls may become necessary, and the two parts of software may become incompatible. Manually finding and repairing these types of defects is a time-consuming and error-prone maintenance task. In this article, we present a solution that combines source code model checking and aspect-oriented programming techniques, to reduce the time spent by developers and to automatically find defects, while performing the maintenance task mentioned above. In addition, we present controlled experiments showing that the solution can reduce the time by 75%, and enable the prevention of one defect per 140 lines of source code.

    AB - In event-driven systems, separating the reactive part of software (i.e., event-driven control) from the non-reactive part is a common design practice. The reactive part is typically structured according to the states and transitions of a system, whereas the non-reactive part is typically structured according to the concepts of the application domain (e.g., the services provided by the system). In such systems, the non-reactive part of software stimulates the reactive part with event calls. Whenever the non-reactive part is modified (e.g., during evolution), the existing event calls may become invalid, new event calls may become necessary, and the two parts of software may become incompatible. Manually finding and repairing these types of defects is a time-consuming and error-prone maintenance task. In this article, we present a solution that combines source code model checking and aspect-oriented programming techniques, to reduce the time spent by developers and to automatically find defects, while performing the maintenance task mentioned above. In addition, we present controlled experiments showing that the solution can reduce the time by 75%, and enable the prevention of one defect per 140 lines of source code.

    KW - Source code transformation

    KW - Source code verification

    KW - EWI-15346

    KW - METIS-264398

    KW - IR-65488

    KW - Event-driven systems

    KW - Formal experiment

    U2 - 10.1007/s10664-009-9107-y

    DO - 10.1007/s10664-009-9107-y

    M3 - Article

    VL - 14

    SP - 720

    EP - 777

    JO - Empirical software engineering

    JF - Empirical software engineering

    SN - 1382-3256

    IS - 1

    M1 - 10.1007/s10664-009-9107-y

    ER -