2006
DOI: 10.1007/11813040_33
|View full text |Cite
|
Sign up to set email alerts
|

Changing Programs Correctly: Refactoring with Specifications

Abstract: Abstract. Refactorings change the internal structure of code without changing its external behavior. For non-trivial refactorings, the preservation of external behavior depends on semantic properties of the program that are difficult to check automatically before the refactoring is applied. Therefore, existing refactoring tools either do not support non-trivial refactorings at all or force programmers to rely on (typically incomplete) test suites to check their refactorings. The technique presented in the pape… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
3
1
1

Citation Types

0
9
0

Year Published

2007
2007
2021
2021

Publication Types

Select...
4
2
1

Relationship

0
7

Authors

Journals

citations
Cited by 16 publications
(9 citation statements)
references
References 18 publications
0
9
0
Order By: Relevance
“…Various formalizations of refactoring have been proposed in the concrete such as [3,25,31]. Refactoring can also be formalized as a special case of semantic program transformation [15].…”
Section: Hsincementioning
confidence: 99%
“…Various formalizations of refactoring have been proposed in the concrete such as [3,25,31]. Refactoring can also be formalized as a special case of semantic program transformation [15].…”
Section: Hsincementioning
confidence: 99%
“…• properties that can be checked statically (they call them "a priori checks" in Bannwart &Müller (2006), and"preconditions" in Bannwart (2006)) • those that can be checked dynamically (called "a posteriori checks" in Bannwart & Müller (2006), and confusingly called "postconditions" in Bannwart (2006)) 3. The refactoring is proved to be behaviour-preserving using the above conditions.…”
Section: Bannwartmentioning
confidence: 99%
“…Only the correctness proof of "Rename a Method" is presented in detail in Bannwart (2006); it would have been useful to see detailed accounts for other refactorings to appreciate the tractability of the method. Bannwart & Müller (2006) study the refactoring "Move Field". This refactoring moves a field declared in one class (let us denote it by S) to a different class (T) and modifying all accesses to that field to reflect this change.…”
Section: Bannwartmentioning
confidence: 99%
See 1 more Smart Citation
“…While in particular the latter approach is close to ours, both languages are state based formalisms only and do not include dynamic aspects, like CSP-OZ does. A different approach to correctness of refactorings is taken by Bannwart and Müller [BM06]. They show that particular pre-and post-conditions can be derived from a refactoring and used to ensure correctness by inserting them as assertions into programs.…”
Section: Related Workmentioning
confidence: 99%