Model Driven Architecture for Reverse Engineering Technologies