  The design productivity gap requires more efficient design methods. Software
systems have faced the same challenge and seem to have mastered it with the
introduction of more abstract design methods. The UML has become the standard
for software systems modeling and thus the foundation of new design methods.
Although the UML is defined as a general purpose modeling language, its
application to hardware and hardware/software codesign is very limited. In
order to successfully apply the UML at these fields, it is essential to
understand its capabilities and to map it to a new domain.
