Sam/Mine

discovering scenario-based specifications from log files
written and maintained by Dirk Fahland, Eindhoven University of Technology

Description

Sam is a tool for mining Live Sequence Charts from a log file that contains traces of application executions, it is part of the tool suite Sam that provides tools for Scenario-based Analysis and Methods.

SAM can discover from a given log linear-time invariants in the form of universal Live Sequence Charts (LSCs) and branching-time scenarios in the form of conditional, existential LSCs. Examples of discovered scenarios from real applications are linked at the end of this page.

Sam is an open source tool written in Java. Its sources are available from github.com/scenario-based-tools/sam. A binary package together with a manual and two log files can be downloaded here.

Log-file Format

Sam reads log files that are stored in XES format (see http://www.xes-standard.org/). An event of a trace is expected to have the following format:

The crucial attributes for Sam are sender, receiver and concept:name which together define that component sender invoked the method written in concept:name at component receiver.

Example data

We provide two example logs from two different applications

Mining Scenarios

The manual provided with Sam gives details how to invoke sam to discover scenarios. The following results have been obtained from the example logs with different invocation parameters.

CrossFTP

Columba

Trigger/Effect Mining on CrossFTP

Note: coverage trees that show where an LSC occurs in the input tree are not available in this zip due to size limitations. However, these trees can be generated automatically by Sam, see the manual of the binary release for details.