When reengineering legacy systems, it is crucial to assess if the legacy behavior has been preserved or how it changed due to the reengineering effort. Ideally if a legacy system ...
We present a new approach to inferring types in untyped object-oriented programs with inheritance, assignments, and late binding. It guarantees that all messages are understood, a...
Graph structures have been proved important in high level-vision since they can be used to represent structural and relational arrangements of objects in a scene. One of the probl...
Aliasing is endemic in object oriented programming. Because an object can be modified via any alias, object oriented programs are hard to understand, maintain, and analyse. Flexibl...
When a software system enters the maintenance phase, the availability of accurate and consistent information about its organization can help alleviate the difficulties of program...