Fine grained concurrency and accurate timing can be essential for embedded hardware and software systems. These requirements should be reflected in the specification and must be consistently enforced by the actual implementation. Automated synthesis of the implementation from such specifications appears to be a straightforward way to ensure this consistency. However, especially for software systems this is quite difficult, since software lacks the inherent timing and concurrency of a hardware system. Still, the same timing and concurrency requirements have to be fulfilled. Thus, we introduce a UML-based design approach that supports the synthesis of embedded hardware or software systems from essentially the tract specification. Our approach provides explicit support for specifying fine grained concurrency and microsecond accurate timing. In our approach, these properties must be ensured by the automatically derived implementation. Since this is especially hard to achieve for software ...