In the real-time and embedded world, it is now commonplace to use the UML language to target larger-scale applications written in C++, Java, and Ada. The C language is the language of choice for systems on small microprocessors, many safety and reliability-critical applications, and when run-time efficiency is at a premium. What is not generally understood is that C applications can realize significant benefits from the use of UML for their specification and design. This class discusses the benefits of a model-driven development environment and how UML can be clearly and automatically translated into deployable C code.