Este documento describe el modelado por descomposición y análisis y diseño orientado a objetos. Explica cómo descomponer un problema en objetos en lugar de acciones y cómo crear modelos de objetos que interactúan usando notación como UML. Luego proporciona ejemplos de cómo aplicar patrones de diseño como polimorfismo, factorías e inversión de control para diseñar una aplicación bancaria que muestre movimientos de clientes.