FantaRajlich98

PublicReengineering Wiki

The authors describe a project which reengineered PET (a CAD tool developed at the Ford Motor Company). The program is written in C++ and every mechanical component is represented as a class. These classes are hierarchically composed to represented assemblies, for example an engine is composed of a engine block, pistons, etc. The relationships between components constitute a complex dependency network. The program had deteriorated over the years, eg misplaced code and data eroding the conceptual architecture of the system. Also, the UI and application logic were mixed up in classes. They designed 3 transformation tools. The first moves function into classes, the next encapsulated code fragments into new functions and the third moved function out of a class. They judged that these transformations were the most commonly required. The tools required some user intervention to identify candidates and targets. The tools subsequently carry out analysis and consistency checks. The 3 transformations cover only part of the exercise - the rest of the restructuring was achieved with the use of standard editors. They describe various reengineering scenarios which use the tools and manual editing in various combinations to achieve the desired target implementation, eg separating UI code and application logic. They conclude that even small restructuring steps can have a positive effect on the code architecture, so improving it comprehensibility and maintainability.


Related pages: Bibliography
This page last edited on 29 October 1999
 
 
  • Search for: