• Nenhum resultado encontrado

Introdução a Orientação a Objetos UML

N/A
N/A
Protected

Academic year: 2021

Share "Introdução a Orientação a Objetos UML"

Copied!
90
0
0

Texto

(1)

Introdução a

Orientação a Objetos

UML

Baseado nos materiais dos profs: Edna Canedo Mario Massakuni Kubo

Sandro de Paula Mendonça Brasília-DF, jul/2006

Prof.: Edilberto M. Silva

http://www.edilms.eti.br

(2)

Bibliografia Recomendada

 Fowler, M. and Scott, K., UML Distilled - Applying the Standard Object

Modeling Language, Addison-Wesley, 1997.

 Quatrani, T., Modelagem Visual com Rational Rose 2000 e UML, Ciência

Moderna, 2001.

 Page-Jones, M., Fundamentos do Desenho Orientado a Objeto com

UML, Makron Books, 2001.

 Larman, C., Utilizando UML e Padrões, Editora Bookman, 2000.

 Jacobson, I., Booch, G., Rumbaugh, J., Unified Software Development

Process, Addison Wesley, 2001.

 Embley, D.W., Kurtz, B. D., Woodfield S.N., Object-Oriented Systems

Analysis, Yourdon Press, 1992.

 Shlaer, S., Mellor, S.J., Object-Oriented Systems Analysis, Yourdon

Press, 1988.

 Martin J., Odell, J.J., Object-Oriented Analysis and Design,

Prentice-Hall,1992.

 Jacobson, I., Ericsson, M., Jacobson, A., The Object Advantage:

(3)

Addison-Prof. Edilberto Silva - http://www.edilms.eti.br 3

O que é um modelo???

Casa do Cachorro

Sua Casa

Prédio

Empresa

(4)

Importância da Modelagem

Um modelo é uma simplificação da realidade;

Possibilita a visualização e o controle da

arquitetura do sistema;

Facilita o entendimento do sistema sendo

construído;

Possibilita a identificação de oportunidades para

a simplificação e a reutilização;

Possibilita a especificação da estrutura e do

comportamento do sistema;

Possibilita a documentação das decisões

(5)

Prof. Edilberto Silva - http://www.edilms.eti.br 5

Importância da Modelagem

Podemos concluir que:

 Uma empresa bem sucedida é aquela que fornece

software de qualidade e capaz de atender as necessidades dos respectivos usuários;

 A modelagem é uma parte central de todas as

atividades que levam a implantação de um bom software.

(6)

Modelagem não Orientada a Objetos

 Raízes associadas às linguagens de terceira geração;  Sistemas são decompostos em módulos;

 Módulos são decompostos em funções;

 Funções e dados são tratados em separado;  Funções são ativas e dados são passivos;

 Funções precisam conhecer as estruturas dos dados;  É problemático modificar estruturas dos dados;

(7)

Prof. Edilberto Silva - http://www.edilms.eti.br 7

Modelagem Orientada a Objetos

 Comportamento e dados são mantidos integrados;  Suportam classe, objeto e herança;

 Sugerem como identificar as classes;

 Sugerem como identificar responsabilidades;  Classes agrupadas em hierarquias;

(8)

O que é um Sistema OO?

Um sistema OO é modelado, implementado e

efetivamente funciona como um conjunto de

objetos que interagem entre si.

Obj 1

Obj 2

Obj 4 Obj 3

(9)

Prof. Edilberto Silva - http://www.edilms.eti.br 9

Resumo do Funcionamento

Os menores componentes do sistema são os

objetos

, onde são guardadas todas as

informações.

Os objetos se comunicam através de

mensagens

.

As mensagens acionam os

métodos

dos

objetos visando efetuar as ações e manipular

as informações.

(10)

ESPAÇO DE PROBLEMAS ESPAÇO DE SOLUÇÕES Gap Semântico Mundo Real Mundo Computacional

Aspectos mais importantes do mundo real para fins de representação

(11)

DADOS RESULTADOS Objetos e Operações do mundo real Objetos do mundo real Algoritmo do mundo real Objetos e Operações

abstratas Dados de Saída

