next up previous
Next: System Understanding Up: Object Identification Previous: Object Identification

Challenges

A transition from a traditional COBOL environment to an object oriented platform should enhance a system's correctness, robustness, extendibility, and reusability, the key factors affecting software quality[*]. Moreover, object technology is an enabler for componentization: splitting a large application into reusable components, such that they can be accessed independently, and possibly replaced incrementally by commercial off-the-shelf components. Sneed discusses several other, highly practical, reasons for renovation[*] [49]. In short, finding objects[*] in legacy systems is a key research area in software renovation.

The literature reports several systematic approaches to object identification, some of which can be partially automated, such as [42,36,18,40,26,54]. These typically involve three steps: (1) identify legacy records as candidate classes; (2) identify legacy procedures or programs as candidate methods; (3) determine the best class for each method via some form of cluster analysis [34].

There are several problems, however, with the application of these approaches to actual systems.

  1. Legacy systems greatly vary in source language, application domain, database system used, etc. It is not easy to select the identification approach best-suited for the legacy system at hand.
  2. It is impossible to select a single object identification approach, since legacy systems typically are heterogeneous, using various languages, database systems, transaction monitors, and so on.
  3. There is limited experience with actual object identification projects, making it likely that new migration projects will reveal problems not encountered before.
Thus, when embarking upon an object identification project, one will have to select and compose one's own blend of object identification techniques. Moreover, during the project, new problems will have to be solved.

In this section, we will look at three object identification issues in more detail: support for providing legacy system understanding (Section 2.2), ways to find types in a COBOL system (Section 2.3), and techniques for combining the types found with selected legacy functionality, thus arriving at candidate classes (Section 2.4).


next up previous
Next: System Understanding Up: Object Identification Previous: Object Identification
Paul Klint 2001-06-10