Chapter 2 of 'Object-Oriented Software Engineering: Using UML, Patterns, and Java' introduces modeling concepts with UML, emphasizing the need for abstraction to handle software complexity. It details UML components like use case, class, sequence, and statechart diagrams, which help visualize system functionalities and structures. The chapter also discusses the relationship between types and instances, and provides foundational knowledge necessary for object-oriented modeling.