Maintaining Traceability During Object-Oriented Software Evolution: A Case Study