This document covers the fundamentals of object-oriented modeling and the Unified Modeling Language (UML), outlining key concepts such as classes, attributes, behaviors, and core features like abstraction and inheritance. It describes the software development life cycle phases (inception, elaboration, construction, and transition) and illustrates the use of various UML models for visualizing and specifying software systems. Additionally, it emphasizes UML's goals to provide a clear, process-independent, and language-independent modeling language, along with different views including user, structural, behavioral, implementation, and environment views.