Title :
Example-Driven Reconstruction of Software Models
Author :
Nierstrasz, Oscar ; Kobel, Markus ; Girba, Tudor ; Lanza, Michele
Author_Institution :
Inst. of Comput. Sci., Bern Univ.
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
Keywords :
Java; grammars; reverse engineering; software maintenance; Java language; Ruby language; example-driven software model reconstruction; grammar; legacy programming language; parsing; reverse engineering; Artificial intelligence; Computer languages; Computer science; Computer vision; Documentation; Informatics; Java; Reverse engineering; Software maintenance; Software systems;
Conference_Titel :
Software Maintenance and Reengineering, 2007. CSMR '07. 11th European Conference on
Conference_Location :
Amsterdam
Print_ISBN :
0-7695-2802-3
DOI :
10.1109/CSMR.2007.23