L'analisi e la progettazione orientata agli oggetti (OOAD) è un approccio di ingegneria del software che modella un sistema come un gruppo di oggetti interagenti. Ogni oggetto rappresenta un'entità di interesse nel sistema da modellare ed è caratterizzato dalla sua classe, dal suo stato (elementi di dati) e dal suo comportamento. Si possono creare vari modelli per mostrare la struttura statica, il comportamento dinamico e la distribuzione a tempo di esecuzione di questi oggetti che collaborano. Nell'OOAD il confine tra analisi e progettazione è sfumato. Uno dei motivi è la somiglianza dei costrutti di base (oggetti e classi) utilizzati nell'analisi e nella progettazione. La differenza fondamentale tra OOA e OOD è che l'OOA modella il dominio del problema, portando alla comprensione e alla specificazione del problema, mentre l'OOD modella la soluzione al problema. In altre parole, l'analisi si occupa del dominio del problema, mentre la progettazione si occupa del dominio della soluzione. Tuttavia, nell'OOAD si ritiene che la rappresentazione del dominio del problema creata dall'OOA sia in genere subordinata alla rappresentazione del dominio della soluzione. In altre parole, la rappresentazione del dominio della soluzione, creata da OOD, contiene generalmente gran parte della rappresentazione creata da OOA.