Algoritmo computacional Mapeamento do

domínio de soluções

Interpretação Humana dos resultados

ESPAÇO DE PROBLEMAS

ESPAÇO DE SOLUÇÕES

(12)

ESPAÇO DE PROBLEMAS ESPAÇO DE SOLUÇÕES Mapeamento Mundo Real Mundo Computacional Processo de Identificação de Abstrações

(13)

Prof. Edilberto Silva - http://www.edilms.eti.br 13

Modelagem Conceitual

 Tarefa mais importante de um processo de

desenvolvimento de software

 realiza-se a análise do domínio da aplicação e a modelagem das

entidades e fenômenos desse domínio que o projetista considera importante, independentemente da implementação

 A tarefa de modelagem conceitual envolve dois

mecanismos:

 Abstração

(14)

Modelagem Conceitual

Objeto Observado Objeto Representado Avião ABSTRAÇÃO REPRESENTAÇÃO Operação mental para observar um domínio e capturar sua estrutura Refere-se às convenções de representação Notação gráfica, linguagem de programação

(15)

Prof. Edilberto Silva - http://www.edilms.eti.br 15

Orientação a Objetos - Abreviações

Orientação a Objetos - OO

Análise Orientada a Objetos - AOO

Projeto Orientado a Objetos - POO

(16)

Paradigma de Orientação a Objetos

 Surgiu na tentativa de solucionar problemas existentes

no desenvolvimento de Softwares Complexos e Confiáveis com baixo custo de desenvolvimento e manutenção;

 Mundo Real é formado por objetos que se interagem;  Representar esses objetos em um software é mais

natural e permanente do que representar a sua

funcionalidade (decomposição funcional), pois essa é mutável;

(17)

Prof. Edilberto Silva - http://www.edilms.eti.br 17

Paradigma de Orientação a Objetos

Idéia básica

“Nós percebemos o mundo como uma coleção de objetos que interagem entre si”

“Maneira de ver as coisas, uma nova maneira de pensar” Permite que objetos do mundo real sejam mapeados em

Objetos no computador;

Visão do DOMÍNIO da aplicação é composto por OBJETOS

que se comunicam através de MENSAGENS;

Paradigma de OO = objetos + classificação + herança + comunicação (Coad e Yourdon, 1990);

Modelo de Objetos

(18)

Tradicionalmente

 Softwares são formados por dados e procedimentos

independentes

Paradigma OO

 Softwares são formados, principalmente, por:

 Objetos

 parte interna (define o comportamento do objeto, ou seja,

especifica os métodos associados ao objeto)

 parte externa (interface - maneira que o objeto se apresenta

para outros objetos)

 Mensagens

 Diminuir o gap semântico

(19)

Prof. Edilberto Silva - http://www.edilms.eti.br 19

Paradigma de Orientação a Objetos

 O desenvolvimento orientado a objetos evoluiu no

sentido

PROGRAMAÇÃO ANÁLISE

 Conceitos desse paradigma foram introduzidos com o

surgimento da linguagem Smalltalk;

 Em seguida, surgiram métods de projeto para dar

suporte à implementação de sistemas orientados a objetos;

 Recentemente, propostas de métodos para análise e

(20)

Benefícios Principais

Reusabilidade

Redução da Complexidade

(21)

Prof. Edilberto Silva - http://www.edilms.eti.br 21

Processo de Construção de Sistemas

Reusabilidade transforma o processo de

construção de sistemas.

Processo semi-artesanal.

(22)

Processo de Montagem

Reutilização de componentes já testados

existentes em uma Biblioteca de Classes.

depois

Processo de montagemsemelhante ao da

(23)

Prof. Edilberto Silva - http://www.edilms.eti.br 23

Ganhos Decorrentes da Reusabilidade

Aumento de produtividade

 uso de bibliotecas de classes;  mecanismos de herança.

Aumento de qualidade

(24)

Redução de Complexidade

Maior facilidade de transição entre as fases

 mesmo paradigma desde a análise até a

implementação;

 não existe necessidade de conversões de modelos a

(25)

Prof. Edilberto Silva - http://www.edilms.eti.br 25

