Support software evolution with abstration rules and programming knowledge patterns

  • Authors:
  • Guifa Teng;Xiaodong Liu

  • Affiliations:
  • Department of Computer Science, Agricultural University of Heibei, Baoding, China;School of Computing, Napier University, Edinburgh, UK

  • Venue:
  • Focus on computational neurobiology
  • Year:
  • 2004

Quantified Score

Hi-index 0.02

Visualization

Abstract

This paper advocates that reengineering is an effective means of legacy system evolution. Extracting formal specification semantically consistent to the original legacy system will facilitate further redesign and forward engineering greatly. The key technology is abstraction, which is often interpreted as the act of hiding irrelevant details.Programming knowledge refers to the "technique" or "convention" that a programmer used to implement an application. The structure of an existing program was heavily affected by this kind of knowledge. A set of programming knowledge patterns are developed to discover the programming knowledge embedded in legacy systems. Implementation details can be eliminated effectively with these patterns and relevant abstraction rules.A unified reengineering approach with a focus on reverse engineering is proposed. The approach is based on three points: the construction of a wide spectrum language based reengineering framework, the development of abstraction rules and programming knowledge patterns.