2016
DOI: 10.1007/978-3-319-33693-0_20
|View full text |Cite
|
Sign up to set email alerts
|

Refactoring of Legacy Software Using Model Learning and Equivalence Checking: An Industrial Experience Report

Abstract: Abstract. Many companies struggle with large amounts of legacy software that is difficult to maintain and to extend. Refactoring legacy code typically requires large efforts and introduces serious risks because often crucial business assets are hidden in legacy components. We investigate the support of formal techniques for the rejuvenation of legacy embedded software, concentrating on control components. Model learning and equivalence checking are used to improve a new implementation of a legacy control compo… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
3
2

Citation Types

0
24
0

Year Published

2016
2016
2022
2022

Publication Types

Select...
6
2
1

Relationship

3
6

Authors

Journals

citations
Cited by 40 publications
(25 citation statements)
references
References 22 publications
0
24
0
Order By: Relevance
“…Margaria et al showed that model learning may help to increase confidence that a legacy component and a refactored implementation have the same behavior [53]. Inspired by this work, Schuts et al use inferred specifications and equivalence checking to assist re-engineering of legacy software in an industrial context at Philips [63]. Sun et al use active automata learning in combination with automated abstraction refinement and random testing for finding abstract behavioral models of Java classes [67].…”
Section: Related Work and Applicationsmentioning
confidence: 99%
See 1 more Smart Citation
“…Margaria et al showed that model learning may help to increase confidence that a legacy component and a refactored implementation have the same behavior [53]. Inspired by this work, Schuts et al use inferred specifications and equivalence checking to assist re-engineering of legacy software in an industrial context at Philips [63]. Sun et al use active automata learning in combination with automated abstraction refinement and random testing for finding abstract behavioral models of Java classes [67].…”
Section: Related Work and Applicationsmentioning
confidence: 99%
“…Model learning has been successfully used in several different application domains, including -generating conformance test suites of software components, a.k.a. learningbased testing (e.g., [38,39]), -finding mistakes in implementations of security-critical protocols (e.g., [3,16,[28][29][30]62]), -learning interfaces of classes in software libraries (e.g., [42]), -checking that a legacy component and a refactored implementation have the same behavior (e.g., [63]).…”
Section: Introductionmentioning
confidence: 99%
“…Notably, the Modest Toolset also includes an MBT tool [24], thus providing all three techniques for probabilistic systems in one package. The "opposite" of MBT, deriving a model from an implementation using automata learning [51,53], is also gaining popularity and is especially well suited for the analysis of legacy systems [41]. Automata learning typically uses MBT internally to check whether the model learned so far is approximately equivalent to the implementation under learning.…”
Section: Related Workmentioning
confidence: 99%
“…Angluin [4] specified the first active learning algorithm. Ever since, adaptations [9,12], implementations [5,11] and successful applications [1,15,16] have been following.…”
Section: Introductionmentioning
confidence: 99%