Redução de Complexidade

Facilidade de modularização

 delimitação clara e precisa das fronteiras entre os

objetos.

Facilidade de manutenção

 operações residem em um único lugar, não estando

(26)

Garantia de Integridade

Estruturas de dados só podem ser usadas por

(27)

27

(28)

OO - Paradigma

Enfoque, que representa o mundo real com

objetos e suas interações.

Coisas do mundo real: mesas, papéis, animais

Objetos têm propriedade

Mesa

 Feita de madeira  Tem uma altura

 Tem uma localização

É possível exercer ações sobre objetos

(29)

Prof. Edilberto Silva - http://www.edilms.eti.br 29

O que se ganha com Objetos??

O comportamento do objeto é independente

da representação interna dos dados;

Dados são protegidos contra acesso indevido;

Acesso, checagem de erro, etc., são

concentrados em um único lugar;

Extensibilidade, mudança de representação e

adição de novo funcionamento pode ser feito

de maneira incremental e com mínimo

distúrbio no sistema como um todo.

(30)

O que é Software OO??

Software organizado como uma coleção de

objetos

interdependentes

cada

um

fornecendo um serviço específico através de

sua interface;

Objetos são entidades comuns do domínio da

aplicação;

Sistemas modelam diretamente a interação

entre

estes

objetos

no

ambiente

computacional.

(31)

Prof. Edilberto Silva - http://www.edilms.eti.br 31

OO - Benefícios

Os conceitos de OO:

 Facilitam a reutilização de código;

 Forçam a modularização dos sistemas e;

 Oferecem suporte a dados complexos e

(32)

OO - Terminologia

A programação OO apoia-se basicamente nos

princípios de:

 Objeto  Abstração ]  Mensagem  Polimorfismo  Herança  Classe  Encapsulamento  Método  Instancia

(33)

Prof. Edilberto Silva - http://www.edilms.eti.br 33

Abstração

 Mecanismo utilizado na análise de um domínio

 Através dela, o indivíduo observa a realidade e dela

abstrai entidades, ações, etc. consideradas

essenciais para uma aplicação, excluindo todos os aspectos julgados irrelevantes

 Exemplo:

 Fotografia por satélite (imagem da realidade), despida de

alguns aspectos (por exemplo, cor, movimento)

 Da foto, pode-se abstrair um mapa, que elimina diversas

propriedades da foto (detalhes particulares de um edifício ou praça)

(34)

Abstração

“a beleza está nos olhos de quem a vê”

 O resultado de uma operação mental de abstração

depende não tanto do fenômeno observado, mas do interesse do observador

(35)

Abstração

“a beleza está nos olhos de quem a vê”

Diferentes abstrações a partir de um mesmo objeto do

mundo real Maça Peso cor da casca format CATEGORIA Receita AÇÃO

3

I, II, Cardinalidadedo conjunto

(36)

Operações de Abstração

relevantes para a modelagem conceitual

 Classificação (Instanciação)

 categorização dos objetos em grupos e/ou

classes (categoria), com base em algum conjunto de propriedades comuns

 Generalização (Especialização)

 a partir de duas categorias abstrai-se uma

categoria mais genérica

 sub-categorias satisfazem todas as propriedades

das categorias de que elas constituem especializações

(37)

Prof. Edilberto Silva - http://www.edilms.eti.br 37

Operações de Abstração

relevantes para a modelagem conceitual

 Agregação (Decomposição)

 composição de uma nova categoria como um

agregado de categorias pré-existentes

 instâncias de uma categoria (Estudante) são

compostas por instâncias de outras categorias (Nome, Endereço)

(38)

Classificação/Instanciação

Estudante de Graduação José Maria CLASSIFICAÇÃO INSTANCIAÇÃO CATEGORIA INDIVÍDUO

(39)

Prof. Edilberto Silva - http://www.edilms.eti.br 39

Classificação/Instanciação

Estudante de Graduação CATEGORIA José Maria CLASSIFICAÇÃO INSTANCIAÇÃO Membro do Coral INDIVÍDUO (Objeto)

(40)

Generalização/Especialização

