Books focusing on the principles and primitives that allow us to specify conceptual schemas (also known as domain models) for the software system we want to develop.

A conceptual schema describes the knowledge of the domain that the system will need to perform its functions. Books in this section use a particular modeling language (e.g. first-order logic, UML, E/R,…) to illustrate the modeling concepts though the focus is not on the language but on the clear description of the modeling primitives.

Conceptual Modeling of Information Systems by Antoni Olivé

I’d dare to say that this is THE book of conceptual modeling. The author covers all aspects of conceptual modeling, clearly explaining the semantics of each modeling construct and justifying their necessity by means of convincing examples (in UML) that show why they are needed to capture the richness of real-life domains in a way that software systems can understand and mimic.

This book is a mandatory reading for all those who want to be true modellers. Instead, if you are just interested in learning some UML basic concepts I’d recommend trying a more basic UML book from the UML books page .