Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Orientao a Objetos
Eng. Software II
Prof. Wander
Orientao a Objetos
Desenvolvimento Orientado a Objetos Anlise Orientada a Objetos: o processo de construo de modelos do domnio do problema, identificando e especificando um conjunto de objetos que interagem e comportam-se conforme os requisitos estabelecidos para o sistema. Projeto Orientado a Objetos: o processo de gerao de uma
Orientao a Objetos
O que a Orientao a Objetos um paradigma para o desenvolvimento de software que baseia-se na utilizao de componentes individuais (objetos) que colaboram para construir sistemas mais complexos. A colaborao entre os objetos feita atravs do envio de mensagens. No paradigma orientado a objetos, os dados e as funes so vistas de forma agregada, no ocorrendo uma modelagem separada para cada um desses componentes. Isso favorece a modelagem mais natural.
Eng. Software II
Prof. Wander
Orientao a Objetos
O que a Orientao a Objetos Um paradigma um conjunto de regras que estabelecem fronteiras e descrevem como resolver problemas dentro desta fronteira. Um paradigma nos ajuda a organizar a e coordenar a maneira como olhamos o mundo.
Eng. Software II
Prof. Wander
Orientao a Objetos
Motivos que influenciaram Avanos na tecnologia de arquiteturas de computadores, suportando sofisticados ambientes de programao e interfaces homem-mquina. Avanos na rea de linguagens de programao como modularizao,
Eng. Software II
Prof. Wander
Orientao a Objetos
Vantagens da Orientao a Objetos Modelagem mais natural; Reutilizao de componentes (objetos); Projetos mais rpidos e com qualidade (desde que existam no mercado, objetos prontos, j testados e confiveis).
Eng. Software II
Prof. Wander
Orientao a Objetos
O que a Orientao a Objetos O paradigma de objetos baseia-se nos seguintes conceitos: Objetos Classes Herana
Polimorfismo
Eng. Software II
Prof. Wander
Orientao a Objetos
Objeto Um objeto uma entidade do mundo real que tem uma identidade. Informalmente um objeto representa uma entidade, tanto fsica quanto conceitual ou de software.
Exemplos:
Entidade Fsica: caminho, carro, bicicleta, etc. Entidade Conceitual: processo qumico, matrcula, etc. Entidade de Software: lista encadeada, arquivo, etc.
Eng. Software II
Prof. Wander
Orientao a Objetos
Objeto Cada objeto tem sua identidade, isso significa que dois objetos so distintos mesmo que eles apresentem exatamente as mesmas caractersticas.
Eng. Software II
Prof. Wander
Orientao a Objetos
Objeto Podemos afirmar que um objeto um conceito, abstrao ou entidade com limites bem definidos e um significado para a aplicao. Ao observar e estudar os objetos do mundo real, separamos mentalmente aqueles que interessam num exerccio de abstrao. Abstrao o processo ou resultado de generalizao por reduo do contedo da informao de um conceito ou fenmeno observvel, normalmente para reter apenas a informao que relevante para um propsito particular.
Eng. Software II
Prof. Wander
10
Orientao a Objetos
Objeto
Baseado nos objetos acima, se o propsito fosse desenvolver um sistema de transporte, os insetos no seriam relevantes, mas se o propsito fosse um catlogo de insetos, os veculos no fariam parte. Nos dois casos a pessoa pode exercer o papel de usurio do sistema.
Eng. Software II
Prof. Wander
11
Orientao a Objetos
Objeto Embora objetos tenham existncia prpria no mundo real, em termos de linguagem de programao um objeto necessita de um mecanismo de identificao. Esta identificao de objeto deve ser nica, uniforme e independente do
contedo do objeto.
Este um dos mecanismos que permite a criao de colees de objetos, as quais so tambm objetos em si.
Eng. Software II
Prof. Wander
12
Orientao a Objetos
Objeto A estrutura de um objeto representada em termos de atributos que
Atributos
Eng. Software II
Prof. Wander
13
Orientao a Objetos
Objeto O comportamento de um objeto representado pelo conjunto de
Operaes
Eng. Software II
Prof. Wander
14
Orientao a Objetos
Objeto: Encapsulamento Esconder os detalhes da implementao de um objeto chamado
encapsulamento.
A capacidade de um objeto possuir uma parte privada, acessvel somente atravs dos mtodos definidos na sua interface pblica; No se deve permitir acesso direto aos atributos de uma classe; Benefcios O cdigo cliente pode usar apenas a interface para a operao; Um objeto pode ser alterado, para corrigir erros, aumentar
Orientao a Objetos
Objeto Formalmente, um objeto algo que possui:
Orientao a Objetos
Objeto Um comportamento. O comportamento define como um objeto
Eng. Software II
Prof. Wander
17
Orientao a Objetos
Objeto Um objeto possui um estado, exibe um comportamento bem-definido e
Eng. Software II
Prof. Wander
18
Orientao a Objetos
Classe Objetos com a mesma estrutura e o mesmo comportamento so
agrupados em classes.
Uma classe uma abstrao que descreve propriedades importantes para uma aplicao e simplesmente ignora o resto. Cada classe descreve um conjunto (possivelmente infinito) de objetos individuais.
Classe Aves
Eng. Software II
Classe Mamferos
Prof. Wander
19
Orientao a Objetos
Classe Cada objeto dito ser uma instncia de uma classe.
Assim, cada instncia de uma classe tem seus prprios valores para
cada atributo, mas dividem os nomes dos atributos e mtodos com as outras instncias da classe. Uma classe pode ser refinada em subclasses - especializao. Ao colocar em evidencia os atributos e as operaes de um conjunto de classes, identifica-se uma superclasse generalizao. Uma subclasse herda as propriedades da superclasse e tem as suas
especficas.
Eng. Software II
Prof. Wander
20
Orientao a Objetos
Classe
Atributos
Operaes
21
Orientao a Objetos
Classe
Eng. Software II
Prof. Wander
22
Orientao a Objetos
Herana Capacidade de um novo objeto tomar atributos e operaes de um objeto existente. o compartilhamento de atributos e operaes entre as classes que
Eng. Software II
Prof. Wander
23
Orientao a Objetos
Herana um mecanismo existente no paradigma orientado a objetos que permite a reutilizao da estrutura e do comportamento de uma classe ao se definir novas classes.
Professor
Aluno
Eng. Software II
Prof. Wander
24
Orientao a Objetos
Herana Herana de Atributos e de Mtodos
Todo uma
carro placa
e e
todo uma
caminho
possuem
operao registrar()
Eng. Software II
Prof. Wander
25
Orientao a Objetos
Herana Herana de Relacionamentos
Eng. Software II
Prof. Wander
26
Orientao a Objetos
Herana No h limites no nmero de nveis na hierarquia de herana.
Eng. Software II
Prof. Wander
27
Orientao a Objetos
Herana A utilizao da herana facilita a reutilizao de cdigo porque o cdigo definido na superclasse pode ser utilizado automaticamente na subclasse; Atravs da herana possvel representar a relao de generalizao/especializao entre duas classes: a superclasse uma generalizao da(s) subclasse(s);
Professor
Eng. Software II
Aluno
Especializao
Prof. Wander
28
Orientao a Objetos
Tipos de Herana Herana estrita: as subclasses podem redefinir ou excluir propriedades herdadas da superclasse. Herana no estrita: as mudanas acima no so permitidas. Observao: se uma mudana de um tipo e/ou nome feita, pode
Eng. Software II
Prof. Wander
29
Orientao a Objetos
Tipos de Herana Herana estrita: as subclasses podem redefinir ou excluir propriedades herdadas da superclasse. Herana no estrita: as mudanas acima no so permitidas. A subclasse pode :
Orientao a Objetos
Tipos de Herana: Observaes Quando uma operao ou atributo redefinida em uma subclasse ele chamado de sobrecarregado (overloaded). Algumas linguagens de programao podem implementar a excluso de propriedades, no entanto, isto ocasiona um problema. No se sabe at onde a propriedade est sendo transmitida em uma hierarquia de
generalizao.
Na realidade em todas as linguagens onde existe alguma facilidade de cancelamento, a nica forma de verificar se alguma propriedade de uma classe ainda aceita em uma subclasse conferir cada uma das subclasses [TAK90].
Eng. Software II
Prof. Wander
31
Orientao a Objetos
Tipos de Herana: Observaes A herana deve ser utilizada visando a
reutilizao de comportamento. Ou seja, as classes derivadas devem se comportar como as superclasses. Para isso sempre deve existir uma hierarquia de Generalizao /Especializao
entre as classes.
Um objeto do tipo crculo pode ser usado no lugar de um objeto do tipo elipse porque todo crculo um tipo especial de elipse.
Circulo Elipse
Eng. Software II
Prof. Wander
32
Orientao a Objetos
Herana Mltipla Herana mltipla a possibilidade de se definir uma subclasse com mais de uma superclasse. Coisa que voa Animal
Avio
Ave
Mamfero
Eng. Software II
Prof. Wander
33
Orientao a Objetos
Herana Mltipla : Observaes Conceitualmente, a herana mltipla necessria para modelar o mundo real de maneira mais precisa; Na prtica, ela pode levar a problemas na implementao pois nem todas as linguagens de programao orientadas a objetos suportam herana mltipla;.
Eng. Software II
Prof. Wander
34
Orientao a Objetos
Polimorfismo a habilidade de variveis terem mais de um tipo. Funes so ditas polimrficas quando seus operandos podem ter mais de um tipo. Exemplo de funo polimrfica: comprimento:[A] == NUM, para todos os tipo A. Portanto: Comprimento uma funo cujo parmetro de entrada uma lista (simbolizada pelos colchetes). O tipo do contedo da lista no importa (A). A funo devolve um inteiro como sada.
Eng. Software II
Prof. Wander
35
Orientao a Objetos
Polimorfismo
Eng. Software II
Prof. Wander
36
Orientao a Objetos
Polimorfismo Polimorfismo ad hoc No existe um modo nico e sistemtico de determinar o tipo de resultado de uma funo em termos dos tipos dos seus argumentos de entrada. uma forma limitada de polimorfismo.
Eng. Software II
Prof. Wander
37
Orientao a Objetos
Polimorfismo Coero: a linguagem de programao tem um mapeamento interno entre tipos. Exemplo: se o operador + definido para somar dois nmeros reais e um
inteiro passado como parmetro ento o inteiro coagido para real.
Eng. Software II
Prof. Wander
38
Orientao a Objetos
Polimorfismo Paramtrico Uma nica funo codificada e ela trabalhar uniformemente num intervalo de tipos. Funes paramtricas tambm so chamadas de funes genricas.
Exemplo:
Incluso encontrada somente em linguagens orientadas a objetos e est relacionada com a noo de subtipo.
Exemplo: Hierarquia de classes.
Eng. Software II
Prof. Wander
39
Consideraes
Uma grande caminhada de milhares de passos comea pelos primeiros passos At a mais alta das torres tem que comear a ser construda pela base
Provrbio chins
Provrbio chins
Eng. Software II
Prof. Wander
40
Referncias Bibliogrficas
Buzato, L. E., Rubira, C. M. F. Construo de Sistemas Orientados a Objetos Confiveis, Dcima Primeira Escola de Computao, Rio de Janeiro, Julho de 1998. Cornell, G., Horstmann, C. S. Core Java. Makron Books, So Paulo, 1998. Mello, A. C. Desenvolvendo Aplicaes com UML, Brasport, Rio de Janeiro, 2002. Meyer, B., Object-oriented software construction, Prentice-Hall, 1988. Takahashi, T. Programao Orientada a Objetos, Escola de Computao, So Paulo, 1990. Rubira, C. M. F. Tpicos Especiais em Engenharia de Software II, Universidade Estadual de Campinas, notas de aula, 1996. Lima, A. S., UML 2.0 Do Requisito Soluo, Editora rica, So Paulo, 2010.
Eng. Software II
Prof. Wander
41