Estudante GENERALIZAÇÃO ESPECIALIZAÇÃO (herança) CATEGORIA Estudante de Pós-Graduação Estudante de Graduação

(41)

Prof. Edilberto Silva - http://www.edilms.eti.br 41

Generalização/Especialização

Mamífero GENERALIZAÇÃO ESPECIALIZAÇÃO (herança) CATEGORIA CATEGORIA Baleia Atributos •sangue quente •vertebrado •vivíparo Atributos •Habitat: mar •Tempo médio de vida: 200 anos

(42)

Agregação/Decomposição

Casa AGREGAÇÃO (composição -síntese) DECOMPOSIÇÃO (refinamento -análise) CATEGORIA CATEGORIA/COMPONENTE Parede Porta

(43)

Prof. Edilberto Silva - http://www.edilms.eti.br 43

Aspectos OO

 Modelo de Objetos  Objeto  Mensagem  Método  Classe  Atributo  Protocolo  Classificação  Herança  Encapsulamento/Ocultamento de Informação  Polimorfismo

(44)

Objeto

 Tudo em Orientação Objeto é OBJETO;

 Objeto, no mundo físico, é tipicamente um produtor

e consumidor de itens de informação  máquina, comandos, arquivos, pessoas, sinais.

 Definição (mundo do sofware):

 “Qualquer coisa, real ou abstrata, a respeito da qual

armazenamos dados e métodos que os manipulam” Martin, Odell (1995);

 Abstração de uma entidade do mundo real de modo que

essa entidade possue várias características;

(45)

CACHORRO

•Raça •cor

•pedigree

(46)

 OBJETO: Entidade independente, composta por um conjunto de

elementos que a caracterizam (domínio) e as ações que agem sobre esse domínio (operações);

 OBJETO

 Visão implementacional (Takahashi, 1990)

 entidade composta por:

 ESTADO INTERNO: é onde os valores podem ser armazenados e

modificados ao longo da vida do objeto, caracterizando seu domínio;

 COMPORTAMENTO: é o conjunto de ações pré-definidas (denominadas

métodos) através das quais o objeto responderá a demanda de processamento por parte de outros objetos.

 Objeto é algo DINÂMICO: é criado por alguém, tem uma vida, e

morre ou é morto por alguém;

 Pode ter vida temporária (como a execução de um programa) ou

DOMÍNIO +

OPERAÇÕES

(47)

Prof. Edilberto Silva - http://www.edilms.eti.br 47 Mapeamento Abstração Implementação DOMÍNIO + OPERAÇÕES ABSTRAÇÃO ATRIBUTOS (Dados) + MÉTODOS (Procedimentos) IMPLEMENTAÇÃO <

<Nome do ObjetoNome do Objeto>> <Atributos>

<Atributos> <Métodos>

<Métodos>

(48)

Objeto

Resumindo:

 Pacote de informações (atributos) e a descrição de

suas operações (métodos), de modo que elas são intrínsecas ao seu domínio e este é formado pelos elementos que o caracterizam

 Exemplo:

 Objeto: Pessoa

 Atributos: Nome, Data de

Nascimento, Cor

 Métodos: Acordar, Comer, Beber

Dormir Objeto: Pessoa Objeto: Pessoa Nome Nome Data Nasc. Data Nasc. Cor Cor Acordar Acordar Comer Comer Beber Beber

(49)

Prof. Edilberto Silva - http://www.edilms.eti.br 49

Objeto

 Exemplo

 uma Pessoa e um Carro podem ser considerados como um

objeto de dados no sentido de que qualquer um deles pode ser definido em termos de um conjunto de atributos e operações

 Objetos podem relacionar-se um com o outro;  Uma Pessoa pode possuir Carro, onde o

relacionamento possuir define uma conexão específica entre Pessoa e Carro.

(50)

Objeto

=

Atributos (Dados)

+

Métodos (Funcionalidade)

+

Encapsulamento

Objeto

(51)

Prof. Edilberto Silva - http://www.edilms.eti.br 51

Exemplos de Objeto

 Uma fatura

 Uma organização

 Uma tela com a qual o usuário interage  Um desenho de engenheiro

 Um avião

 Um vôo de avião

 Uma reserva num avião

 Um processo de atendimento de pedidos  Um computador

 Um ser humano neurrótico pode ser estereotipado como um

