You can develop some devices and host software using only a software analyzer, but a hardware analyzer will save time. Some software analyzers are free and thus easy to try out.
This is from USB Complete:
A hardware protocol analyzer is a piece of equipment that captures the signals
in a cable segment without affecting the traffic in the segment. The analyzer
connects in a cable segment upstream from the device under test.
To enable viewing the captured traffic, the analyzer connects to a PC or logic
analyzer. A connection to a PC may use USB or another port type such as
Ethernet. Instead of a PC interface, some protocol analyzers connect to logic
analyzers from Agilent or Tektronix.
With a hardware analyzer, you can see the data in the cable down to the individual
bytes that make up each packet. There’s no question about what the host
or device did or didn’t send. For example, if the host sends an IN token packet,
you can see whether the device returned data or a NAK. You can view the packets
in every stage of a control request. Time stamps enable you to see how often
the host accesses an endpoint.
A software-only protocol analyzer runs on the host computer of the device
being tested. You can view traffic to and from any device that connects to any of
the computer’s host controllers.
A software analyzer can display driver information that a hardware analyzer
can’t access. Windows drivers communicate with USB
devices using I/O Request Packets (IRPs) that contain USB Request Blocks
(URBs). A software analyzer can show the IRPs and URBs that a driver has submitted
and the responses received from a device.
Software analyzers don’t show anything that the host-controller or hub hardware
handles on its own. For example, the analyzer won’t show how many times
an endpoint NAKed a transaction before returning an ACK or the precise time
a transaction occurred on the bus.
Some software analyzers use a filter driver that loads when the operating system
loads the driver for the device being monitored. Because the filter driver doesn’t
load until the host has enumerated the device, the analyzer can’t show the enumeration
requests and other events that occur at device attachment.
Protocol analyzers
http://janaxelson.com/development_tools.htm#analyzersUSB Complete
http://janaxelson.com/usbc.htm