In reply to verif_learner:
First your words allow still different interpretations.
If you do not specify which Kind of data you are evaluating for functional coverage nobody can answer your question. If you expect certain data in your scoreboard and you want to check this you Can define a covergroup there. This does not limit reusability.
The UVM User-Guide does not say much about functional coverage. I implement always a coverage collector in my agents, because I want to kow which kind of data where generated during randomization. Other places for functional coverage are depending on your application.