Automated Support for Building Behavioral Models of Event-Driven Systems

Abstract

Programmers understand a piece of software by building simplified mental models of it. Aspects of these models lend themselves naturally to formalization -- e.g., structural relationships can be partly captured by module dependency graphs. Automated support for generating and analyzing such structural models has proven useful. For event-driven systems, behavioral models, which capture temporal and causal relationships between events, are important and deserve similar methodological and tool support. In this paper, we describe such a technique. Our method supports building and elaboration of behavioral models, as well as maintaining such models as systems evolve. The method is based on model-checking and witness generation, using strategies to create goal-driven simulation traces. We illustrate the method on a two-lift/three-floor elevator system, and describe our tool, Sawblade, which provides automated support for the method.

Keywords: model-checking, behavioral models, software evolution.