2013
DOI: 10.1007/978-3-642-39038-8_20
|View full text |Cite
|
Sign up to set email alerts
|

Really Automatic Scalable Object-Oriented Reengineering

Abstract: Abstract. Even when implemented in a purely procedural programming language, properly designed programs possess elements of good design that are expressible through object-oriented constructs and concepts. For example, placing structured types and the procedures operating on them together in the same module achieves a weak form of encapsulation that reduces inter-module coupling. This paper presents a novel technique, and a supporting tool AutoOO, that extracts such implicit design elements from C applications… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
1
1
1
1

Citation Types

0
5
0

Year Published

2015
2015
2024
2024

Publication Types

Select...
3
2
1

Relationship

2
4

Authors

Journals

citations
Cited by 7 publications
(5 citation statements)
references
References 27 publications
(55 reference statements)
0
5
0
Order By: Relevance
“…A major follow-up to the work described in this paper is the object-oriented reengineering of C code translated to Eiffel. In recent work [41], we have developed an automatic reengineering technique, and implemented it atop the translation produced by C2Eif and described in the present paper. The technique encapsulates functions and type definitions into classes that achieve low coupling and high cohesion, and introduces inheritance and contracts when possible.…”
Section: Discussionmentioning
confidence: 99%
See 1 more Smart Citation
“…A major follow-up to the work described in this paper is the object-oriented reengineering of C code translated to Eiffel. In recent work [41], we have developed an automatic reengineering technique, and implemented it atop the translation produced by C2Eif and described in the present paper. The technique encapsulates functions and type definitions into classes that achieve low coupling and high cohesion, and introduces inheritance and contracts when possible.…”
Section: Discussionmentioning
confidence: 99%
“…Object-oriented reengineering is beyond the scope of this paper; and we tackled it in follow-up work based on C2Eif which we mention in Section 6. Nonetheless, it is still useful to compare existing approaches to reengineering with C2Eif, solely based on features such as degree of automation and tool support; see our follow-up work [41] for a discussion focused on the object-oriented reengineering techniques. Table 5 summarizes some features of the main approaches to object-oriented reengineering of procedural code:…”
Section: Object-oriented Reengineeringmentioning
confidence: 99%
“…Translation is a ubiquitous technique in computer science; however, the most common translation schemes bridge different abstraction levels, typically encoding a program written in a high-level language (such as Java) into a lower-level representation which is suitable for execution (such as byte or machine code). Reverse-engineering goes the opposite direction-from lower to higher levelfor example to extract modular and structural information from C programs and encode it using object-oriented constructs [26]. This paper describes a translation between intermediate languages-Boogie and Why3-which belong to similar abstraction levels.…”
Section: Related Workmentioning
confidence: 99%
“…Erudine also operates to develop the new system whilst running parallel with the old, meaning no disruption of business activity. Another example is C2Eif (Trudel, 2013), an automated method of modernizing legacy computer languages by translating them into contemporary formats. Trudel emphasizes the need for tool automation, which is inexpensive and more time-efficient than manual methods.…”
Section: Legacy Modernization: Potential For a Data Rosetta Stonementioning
confidence: 99%