A knowledge-based approach to object-oriented legacy code reuse | Synapse