Object-oriented design methodology applied to the modeling of USB device and bus interface layers