In reply to mperyer:
The only reason the parent argument of an ovm_component would be null is for the top-level of your test. Your test is the parent of the env(s); the env is the parent of agents and scoreboards, the agent is the parent of monitors and drivers; etc.
When you construct classes in SystemVerilog, there are no built-in parent/child structural relationships (HAS-A in OOP terminology). The OVM methodology takes care of this for you by building these parent/child data structures in the ovm_component base class.