objeto: possui memória em que valores podem ser armazenados e que condicionarão seu comportamento

(52)

Atributos

 Representam um conjunto de informações, ou seja, elementos

de dados que caracterizam um objeto;

 Descrevem as informações que ficam escondidas em um

objeto para serem exclusivamente manipulado pelas operações daquele objeto;

 São variáveis que definem o estado de um objeto, ou seja,

são entidades que caracterizam os objetos;

 Cada objeto possue seu próprio conjunto de atributos;  Exemplos:

 Objeto Pessoa

 Atributos: Nome, Cor, Data de Nascimento

 Objeto Empregado

 Atributos: No do empregado, nome, nome do departamento, salário,

(53)

Prof. Edilberto Silva - http://www.edilms.eti.br 53

Dicionário

Objeto do mundo Real

Objeto: Dicionário Objeto: Dicionário Estrutura de Dados Estrutura de Dados Adicionar Palavra Adicionar Palavra Eliminar Palavra Eliminar Palavra Encontrar Palavra Encontrar Palavra Imprimir definição Imprimir definição

Objeto

(54)

Atributo

 Um valor armazenado pelos objetos da classe

 PESSOA: nome, idade, peso, cor  CARRO: cor, peso, ano, modelo

 Cada atributo possui um valor para cada instância  João tem 24 anos e Maria tem 40

 Não se deve explicitar identificadores

(características de programação - não têm significado intrínseco)

 Não confunda identificadores internos com atributos do mundo

real

 O número do seguro social, número da chapa do carro,

número do telefone, RG não são identificadores internos. ELES são atributos, pois têm significado no mundo real. ATRIBUTOS LEGÍTIMOS

(55)

Prof. Edilberto Silva - http://www.edilms.eti.br 55

Identificação de Objetos

 O processo de análise para identificação dos objetos e

classes  DIFÍCIL DIFÍCIL 

 Basicamente a mesma tarefa realizada na análise e no

projeto de sistemas (Análise Estruturada)

 Os domínios de aplicação que naturalmente refletem

entidades concretas do mundo real se beneficiam da abordagem OO

(56)

Identificação de Objetos

Objetos podem ser:

 Entidades Externas que produzem ou consomem

informações (outros sistemas, pessoas)

 Coisas que fazem parte do domínio (relatórios,

displays, cartas)

 Eventos que ocorrem no contexto do sistema

(transferência de propriedade)

 Papéis desempenhados por pessoas (gerente,

engenheiro, vendedor)

 Unidades organizacionais (grupo, equipe)  Lugares que estabelecem o contexto do

(57)

Prof. Edilberto Silva - http://www.edilms.eti.br 57

Classificação

 Categorização em Classes;

 Quando estamos modelando um domínio,

observamos que há várias entidades similares que podem ser abstraídas em um conceito único que engloba esta similaridade;

 Operação de abstração das Similaridades;  O POO incorporou esta operação através da

abstração dos atributos e dos métodos que

caracterizam objetos semelhantes, especificando-os na CLASSE;

 Exemplo:

(58)
(59)

Prof. Edilberto Silva - http://www.edilms.eti.br 59

Classe

 Objeto: abstração de uma entidade do mundo real, através

dos atributos e operações;

 Classe: abstração de um conjunto de objetos similares do

mundo real;

 Agrupamento de objetos similares. Descreve a

 estrutura de dados, e o

 comportamento de objetos similares

 Todo objeto é uma instância de uma Classe;

 Todas as instâncias de uma classe têm valores próprios para

os atributos especificados na classe;

 Os objetos representados por determinada classe

diferenciam-se entre si pelos valores de diferenciam-seus atributos;

(60)

Classe

 Conjunto de objetos que possuem propriedades

semelhantes (ATRIBUTOS), o mesmo

comportamento (MÉTODOS), os mesmos

relacionamentos com outros objetos e a mesma semântica

 PESSOA, CARRO, CASA, VEÍCULO

 EMPRESA, PAÍS, SERES HUMANOS, HOMENS, MULHERES,

