"An intelligent BFM provides a transaction-level API, and is designed to handle concurrency and parallelism. This makes it suitable to be used in an automated test generation environment. It provides a consistent programmer''s view. It also offers a high degree of controllability for the model behavior to emulate a real device with real operating characteristics through programmable delay registers and configuration registers."
this is the explanation i found in "verification methodology manual".
in other words, its just a program, which provides an interface to the user, taking simple inputs from her/him to generate the data required by the DUT.
correct me if i'm wrong, a simple example would be a parallel-to-serial converter, which provides data to the serial input interface of the dut by taking parallel data from the user.