In reply to HanP:
Writing UVM tests is a software project. Splitting the sequence and driver into separate objects follows the separation of concerns design principle.
Typically your sequences generate the data and commands to be sent to the DUT at a high level of abstraction (the What), and the driver has the protocol and timing to deliver that to the DUT that translates the high level transaction to lower level pin wiggles. (the How).
Here is a link to some more benefits: Separation of Concerns in Software Design - Alexey Naumov