Executable UML can be used to capture and create complex system designs for platformindependent code generation. Because the path from model to code is very short, executable UML permits software design teams to simulate system performance iteratively at each level of design activity. This tutorial explores how to use class and object diagrams, state charts and sequence diagrams to create renderable models of dynamic systems. It also investigates means of verifying that the model is complete and correct.