This page is an excerpt from Chapter 2 of Use Case Driven Object Modeling with UML – Theory and Practice.

Domain modeling is the task of building a project glossary, or a dictionary of terms used in your project (e.g., an Internet bookstore project would include domain objects such as Book, Customer, Order, and Order Item). Its purpose is to make sure everyone on the project understands the problem space in unambiguous terms.

The domain model for a project defines the scope and forms the foundation on which to build your use cases. The domain model also provides a common vocabulary to enable clear communication among members of a project team. Expect early versions of your domain model to be wrong; as you explore each use case, you’ll “firm up” the domain model as you go.

Here’s an example of a domain model diagram:
Example domain model

The domain model is a live, collaborative artifact. It is refined and updated throughout the project, so that it always reflects the current understanding of the problem space.