An object-oriented approach to domain analysis