Object-orientation (OO) is a powerful design methodology, which has firmly moved into the mainstream of software development. In 2002, both the IEEE John von Neumann Medal and the ACM Turing Award (the Nobel Prize for Computing) were awarded to the scholars who started the object-oriented journey back in 1967. Despite this recognition, object-orientation is far from being the dominant technology of choice. Contrary to the common belief, a recent authoritative study reports that only 30% of the software companies rely on OO technologies, and that the waterfall model is still the most popular lifecycle model of software development. In this introductory chapter, we present the fundamental concepts and principles of object-oriented modeling with UML version 2. Born out of the efforts to resolve the software crisis, UML has taken such a hegemonic role that we fear object-orientation may undergo a population “bottleneck.” In biology, this is an event that dangerously cuts the amount of genetic diversity in a population. The objectives of this chapter are as follows: 1) to present the influential ideas in the evolution of object-orientation; 2) to identify the lasting trends in object-orientation; 3) to introduce the core UML modeling languages and some of the techniques closely associated with them; and 4) to discuss some of the challenges with object-oriented modeling. In addition, we present the E-ZPass system, a system of moderate complexity used as a running example in the first five chapters of this book. This presentation is the book’s cornerstone. There is not a single chapter in the rest of this volume that does not assume an overdetermined <> reader.