(61)

Prof. Edilberto Silva - http://www.edilms.eti.br 61

Classe

 Similar a um TAD (Tipo-Abstrato-de-Dados): pode

ser usado como base para a criação de objetos que sejam entidades executáveis com atributos e

operações (métodos) da classe.

 Sua especificação é uma especificação da interface interface

na qual as partes visíveis da entidade são expostas.

 Os objetos criados podem ter outros atributos e

procedimentos privativos  não aparecem na especificação

(62)

Livro

(63)

Prof. Edilberto Silva - http://www.edilms.eti.br 63

CASA

Portas Quartos Salas Localização Cozinha Telhado Reformar Limpar Pintar Mobiliar

Classe

(64)

Características

Exemplo de objeto do mundo real

“a coisa em que você está sentado agora”

Cadeira

Mobiliário

É membro - (instância) de uma classe maior de

(65)

Classe

Mobiliário

Custo Peso Dimensões Localização

Cadeira

Atributos

(Propriedades)

herda

Cor Comprado Vendido Modificado

Operações

(Serviços e

Métodos)

(66)

 O Objeto Cadeira é um membro (INSTÂNCIA) de uma

CLASSE maior de objetos - MOBILIÁRIO

 CLASSE de objetos descreve um conjunto de objetos

que possuem

 propriedades semelhantes (ATRIBUTOS)  mesmo comportamento (MÉTODOS)

 mesmos relacionamentos com outros objetos  mesma semântica

 Atributos GENÉRICOS da classe MOBILIÁRIO

 custo, dimensões, peso, localização, cor

 Atributos se aplicam a todos os objetos da classe

MOBILIÁRIO: mesa, cadeira, sofá, armário

(67)

Prof. Edilberto Silva - http://www.edilms.eti.br 67

 Uma vez que o objeto CADEIRA é um membro da

classe MOBILIÁRIO, HERDA todos os atributos definidos para a classe

 Todo objeto da classe MOBILIÁRIO pode ser

manipulado de diversas maneiras (OPERAÇÕES)

 comprado

 vendido, pesado

 modificado (pintar de roxo, serrar uma perna)

 Cada uma dessas operações (SERVIÇOS ou

MÉTODOS) modificará um ou mais atributos do objeto

(68)

O objeto herda todos os atributos e as operações Classe: Mobiliário Custo Dimensões Peso Cor Localização Comprar Vender Pesar Modificar Classe: Cadeira Custo Dimensões Peso Cor Localização Comprar Vender Pesar Modificar Classe: Camesa Custo Dimensões Peso Cor Localização Comprar Vender Pesar

(69)

Prof. Edilberto Silva - http://www.edilms.eti.br 69 <Nome da classe> <Nome da classe> <Atributos> <Atributos> <Operações> <Operações>

Classe

(70)

 O objeto CADEIRA e outros da mesma classe

ENCAPSULA

 dados (os valores dos atributos que definem a cadeira)  operações (as ações aplicadas para mudar os atributos da

cadeira)

(71)

CASA

Portas Quartos Salas Localização Cozinha Telhado Reformar Limpar Pintar Mobiliar

PRAIA

FAVELA

MANSÃO

Limpar Piscina Contratar Criadagem Piscina Quadras

(Superclasse)

(Subclasse)

Especialização

Generalização

(72)

Animal

Selvagem

Doméstico

Gato

Cão

De Raça

Vira-Lata

Rex

superclasse subclasse Objeto Rex

Hierarquia de Classes

(73)

Prof. Edilberto Silva - http://www.edilms.eti.br 73 Seres Humanos Nome Data_Nascimento RG Mulher Data_Último_Parto Homens Certif_Reservista

Herança

(74)

Veículo

Véiculo de

Rodas Veículo à Motor Veículo Aéreo

Bicicleta Caminhão Vapor Avião Planador

(75)

Prof. Edilberto Silva - http://www.edilms.eti.br 75

Herança - Exemplo

Veículos

Terrestres Aéreos Aquáticos

