Está en la página 1de 41

Engenharia de Software II

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

especificao detalhada do software a ser desenvolvido, de tal forma que


esta especificao possa levar a direta implementao no ambiente alvo. Programao Orientada a Objetos: um modelo de programao que baseia-se em conceitos como classes, objetos, herana, etc. Seu objetivo a resoluo de problemas baseada na identificao de objetos e o processamento requerido por estes objetos, e ento na criao de simulaes destes objetos.
Eng. Software II Prof. Wander
2

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.

Paradigmas so sistemas bsicos de crenas ou vises de mundo que


guiam as pessoas, ou seja, definem a natureza das coisas, situando os indivduos no mundo e estabelece a gama de possveis relaes do mundo com suas partes. Os paradigmas definem fronteiras entre o que certo e errado. Eles funcionam como um modelo ou padro que define o comportamento e as atitudes das pessoas (Chiavenato, 2000).

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,

ocultamento de informao, etc.


Crise do Software: termo utilizado para descrever problemas associados ao modo como o software desenvolvido, como feita a manuteno e como acompanhar a demanda por mais software [Pressman, 1995].

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).

Codificao mais simples de programas aplicativos que utilizem objetos


prontos. Note que ainda continua a existir a complexidade para o construtor ou projetista de objetos. Facilidade de manuteno.

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

Objetos do mundo real

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

so variveis que representam o estado interno do objeto, so tambm


chamadas de variveis de instncia.

Atributos

Eng. Software II

Prof. Wander

13

Orientao a Objetos
Objeto O comportamento de um objeto representado pelo conjunto de

operaes que podem ser executadas sobre o objeto. As operaes so


tambm chamadas de mtodos.

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

performance, sem que seja necessrio modificar o cdigo do cliente;


A manuteno mais fcil e menos custosa; e Cria um programa legvel e bem estruturado.
Eng. Software II Prof. Wander
15

Orientao a Objetos
Objeto Formalmente, um objeto algo que possui:

Um estado, que normalmente implementado atravs de seu


conjunto de propriedades (denominadas atributos), com os valores das propriedades, mais as ligaes que o objeto pode ter com outros objetos; Uma identidade nica. Identidade a propriedade de um objeto que distingue-o de outros objetos. Identidade no o nome do objeto,

nem o endereo de memria onde ele est armazenado, um


conceito de linguagens de programao que no visvel para os usurios.
Eng. Software II Prof. Wander
16

Orientao a Objetos
Objeto Um comportamento. O comportamento define como um objeto

reage s requisies de outros objetos, em termos de mudanas de


estados e passagem de mensagens.

Eng. Software II

Prof. Wander

17

Orientao a Objetos
Objeto Um objeto possui um estado, exibe um comportamento bem-definido e

possui uma identidade nica.

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

Uma classe define a estrutura e o comportamento de qualquer objeto da


classe, atuando como um padro para a construo de objetos.
Nome da classe

Atributos

Operaes

Representao de classe no modelo


Eng. Software II Prof. Wander

21

Orientao a Objetos
Classe

A definio da classe consiste na definio dos atributos e operaes


dos objetos desta classe; Um atributo uma caracterstica de uma classe. Atributos no apresentam comportamento, eles definem a estrutura da classe; Operaes caracterizam o comportamento de um objeto, e so o nico meio de acessar, manipular e modificar os atributos de um objeto.

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

possuem relacionamento de hierarquia.


Exemplos: Uma pessoa pode ser um professor ou estudante. Um estudante pode ser de graduao ou ps-graduao.

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.

A classe que herda o comportamento chamada de subclasse e a que


definiu o comportamento superclasse. Pessoa

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);

a subclasse uma especializao da(s) superclasse(s).


Pessoa
Generalizao

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

caracterizar a subclasse de maneira diferente da superclasse.

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 :

Adicionar novas operaes:


exemplo: na classe Professor a operao ministrarAula(). Redefinir uma operao existente. exemplo: Um crculo um tipo especial de elipse cujo mtodo para calcular rea pi*r*2. Remover um comportamento. (pouco freqente) Uma combinao das trs anteriores.
Eng. Software II Prof. Wander
30

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

Ave herda de ambos

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

Classificao de [Cardelli & Wegner, 1985]:

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.

Possui duas formas: coero e sobrecarga.


Polimorfismo universal Trabalha potencialmente num conjunto infinito de tipos de modo disciplinado. Possui duas formas: paramtrico e incluso.

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.

Overloading (sobrecarga): permite que um nome de funo seja usado


mais de uma vez com diferentes tipos de parmetros. O compilador automaticamente chama a funo correta que deve ser utilizada. Exemplo: o operador + que pode ter 2 parmetros inteiros, 2 parmetros
reais, 2 cadeias de caracteres (concatenao), etc. A instruo read(x) em Pascal onde x pode ser inteiro, real ou string.

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:

A funo comprimento apresentada anteriormente.

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

También podría gustarte