Reverse Engineering Models of Software Interfaces
Debjyoti Bera, Mathijs Schuts, Jozef Hooman, Ivan Kurtev
Computer Science and Information Systems, pages 657-686, 2021.
ABSTRACT
Cyber-physical systems consist of many hardware and software components.
Over the lifetime of these systems their components are often replaced or
updated. To avoid integration problems, formal specifications of component interface
behavior are crucial. Such a formal specification captures not only the set of
provided operations but also the order of using them and the constraints on their
timing behavior. Usually the order of operations are expressed in terms of a state
machine. For new components such a formal specification can be derived from requirements.
However, for legacy components such interface descriptions are usually
not available. So they have to be reverse engineered from existing event logs and
source code. This costs a lot of time and does not scale very well. To improve the
efficiency of this process, we present a passive learning technique for interface models
inspired by process mining techniques. The approach is based on representing
causal relations between events present in an event log and their timing information
as a timed-causal graph. The graph is further processed and eventually transformed
into a state machine and a set of timing constraints. Compared to other approaches
in literature which focus on the general problem of inferring state-based behavior,
we exploit patterns of client-server interactions in event logs.
pdf