Executable UML is here. While it is possible today to add code to UML diagrams and then execute them, in so doing you must make a series of decisions about implementation that may not be correct, appropriate, or even knowable. Executable UML models systems at a higher level of abstraction, thus avoiding the costs involved in a premature design. This paper describes the components of executable UML and how they fit together. Special attention will be paid to translating an executable UML model into code and what decisions need to be made and what time during the process.