This document provides an overview of object-oriented analysis and design. It discusses key concepts in object-oriented programming including objects, classes, attributes, methods, encapsulation, inheritance, polymorphism, associations, and persistence. The document uses examples like an employee payroll program to illustrate how an object-oriented approach models real-world entities as objects that can be easily modified, replaced and reused when requirements change.