RINGA: Design and verification of finite state machine for self-adaptive software at runtime

Euijong Lee, Young Gab Kim, Young Duk Seo, Kwangsoo Seol, Doo Kwon Baik

    Research output: Contribution to journalArticlepeer-review

    31 Citations (Scopus)

    Abstract

    Context In recent years, software environments such as the cloud and Internet of Things (IoT) have become increasingly sophisticated, and as a result, development of adaptable software has become very important. Self-adaptive software is appropriate for today's needs because it changes its behavior or structure in response to a changing environment at runtime. To adapt to changing environments, runtime verification is an important requirement, and research that integrates traditional verification with self-adaptive software is in high demand. Objective Model checking is an effective static verification method for software, but existing problems at runtime remain unresolved. In this paper, we propose a self-adaptive software framework that applies model checking to software to enable verification at runtime. Method The proposed framework consists of two parts: the design of self-adaptive software using a finite state machine and the adaptation of the software during runtime. For the first part, we propose two finite state machines for self-adaptive software called the self-adaptive finite state machine (SA-FSM) and abstracted finite state machine (A-FSM). For the runtime verification part, a self-adaptation process based on a MAPE (monitoring, analyzing, planning, and executing) loop is implemented. Results We performed an empirical evaluation with several model-checking tools (i.e., NuSMV and CadenceSMV), and the results show that the proposed method is more efficient at runtime. We also investigated a simple example application in six scenarios related to the IoT environment. We implemented Android and Arduino applications, and the results show the practical usability of the proposed self-adaptive framework at runtime. Conclusions We proposed a framework for integrating model checking with a self-adaptive software lifecycle. The results of our experiments showed that the proposed framework can achieve verify self-adaptation software at runtime.

    Original languageEnglish
    Pages (from-to)200-222
    Number of pages23
    JournalInformation and Software Technology
    Volume93
    DOIs
    Publication statusPublished - 2018 Jan

    Bibliographical note

    Funding Information:
    This research was supported by the Next-Generation Information Computing Development Program through the National Research Foundation of Korea (NRF) funded by the Ministry of Science, ICT & Future Planning ( 2012M3C4A7033346 ). This work also partially was supported by Institute for Information & communications Technology Promotion (IITP) grant funded by the Korea government (MSIP) (No. 2016-0-00498 , User behavior pattern analysis based authentication and anomaly detection within the system using deep learning techniques)

    Publisher Copyright:
    © 2017 Elsevier B.V.

    Copyright:
    Copyright 2017 Elsevier B.V., All rights reserved.

    Keywords

    • Finite state machine
    • Model checking
    • Runtime
    • Self-adaptive software

    ASJC Scopus subject areas

    • Software
    • Information Systems
    • Computer Science Applications

    Fingerprint

    Dive into the research topics of 'RINGA: Design and verification of finite state machine for self-adaptive software at runtime'. Together they form a unique fingerprint.

    Cite this