Table of Contents
Fetching ...

Dynamic Symbolic Execution for Semantic Difference Analysis of Component and Connector Architectures

Johanna Grahl, Bernhard Rumpe, Max Stachon, Sebastian Stüber

TL;DR

It is indicated that while DSE shows promise for analyzing component and connector architectures, scalability remains a primary limitation, suggesting further research is needed to enhance its practical utility in larger systems.

Abstract

In the context of model-driven development, ensuring the correctness and consistency of evolving models is paramount. This paper investigates the application of Dynamic Symbolic Execution (DSE) for semantic difference analysis of component-and-connector architectures, specifically utilizing MontiArc models. We have enhanced the existing MontiArc-to-Java generator to gather both symbolic and concrete execution data at runtime, encompassing transition conditions, visited states, and internal variables of automata. This data facilitates the identification of significant execution traces that provide critical insights into system behavior. We evaluate various execution strategies based on the criteria of runtime efficiency, minimality, and completeness, establishing a framework for assessing the applicability of DSE in semantic difference analysis. Our findings indicate that while DSE shows promise for analyzing component and connector architectures, scalability remains a primary limitation, suggesting further research is needed to enhance its practical utility in larger systems.

Dynamic Symbolic Execution for Semantic Difference Analysis of Component and Connector Architectures

TL;DR

It is indicated that while DSE shows promise for analyzing component and connector architectures, scalability remains a primary limitation, suggesting further research is needed to enhance its practical utility in larger systems.

Abstract

In the context of model-driven development, ensuring the correctness and consistency of evolving models is paramount. This paper investigates the application of Dynamic Symbolic Execution (DSE) for semantic difference analysis of component-and-connector architectures, specifically utilizing MontiArc models. We have enhanced the existing MontiArc-to-Java generator to gather both symbolic and concrete execution data at runtime, encompassing transition conditions, visited states, and internal variables of automata. This data facilitates the identification of significant execution traces that provide critical insights into system behavior. We evaluate various execution strategies based on the criteria of runtime efficiency, minimality, and completeness, establishing a framework for assessing the applicability of DSE in semantic difference analysis. Our findings indicate that while DSE shows promise for analyzing component and connector architectures, scalability remains a primary limitation, suggesting further research is needed to enhance its practical utility in larger systems.

Paper Structure

This paper contains 35 sections, 9 figures, 2 tables, 1 algorithm.

Figures (9)

  • Figure 1: Symbolic execution tree. At the top is the initial state, arrows are assignments or branches.
  • Figure 2: Representation of a specific path executed through Dynamic Symbolic Execution with input $x = 6$
  • Figure 3: Architecture description of the StudentVote, with the representation of the internal state
  • Figure 4: High level overview of the developed tool
  • Figure 5: Symbolic and concrete representation of StudentVote internal state after the second input message
  • ...and 4 more figures