This introduction presents an overview of key concepts discussed in the subsequent chapters of this book. The book aims to study and provide readers with principals involved in building and writing agent-based models from a software engineering perspective. Presenting itself primarily as a modeling and simulations tool, it covers computational challenges of software engineering, parallelization, verification and validation, all of which are issues for computer and other scientists when developing reliable agent-based models. To explain details from a software engineering perspective, the book focuses on an established agent-based modeling framework, FLAME, as a guide to understand and build agent-based modeling (ABM) approaches. It discusses cellular automata models which have stemmed from basics of computational theory, mathematics and biology. Multiple disciplines use complex systems to explain unusual phenomena and systems characteristics by artificially creating large simulated systems modeling real systems, aiding understanding on how these systems behave.