E S P E C I A L I Z A Ç Ã O G E N E R A L I Z A Ç Ã O Carro Moto Iate Lancha Avião Helicop (Classe Base) (Classes Derivadas) (Objetos)

(76)

Herança

 Mecanismo que permite definir uma nova classe

(subclasse) a partir de uma classe já existente (superclasse)

 Ao se estabelecer uma Especialização (subclasse) de

uma classe, a subclasse herda as características comuns da superclasse, isto é, a especificação dos atributos e dos métodos da superclasse passam a fazer parte da especificação dos atributos e dos métodos da subclasse

 A subclasse pode adicionar novos métodos, como também

reescrever métodos herdados

 Habilidade de um objeto derivar seus atributos (dados) e

métodos (funcionalidade) automaticamente de outro objeto

(77)

Prof. Edilberto Silva - http://www.edilms.eti.br 77

Herança

 Classes podem ser construídas a partir de outras já

existentes; facilita extensibilidade

 Quando uma mensagem é enviada para um objeto  A procura do método correspondente começa pela classe do

objeto

 Se o método não for encontrado, a procura continua na

superclasse

 A Herança pode ser de dois tipos:

 Herança Simples: quando uma classe é subclasse de somente

uma superclasse

 Herança Múltipla: quando uma classe é subclasse de várias

superclasses e conseqüentemente herda as características de cada uma delas

(78)

Exemplo: Sistema de Administração Universitária

Pessoa

Estudante

Docente

Funcionário

Graduação Pós-Graduação

Herança

Múltipla

Nome, Data de Nasc. RG

Nascer, Comer, Dormir, Morrer

RGM (registro)

(79)

Prof. Edilberto Silva - http://www.edilms.eti.br 79

Mensagem

 É o mecanismo através do qual os objetos se

comunicam, invocando as operações desejadas

 Especificação de uma operação do objeto  É composta por

 Seletor:

 nome simbólico que descreve o tipo da operação  descreve O QUE o objeto que envia quer que seja

invocado, não como deveria ser invocado

 o objeto recebedor da mensagem contém a descrição

de COMO a operação deveria ser executada

 Parâmetros:

 argumentos que uma mensagem pode conter que faz

(80)

Coma cogumelos!

Comer

Objeto: Animal

Mensagem: COMA COGUMELOS Seletor: COMA

Parâmetros: COGUMELOS

Animal Pessoa

Objeto que recebe RECEPTOR Objeto que envia

EMISSOR

(81)

Prof. Edilberto Silva - http://www.edilms.eti.br 81

Mensagem

 Um objeto (Emissor) envia uma mensagem a outro

(Receptor) que executará o serviço

 Métodos são invocados por Mensagens 

Exemplo

 A chamada de um procedimento/função em LP é uma

aproximação inicial de uma mensagem, como em P(10,20), onde

P é o seletor e os valores 10 e 20 são os parâmetros

 Diferença:

 a ação da mensagem a ser ativada depende essencialmente

(82)

Método

 Origem: LP Smalltalk

 Quando um objeto é mapeado dentro do domínio do software,

os processos que podem mudar a sua estrutura de dados são denominados Operações ou Métodos

 Métodos são invocados por Mensagens

 Cada objeto possue seu próprio conjunto de métodos  Definições:

 São procedimentos definidos e declarados que atuam sobre um

objeto ou sobre uma classe de objetos

 Descrição de uma sequência de ações a serem executadas por

um objeto

 Através dos métodos que especifica-se a um objeto COMO FAZER

alguma coisa

(83)

Prof. Edilberto Silva - http://www.edilms.eti.br 83

Interface (Protocolo)

 Objetos se comunicam através de Mensagens, que

invocam os Métodos desejados

 Parte Privada do Objeto (Visão Interna)  Métodos

 Atributos

 Parte Compartilhada do Objeto ou Interface

 corresponde à parte externa do objeto, isto é, àquela que é vista

por outros objetos com a finalidade de invocar os métodos que o objeto realiza

 agrupa um conjunto de mensagens que o objeto pode responder  as mensagens especificam quais operações sobre o objeto

(84)

Estrutura de um Objeto (classe)

<

<Nome do ObjetoNome do Objeto>>

