A orientação por objetos se baseia em uma nova forma de ver e analisar o mundo, pois visualiza a forma com que as pessoas percebem e expressam a realidade que está a sua volta. As pessoas classificam e dividem os diferentes objetos existentes com base nas diferenças e semelhanças de acordo com o comportamento e características dos objetos. Pressman cita o exemplo da “cadeira” para definir o que é uma classe.
A cadeira é uma subclasse de uma classe maior, a mobília, e essa tem um conjunto de atributos que podem compor essa classe, como as dimensões, custo, peso, localização, cor. Independente de ser cadeira, mesa, todos fazem parte da mesma classe, a mobília, ou seja, a cadeira herda todos os atributos definidos para a classe, daí vem o conceito de herança. Sendo assim a orientação por objetos identifica e define cada objeto para que seja reutilizado posteriormente.
Alguns novos conceitos foram introduzidos com a OO, que teve também a sua criação pautada em linguagem de programação, como exemplo citamos a linguagem JAVA. Conceitos como o de objeto, classe (citado acima), encapsulamento, herança (citado acima), abstração, etc. No caso de objeto, pode ser real ou abstrato que contenha uma informação, para o conceito de encapsulamento vem de encapsular, que em programação orientada a objetos significa separar o programa em partes, o mais isolado possível. A ideia é tornar o software mais flexível, fácil de modificar e de criar novas implementações. A abstração representa uma entidade do mundo real e sua utilização diminui o impacto se houver alguma mudança no código, pois tem um baixo acoplamento. Esses conceitos serão tratados rigorosamente na disciplina de Programação Orientada a Objetos.
Atualmente o processo unificado é utilizado para apoiar o desenvolvimento orientado a objetos. O processo unificado intitulado hoje como RUP, foi criado pela Rational Software Corporation e foi adquirida em fevereiro pela IBM. Focaremos nossos estudos no RUP, que significa Processo Unificado Rational.