Title
Example-Driven Reconstruction of Software Models
Abstract
As software systems evolve, they become more complex and harder to understand and maintain. Certain reverse engineering techniques attempt to reconstruct software models from source code with the help of a parser for the source language. Unfortunately a great deal of effort may be required to build a specialized parser for a legacy programming language or dialect. On the other hand, (i) we typically do not need a complete parser that recognizes all language constructs, and (ii) we have a rich supply of (legacy) examples. We present an approach to use these facts to rapidly and incrementally develop parsers as follows: we specify mappings from source code examples to model elements; we use the mappings to generate a parser; we parse as much code as we can; we use the exceptional cases to develop new example mappings; and we iterate. Experiments with Java and Ruby, two very different languages, suggest that our approach can be a very efficient and effective way to rapidly construct software models from legacy code.
Year
DOI
Venue
2007
10.1109/CSMR.2007.23
CSMR
Keywords
Field
DocType
Java,grammars,reverse engineering,software maintenance,Java language,Ruby language,example-driven software model reconstruction,grammar,legacy programming language,parsing,reverse engineering
Programming language,Software engineering,Source code,Compiler-compiler,Computer science,Language construct,Software system,Software,Legacy code,Software maintenance,Parsing
Conference
ISBN
Citations 
PageRank 
0-7695-2802-3
7
0.43
References 
Authors
21
5
Name
Order
Citations
PageRank
Oscar Nierstrasz12404346.86
Markus Kobel270.43
Tudor Girba372940.01
Michele Lanza42197124.38
Horst Bunke58650558.39