A disciplina proporciona o conhecimento do paradigma de programação orientado por objetos, as suas vantagens, inconvenientes e limitações; a analise de problemas e conceção da solução segundo o paradigma orientado por objetos; a pratica para a produção de software, segundo o paradigma orientado por objetos usando a linguagem de programação Java e a linguagem de notação UML como linguagem de modelação; a utilização de padrões de desenho e algum domínio na escrita de testes de avaliação do software.