A unique guide to the design and implementation of simulation software This book offers a concise introduction to the art of building simulation software, collecting the most important concepts and algorithms in one place. Written for both individuals new to the field of modeling and simulation as well as experienced practitioners, this guide explains the design and implementation of simulation software used in the engineering of large systems while presenting the relevant mathematical elements, concept discussions, and code development. The book approaches the topic from the perspective of Zeigler's theory of modeling and simulation, introducing the theory's fundamental concepts and showing how to apply them to engineering problems. Readers will learn five necessary skills for building simulations of complicated systems: Working with fundamental abstractions for simulating dynamic systems Developing basic simulation algorithms for continuous and discrete event models Combining continuous and discrete event simulations into a coherent whole Applying strategies for testing a simulation Understanding the theoretical foundations of the modeling constructs and simulation algorithms The central chapters of the book introduce, explain, and demonstrate the elements of the theory that are most important for building simulation tools. They are bracketed by applications to robotics, control and communications, and electric power systems; these comprehensive examples clearly illustrate how the concepts and algorithms are put to use. Readers will explore the design of object-oriented simulation programs, simulation using multi-core processors, and the integration of simulators into larger software systems. The focus on software makes this book particularly useful for computer science and computer engineering courses in simulation that focus on building simulators. It is indispensable reading for undergraduate and graduate students studying modeling and simulation, as well as for practicing scientists and engineers involved in the development of simulation tools.