En esta etapa se debe descomponer el problema en subproblemas más pequeños para comprender la forma de resolver el mismo. En esta etapa se debe analizar la especificación del problema para identificar posibles objetos involucrados. Para cada objeto hay que ver cual es el papel o responsabilidad que lleva a cabo. Luego de tener claros los objetos involucrados hay que analizar cuales acciones llevan a cabo, y cuales características tienen. Además hay que analizar cuales son los procesos de más alto nivel y quien los lleva a cabo, y como involucran estos procesos a todos los demás objetos.
Como producto de esta etapa debe quedar una descripción de los objetos involucrados y la forma en que interactuan para resolver el problema.
El problema debe quedar planteado asignando responsabilidades a cada tipo de objeto y dejando claras las acciones y alcance de cada uno. Además se deben mencionar cuales son los atributos necesarios de las clases que intervienen. A diferencia del diseño en este punto solo se mencionan lo que "se require" de cada clase y cada método. En la etapa de diseño se toman decisiones como definición de parámetros, tipos, modularización, y demás detalles estructurales. El analisis se refiere al problema, el diseño se refiere a lo que va a ser la solución. En muchos casos el producto de esta etapa mantiene una estructura similar al diseño planteado.