A real-world problem consists of several collections of entities interacting with one another and with their surroundings. When solving a real-world problem, a simplified representation of the problem is used to study the problem and construct a solution. This representation is called a model of the problem. A model is composed of objects, each one representing a real-world entity. The model includes descriptions about these objects and their interactions.
In developing object-oriented applications, one of the main goals is to construct abstract representations in software of some aspect of the real world. An abstract representation is a simplified description with only the relevant or essential properties of part of a real system. A model is an abstract description of some part of the problem domain. The task of designing and constructing a model is called modeling.
This chapter introduces the concepts of objects, classes, and modeling. It also introduces the Unified Modeling Language (UML) diagrams to describe simple classes and the basic structure and behavior of objects.