Text this: Designing a Software Maintenance System Using a Reverse Engineering Approach