Reuse or rewrite: Combining textual, static, and dynamic analyses to assess the cost of keeping a system up-to-date

Giuliano Antoniol, Jane Huffman Hayes, Yann Gaël Guéhéneuc, Massimiliano Di Penta

Research output: Chapter in Book/Report/Conference proceedingConference contributionpeer-review

7 Scopus citations

Abstract

Undocumented software systems are a common challenge for developers performing maintenance and/or reuse. The challenge is two-fold: (1) when no comments or documentation exist, it is difficult for developers to understand how a system works; (2) when no requirements exist, it is difficult to know what the system actually does. We present a method, named ReORe (Reuse or Rewrite) that assists developers in recovering requirements for a competitor system and in deciding if they should reuse parts of their existing system or rewrite it from scratch. Our method requires source code and executable for the system and assumes that requirements are preliminarily recovered. We apply ReORe to Lynx, a Web browser written in C. We provide evidence of ReORe accuracy: 56% for validation based on textual and static analysis and 94% for the final validation using dynamic analysis.

Original languageEnglish
Title of host publicationProceedings of the 24th IEEE International Conference on Software Maintenance, ICSM 2008
Pages147-156
Number of pages10
DOIs
StatePublished - 2008
Event24th IEEE International Conference on Software Maintenance, ICSM 2008 - Beijing, China
Duration: Sep 28 2008Oct 4 2008

Publication series

NameIEEE International Conference on Software Maintenance, ICSM

Conference

Conference24th IEEE International Conference on Software Maintenance, ICSM 2008
Country/TerritoryChina
CityBeijing
Period9/28/0810/4/08

Keywords

  • Data mining
  • Documentation
  • Dynamic analysis
  • Feature identification
  • Maintenance
  • Requirements
  • Reuse
  • Static analysis

ASJC Scopus subject areas

  • Software

Fingerprint

Dive into the research topics of 'Reuse or rewrite: Combining textual, static, and dynamic analyses to assess the cost of keeping a system up-to-date'. Together they form a unique fingerprint.

Cite this