Você está na página 1de 5

A orientação a objetos

A orientação a objetos pode ser caracterizada como uma filosofia ou


maneira de refletir sobre o ambiente que nos cerca e que observamos
quando temos o intuito de desenvolver algum software. Ou também
como “uma abordagem para desenvolvimento de software que
organiza os problemas e suas soluções como um conjunto de objetos
distintos”. (Pfleeger)
Para que um sistema seja considerado orientado a objetos, ele deve
possuir embutidos nele sete características da orientação a objetos:
identidade, encapsulamento, abstração, classificação, herança,
polimorfismo, e persistência. (Pfleeger)

Identificação: é a característica de diferenciar os objetos constituintes


do sistema, sendo através de um nome ou de uma referência.

Encapsulamento: prevê a proteção dos atributos e operações dos


objetos através da ocultação de aspectos de funcionamento interno
dos objetos mediante aos seus usuários. O usuário sabe o que o
objeto pode fazer, mas não sabem como o objeto realiza suas
funções ou gerencia seus dados.

Abstração: a abstração significa reconhecer as principais


características de um objeto ou conjunto de objetos, e organizar
essas características de modo a manter um padrão na construção de
objetos.

Classificação: consiste em agrupar objetos que tem atributos e


comportamentos de objetos com características em comum dentro de
um mesmo objeto.
Herança: refere-se à capacidade de construir novos objetos a partir
de objetos já existentes, formando uma hierarquia de objetos onde
um objeto filho (subclasse) herda os atributos e comportamentos de
seu objeto pai (superclasse).

Polimorfismo: é a capacidade de representar objetos de mesma


origem ou filiação, mas com comportamentos distintos. Ou seja, uma
objeto filho pode implementar de maneira distinta os
comportamentos herdados de seu objeto pai.

Persistência: é a habilidade que os objetos têm de salvar e preservar


a si próprios ao longo do tempo. Também descrita por Pfleeger como
“a capacidade do nome, estado ou comportamento de um objeto de
transcender tempo ou espaço”.

Ao longo do projeto e principalmente durante a implementação, os


conceitos da orientação a objetos costumam se relacionar permitindo
o uso de vários deles quase que ao mesmo tempo e o surgimento de
diversos tipos de representações orientadas a objetos. Por exemplo:
podemos criar classes genéricas para representar um grupo de
objetos e criar classes especializadas que herdam as características
da classe pai e apenas acrescentam suas próprias características, e
tanto as classes pais como filhas devem receber um nome para a sua
identificação.

Vantagens da orientação a objetos



Confiabilidade
O software construído com classes estáveis, testadas e aprovadas, é
menos suscetível a erros do que o software inventado do nada. A
integridade: as estruturas de dados só podem ser usadas com
métodos específicos.
Potencialidade
Como um sistema de software funciona em circunstâncias anormais,
ou como o programa reage frente a ocorrências possíveis, mas não
esperadas.
Extensibilidade
Facilidade com que um sistema de software pode adaptar-se às
mudanças introduzidas nas especificações.
Reutilização
As classes são projetadas de forma que possam ser reaproveitadas
em muitos sistemas.
” (Rezende, Denis Alcides, p189)

O Processo de Desenvolvimento Orientado a Objetos

Levantamento de Requisitos
O levantamento de requisitos objetiva entender o problema a ser
solucionado e a realidade em que ele se situa. Os requisitos
costumam ser descritos em linguagem natural e posteriormente são
analisados a fim de identificar os objetos envolvidos no problema e
na sua solução.
Entretanto, muitas vezes a descrição do problema e dos requisitos do
sistema, com o uso de conceitos OO, é a mesma ou similar às
primeiras etapas do projeto do sistema orientado a objetos. Logo,
durante o desenvolvimento orientado a objetos, o processo de
especificar os requisitos pode, na verdade constituir o primeiro passo
para o projeto do sistema. Ou seja, os objetos podem ser
identificados logo durante o levantamento dos requisitos.(Pfleeger
ind)

Projeto do Sistema
O projeto de um sistema orientado a objetos preocupa=se em refinar
o levantamento de requisitos do sistema. E costuma incluir tarefas
como: combinar os modelos de análise; obter as operações sobre as
classes; projetar algoritmos para a implementar tais operações;
otimizar o caminho de acesso aos dados; implementar controles para
as interações externas; ajustar a estrutura de classes para aumentar
a herança; projetar associações adequadas; determinar a
representação dos objetos; empacotar classes e associações em
módulos. (Rezende di)
Dando destaque para:
1- Determinar a representação dos objetos detalhadamente,
incluindo seus atributos e comportamentos.
2- Identificar as inter-relações entre os objetos: hierarquias,
polimorfismos, etc.
Assim, “o projeto do sistema é considerado uma abstração de alto
nível do que eventualmente será o projeto do programa.” (Pfleeger)

Não abordaremos a implementação orientada a objetos nesse artigo,


mantendo o foco nos conceitos de orientação a objetos e no projeto
de software orientado a objetos, deixando a implementação orientada
a objetos para trabalhos posteriores.
I m p l e m e n t a ç ã o

D ia g r a m a s U M L

P r o j e t o d o S i s t e m a

L e v a n t a m e n t o d o s R e q u is i t o

C o n c e it o s d e O r ie n t a ç ã o a

C o n c e ito s P r o j e t o I m p le m e n ta ç ã o

Você também pode gostar