Modeling and verifying dynamic communication structures based on graph transformations

  • Authors:
  • Tobias Eckardt;Christian Heinzemann;Stefan Henkler;Martin Hirsch;Claudia Priesterjahn;Wilhelm Schäfer

  • Affiliations:
  • Mettenmeier GmbH Utitility Solutions, Paderborn, Germany 33100 and Heinz Nixdorf Institute and Department of Computer Science, Software Engineering Group, University of Paderborn, Paderborn, Germa ...;Heinz Nixdorf Institute and Department of Computer Science, Software Engineering Group, University of Paderborn, Paderborn, Germany 33098;OFFIS, Oldenburg, Germany 26121;Fachbereich Informatik, Fachhochschule Dortmund, Dortmund, Germany 44227;Heinz Nixdorf Institute and Department of Computer Science, Software Engineering Group, University of Paderborn, Paderborn, Germany 33098;Heinz Nixdorf Institute and Department of Computer Science, Software Engineering Group, University of Paderborn, Paderborn, Germany 33098

  • Venue:
  • Computer Science - Research and Development
  • Year:
  • 2013

Quantified Score

Hi-index 0.00

Visualization

Abstract

Current and especially future software systems increasingly exhibit so-called self-* properties (e.g., self-healing or self-optimization). In essence, this means that software in such systems needs to be reconfigurable at run-time to remedy a detected failure or to adjust to a changing environment. Reconfiguration includes adding or deleting (software) components as well as adding or deleting component interaction. As a consequence, the state space of self-* systems becomes so complex, that current verification approaches like model checking or theorem proving usually do not scale. Our approach addresses this problem by firstly defining a system architecture with clearly defined components and their interfaces (ports including the definition of signatures of all events and methods which the port may receive and the component may execute) and so-called coordination patterns. These coordination patterns specify communication protocols based on the definition of the ports only for those component interactions which are defined in the (static) architecture specification by a corresponding connection. Secondly, the reconfiguration of architectures is precisely defined by giving a formal definition of all change operations, e.g., adding or deleting components and component connections. By exploiting this formal definition, it becomes provable that an architecture includes only component connections which correspond to the defined coordination patterns. Then, the verification of safety and liveness properties has to be carried out only for each individual coordination pattern rather than for the system as a whole.