2013 20th Working Conference on Reverse Engineering (WCRE) 2013
DOI: 10.1109/wcre.2013.6671305
|View full text |Cite
|
Sign up to set email alerts
|

Inferring Extended Finite State Machine models from software executions

Abstract: The ability to reverse-engineer models of software behaviour is valuable for a wide range of software maintenance, validation and verification tasks. Current reverse-engineering techniques focus either on control-specific behaviour (e.g., in the form of Finite State Machines), or data-specific behaviour (e.g., as pre / post-conditions or invariants). However, typical software behaviour is usually a product of the two; models must combine both aspects to fully represent the software's operation. Extended Finite… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
2
2
1

Citation Types

0
16
0

Year Published

2014
2014
2018
2018

Publication Types

Select...
5
2

Relationship

3
4

Authors

Journals

citations
Cited by 24 publications
(18 citation statements)
references
References 25 publications
(30 reference statements)
0
16
0
Order By: Relevance
“…Whereas this is reasonably straightforward for Java systems and the Erlang systems used in our case studies, there are classes of system for which obtaining such a trace can be difficult. As an example, for the PoolBoy system used in our initial evaluation [51], the variables are recorded as Strings, but actually correspond to nested lists or fixed tuples of process identifiers. To enable the inference of models from such systems, it is invariably necessary to re-code the traces to a more suitable abstraction (as discussed in Section 2.1.1).…”
Section: Discussionmentioning
confidence: 99%
See 2 more Smart Citations
“…Whereas this is reasonably straightforward for Java systems and the Erlang systems used in our case studies, there are classes of system for which obtaining such a trace can be difficult. As an example, for the PoolBoy system used in our initial evaluation [51], the variables are recorded as Strings, but actually correspond to nested lists or fixed tuples of process identifiers. To enable the inference of models from such systems, it is invariably necessary to re-code the traces to a more suitable abstraction (as discussed in Section 2.1.1).…”
Section: Discussionmentioning
confidence: 99%
“…One approach which we adopted in our initial experiments [51] involved introducing small code changes (mutations) to the program code to change its behaviour. The approach we have subsequently adopted for the experiments in this paper involved the provision of a manually selected set of trace mutations, and applying them to the sets of traces to yield negative traces.…”
Section: Synthesis Of Negative Tracesmentioning
confidence: 99%
See 1 more Smart Citation
“…There is also been more recent work on software reverseengineering using regular inference [5] and even EFSM inference with help of machine learning [14].…”
Section: Related Workmentioning
confidence: 99%
“…This analysis guarantees that, when we merge two states, they represent the same context and, therefore, any paths from these states, however long they might be, are always valid at the defined level of abstraction. The work presented in [58] describes an iterative approach to build EFSMs from a combination of names of events (function calls or I/O events) and values of some variables. They use a data classifier technique to classify each event according to a class of values.…”
Section: Related Workmentioning
confidence: 99%