
Object-Oriented Software Reengineering

W98/99

Prof. Dr. O. Nierstrasz
Dr. S. Demeyer
Dr. S. Ducasse

Surprising as it may seem, many of the early adopters of the
object-oriented paradigm already face a number of problems typically
encountered in large-scale legacy systems.  Software engineers
confronted with millions of lines of industrial source code, developed
using object-oriented design methods and languages of the late 80s.
These systems exhibit a range of problems, effectively preventing them
from satisfying the evolving requirements imposed by their customers.

This course will present the main problems that software engineers face
when they reengineer applications. The lectures will cover:  problem
detection, documentation supports, reengineering operations.

The lecture will be practically-oriented, incorporating lab sessions to
test the solutions and tools presented.

The following topics will be covered:
design extraction, metrics, software repositories and information
models, reengineering operations, refactoring, the Y2K problem.


---

- (2) Design extraction
  (UML, difference between source code and design model)
  Experiment with Rationale Rose
  [Ducasse, Demeyer]

- (2-3) Metrics
  For problem detection,
  for...
  [Moser? Nierstrasz, Demeyer]

- (1) Software repositories and information models
  [Tichelaar? Nierstrasz?]

- (1) Duplicated Code
  (Duploc used on mosaic)
  [Rieger]

- (2) Reengineering Operations
  (detection of case-statement and presentation of the 4 patterns
  of the handbook, design issue, state pattern...)
  [Ducasse]

- (1) Experiment with the refactoring browser (Lint)
  [Ducasse?]

- (1) Y2K problem
  [Knolmayer?]

- (2) Relational DB
  [Demeyer]

