A análise e concepção orientadas a objectos (OOAD) é uma abordagem de engenharia de software que modela um sistema como um grupo de objectos que interagem entre si. Cada objecto representa alguma entidade de interesse no sistema a ser modelado e é caracterizado pela sua classe, o seu estado (elementos de dados), e o seu comportamento. Vários modelos podem ser criados para mostrar a estrutura estática, o comportamento dinâmico, e o tempo de execução destes objectos colaboradores. No OOAD, a fronteira entre a análise e o design é difusa. Uma razão para esta indefinição é a semelhança das construções básicas (isto é, objectos e classes) que são utilizadas na análise e no design. A diferença fundamental entre OOA e OOD é que OOA modela o domínio do problema, levando a uma compreensão e especificação do problema, enquanto que OOD modela a solução para o problema. Isto é, a análise lida com o domínio do problema, enquanto que o design lida com o domínio da solução. No entanto, no OOAD acredita-se que a representação do domínio do problema criada pelo OOA é geralmente subsumida na representação do domínio da solução. Ou seja, a representação do domínio da solução, criada pelo OOD, contém geralmente grande parte da representação criada pelo OOA.