<Atributos> <Atributos> <Métodos> <Métodos>

Interface

<Métodos> <Métodos>

Parte Privada

(85)

Prof. Edilberto Silva - http://www.edilms.eti.br 85

Ocultamento de Informação

(Information Hiding)

 Característica que visa esconder detalhes de

implementação

 É alcançado em OO, visto que o objeto, quando

implementado, possui uma parte privada (atributos e métodos) e uma parte compartilhada (interface)

 Detalhes de implementação ficam escondidos na

parte privada

 Programadores podem introduzir mudanças na

implementação de um método sem afetar o comportamento externo desse método

(86)

Encapsulamento de Dados

Objetos encapsulam suas estruturas de dados

(atributos)

Os atributos de um objeto só podem ser

manipulados pelos próprios métodos do objeto

Restringe a visibilidade do objeto mas facilita o

reuso

Os DADOS e os MÉTODOS são empacotados sob

um nome e podem ser reusados como uma

especificação ou componente de programa

(87)

Prof. Edilberto Silva - http://www.edilms.eti.br 87

Polimorfismo

 Ao receber uma mensagem para efetuar uma

Operação, é o objeto quem determina como a operação deve ser efetuada, pois ele tem o comportamento próprio

 Como a responsabilidade é do Receptor e não do

Emissor, pode acontecer que uma mesma mensagem ative métodos diferentes, dependendo da classe de objeto para onde é enviada a mensagem

 Permite a criação de várias classes com interfaces

idênticas, porém objetos e implementações diferentes

 Capacidade de uma mensagem ser executada de

acordo com as características do objeto que está recebendo o pedido de execução do serviço

(88)

Polimorfismo

 Por exemplo, a operação “<“ pode ser definida em

várias classes de números: inteiro (método de comparação interia), string (método da ordem lexicográfica)

(89)

Prof. Edilberto Silva - http://www.edilms.eti.br 89

Analogia dos conceitos principais no POO e no paradigma tradicional de programação  Linguagens Orientadas a Objetos Objeto Classe Mensagem Método Interface  Linguagens Tradicionais Valor Tipo (TAD) Chamada de Procedimento Procedimento ou Função

Conjunto de nomes e funções para um fim específico

(90)

Efetuar uma "análise gramatical" sobre a narrativa de processamento que descreva a bolha

Isolar nomes (e locuções nominais), verbos (e locuções

verbais)

Os nomes e os verbos que são sinônimos ou que não tem

nenhuma relação com o processo de modelagem são omitidos

Todos os nomes são classes ou atributos (itens de dados)

Todos os verbos são operações (métodos) - relacionamento

Referências

Documentos relacionados

Em caso de ligação do cabo de sinal coletivo de avaria ao potencial de rede: ◾ Fase SSM = Fase L1 6.6 Ligar PERIGO Existe perigo de morte devido a corrente elétrica durante

Esses elementos infinitesimais são montados, compondo um elemento de chapa (semelhantemente ao que é feito no Método dos Elementos Finitos) permitindo que uma peça possa

responsabilidade não esteja expressamente atribuída ao contraente público, nomeadamente os relativos ao transporte dos bens objecto do contrato para o respectivo local de entrega,

A adição de L-glutamina na dieta para fase inicial melhora o desenvolvimento do intestino delgado de pintos de corte e proporciona melhor qualidade intestinal

1º - HOMOLOGAR o afastamento da Professora do Magistério Superior LUCIANA DA SILVA MORAES SARDEIRO, com ônus limitado, matrícula Siape nº 2406953, lotada no Campus de Capanema,

Pouca dedicação a criação das terneiras Desenvolvimento inadequado das terneiras Produtor tem necessidade de vender o leite Substitutos do leite são muito caros. Mal

O presente artigo se propõe mostrar, a partir de uma seleção de textos de Heidegger acerca da técnica, como esta, derradeira manifestação da vontade de vontade e último

O TROLL ´ e executado somente uma vez para todas as seq¨ uˆ encias, e para todos os SSR’s encontrados de cada seq¨ uˆ encia, ´ e gravado um respectivo arquivo Experiment File (a