67
AOO - Análise Orientado a Objetos Professor: Marcio Gonçalves Associação Educacional Leonardo da Vinci

AOO - Análise Orientado a Objetos Professor: Marcio Gonçalves Associação Educacional Leonardo da Vinci

Embed Size (px)

Citation preview

Page 1: AOO - Análise Orientado a Objetos Professor: Marcio Gonçalves Associação Educacional Leonardo da Vinci

AOO - Análise Orientado a Objetos

Professor: Marcio Gonçalves

Associação Educacional Leonardo da Vinci

Page 2: AOO - Análise Orientado a Objetos Professor: Marcio Gonçalves Associação Educacional Leonardo da Vinci

Agenda

ApresentaçãoCenárioParadigmas da Orientação a ObjetosPrincípios Básicos

Page 3: AOO - Análise Orientado a Objetos Professor: Marcio Gonçalves Associação Educacional Leonardo da Vinci

Apresentação da disciplina

FormaçãoExperiência profissionalAtividades desenvolvidasForma de avaliação

(2 provas e 1 trabalho)

Page 4: AOO - Análise Orientado a Objetos Professor: Marcio Gonçalves Associação Educacional Leonardo da Vinci

Cenário

Surgimento da Enga. de Sofware (60) para resolver os problemas gerados pela crise do software.

As várias técnicas desenvolvidas nos anos 70 e 80 não resolveram o problema de produtividade e qualidade nos softwares.

Page 5: AOO - Análise Orientado a Objetos Professor: Marcio Gonçalves Associação Educacional Leonardo da Vinci

Cenário

Lições da década de 80. Requisitos do usuário são mais

importantes Funções e dados tem grande importância,

porém não podem estar separados

Page 6: AOO - Análise Orientado a Objetos Professor: Marcio Gonçalves Associação Educacional Leonardo da Vinci

Cenário

Realidade atual Sistemas de alta complexidade Ferramentas de desenvolvimento

drasticamente diferentes de 20 anos atrás. Sistemas maiores, mais complexos e mais

voláteis. A mudança para alcançar a qualidade e

produtividade está na reutilização.

Page 7: AOO - Análise Orientado a Objetos Professor: Marcio Gonçalves Associação Educacional Leonardo da Vinci

Paradigmas da O. Objetos

O que são objetosObjetos computacionaisOs diferentes tipos de objetosAnálise e projeto orientado a objetos?

Page 8: AOO - Análise Orientado a Objetos Professor: Marcio Gonçalves Associação Educacional Leonardo da Vinci

O que são Objetos

Podemos entender um objeto como uma “coisa” física: uma pedra, um melão, um carro.

Contudo um objeto pode também ser algo que não existe em forma física: uma equação, conta corrente.

Page 9: AOO - Análise Orientado a Objetos Professor: Marcio Gonçalves Associação Educacional Leonardo da Vinci

Objetos Computacionais

Objetos que se encontram dentro do sistemas de computador.

São abstrações do mundo real.Objetos computacionais são estruturas de

programas que contém as informações e os comportamentos que representam um objeto dentro do sistema.

Page 10: AOO - Análise Orientado a Objetos Professor: Marcio Gonçalves Associação Educacional Leonardo da Vinci

Análise e Programação OO.

Análise orientada a objetos Consiste em definir quais objetos fazem parte

de um sistema e a maneira como se comportam.

Programação orientada a objetos Consiste em utilizar objetos computacionais

para implementar as funcionalidades de um sistema.

Page 11: AOO - Análise Orientado a Objetos Professor: Marcio Gonçalves Associação Educacional Leonardo da Vinci

Por que Orientação a Objetos?

Aumento de ProdutividadeGanho de Qualidade Ganho de ConfiabilidadeConhecimento adquirido podendo ser

compartilhadoManutenibilidadeCustos

Page 12: AOO - Análise Orientado a Objetos Professor: Marcio Gonçalves Associação Educacional Leonardo da Vinci

Conceitos Básicos

AbstraçãoEncapsulamentoObjetosClassesPersistênciaHerança

Page 13: AOO - Análise Orientado a Objetos Professor: Marcio Gonçalves Associação Educacional Leonardo da Vinci

Abstração

“Ato de separar um ou mais elementos de uma totalidade complexa (coisa, representação, fato), os quais só mentalmente podem ser separados”

Ignorar aspectos não relevantes

É a capacidade de focalizar o essencial e ignorar detalhes acidentais não relacionados com o objetivo estabelecido.

Page 14: AOO - Análise Orientado a Objetos Professor: Marcio Gonçalves Associação Educacional Leonardo da Vinci

Abstração

Page 15: AOO - Análise Orientado a Objetos Professor: Marcio Gonçalves Associação Educacional Leonardo da Vinci

Encapsulamento

Ocultar aspectos não relevantes Modo de utilização dos dados e métodos é

diferente da prog. tradicional. Os dados e processos em uma única entidade. Um dos grande trunfo da POO em relação a

prog. tradicional. Permite alterações sem afetar demais partes

do sistema.

Page 16: AOO - Análise Orientado a Objetos Professor: Marcio Gonçalves Associação Educacional Leonardo da Vinci

Encapsulamento

Benefícios Modularidade - (O código é independente de outros

objetos)

Informações Privadas (um objeto tem uma interface pública que outros objetos podem utilizar. As informações do objeto são privadas) [Information Hiding]

Page 17: AOO - Análise Orientado a Objetos Professor: Marcio Gonçalves Associação Educacional Leonardo da Vinci

Encapsulamento

Page 18: AOO - Análise Orientado a Objetos Professor: Marcio Gonçalves Associação Educacional Leonardo da Vinci

Objetos São elementos reais ou abstratos (de

pensamento) que sofrem ou executam ações.

Um objeto é qualquer indivíduo, lugar, evento, coisa, tela, relatório ou conceito que seja aplicável ao sistema.

Objeto é uma entidade capaz de reter um estado (informação) e que oferece uma séria de operações (comportamentos) ou para examinar ou para afetar este estado.

Page 19: AOO - Análise Orientado a Objetos Professor: Marcio Gonçalves Associação Educacional Leonardo da Vinci

Como é um objeto?Apresenta características (Estado).Executa e sofre ações (Comportamento).Podem ser classificados por categorias

ou classes. Interagem e agrupam-se formando

sistemas (que podem ser considerados como objetos).

Page 20: AOO - Análise Orientado a Objetos Professor: Marcio Gonçalves Associação Educacional Leonardo da Vinci

Objetos

Page 21: AOO - Análise Orientado a Objetos Professor: Marcio Gonçalves Associação Educacional Leonardo da Vinci

Objetos Exemplos:

Coisas: Cadeira, Mesa, Telefone, Televisão, ...

Funções: Diretor, Funcionário, Professor, Cliente,...

Eventos: uma Festa, um Congresso, uma Aula, ...

Lugares: uma Cidade, uma Sala, um País, ....

Processos: uma Operação, um Procedimento, ...

Page 22: AOO - Análise Orientado a Objetos Professor: Marcio Gonçalves Associação Educacional Leonardo da Vinci

AtributosÉ o conjunto de características que descrevem

os objetosAtributos de uma pessoa: cor dos olhos, altura,

peso, idade, sexo…

Atributos de uma conta corrente: correntista, saldo, data de abertura…

Somente mudam através de agentes interno ou externos.

Page 23: AOO - Análise Orientado a Objetos Professor: Marcio Gonçalves Associação Educacional Leonardo da Vinci

AtributosOs valores das propriedades de um

objeto definem seu Estado.

Page 24: AOO - Análise Orientado a Objetos Professor: Marcio Gonçalves Associação Educacional Leonardo da Vinci

Exercícios Identificar pelo menos 10 objetos que

pertencem ao domínio de problema:

“Sala de Aula”

Page 25: AOO - Análise Orientado a Objetos Professor: Marcio Gonçalves Associação Educacional Leonardo da Vinci

Métodos ou Serviços (Ações)São as tarefas que o objeto pode

realizarAs ações do objeto podem interagir

com outros objetosOu podem ser ações internasAções de um cachorro: latir, babar,

correr em círculos, morder…

Page 26: AOO - Análise Orientado a Objetos Professor: Marcio Gonçalves Associação Educacional Leonardo da Vinci

Diagrama de Serviços (exemplo)

Page 27: AOO - Análise Orientado a Objetos Professor: Marcio Gonçalves Associação Educacional Leonardo da Vinci

Diagrama de Serviços (exemplo)

Page 28: AOO - Análise Orientado a Objetos Professor: Marcio Gonçalves Associação Educacional Leonardo da Vinci

Exercícios

Identificar os métodos existentes no objeto Professor

Graficar/Descrever o diagrama de serviços para o método FazerChamada do objeto Professor

Page 29: AOO - Análise Orientado a Objetos Professor: Marcio Gonçalves Associação Educacional Leonardo da Vinci

Exercícios

Page 30: AOO - Análise Orientado a Objetos Professor: Marcio Gonçalves Associação Educacional Leonardo da Vinci

Classes São os modelos a partir dos quais os objetos

são criados (Ex: Planta Estrutural) Os modelos são agrupados em classes ou

categorias por similaridade de finalidade As categorias estruturam-se hieraquicamente.

Ex.: Pessoas–Clientes-Funcionarios, Animais-Aves-Canários

Page 31: AOO - Análise Orientado a Objetos Professor: Marcio Gonçalves Associação Educacional Leonardo da Vinci

ClassesDuas categorias de bichos: “Cães” e

“Gatos”

Page 32: AOO - Análise Orientado a Objetos Professor: Marcio Gonçalves Associação Educacional Leonardo da Vinci

Classes

Page 33: AOO - Análise Orientado a Objetos Professor: Marcio Gonçalves Associação Educacional Leonardo da Vinci

Classes

Page 34: AOO - Análise Orientado a Objetos Professor: Marcio Gonçalves Associação Educacional Leonardo da Vinci

Hierarquia de Classes

Mamífero

Primata Felino

Características Comuns

Ser Humano Chimpanzé

Page 35: AOO - Análise Orientado a Objetos Professor: Marcio Gonçalves Associação Educacional Leonardo da Vinci

HerançaTudo aquilo que se herda;Aquilo que se transmite por

hereditariedade (Ex: Características genéticas dos pais).

Mamífero

Primata

Herança

Caracteristicas comuns

Ser Humano

Mamar

Possuir Pêlos

Possuir Mãos e Pés

É Inteligente

Andar ereto

Filosofar

Page 36: AOO - Análise Orientado a Objetos Professor: Marcio Gonçalves Associação Educacional Leonardo da Vinci

HerançaClasses prontas podem ser usadas

para escrever novos objetos (SuperClasse e SubClasses, Ancestrais e Descendentes)

O programador só escreve o que mudaAlterações nos ancestrais se propagam

aos descendentesMenos bugs, mais produtividade

Page 37: AOO - Análise Orientado a Objetos Professor: Marcio Gonçalves Associação Educacional Leonardo da Vinci

Herança Simples

Page 38: AOO - Análise Orientado a Objetos Professor: Marcio Gonçalves Associação Educacional Leonardo da Vinci

Herança Múltipla

Page 39: AOO - Análise Orientado a Objetos Professor: Marcio Gonçalves Associação Educacional Leonardo da Vinci

InstanciaçãoÉ quando a classe produz um objeto,

como se ela fosse um modelo para a criação de objetos.

Objetos nada mais são do que classes instanciadas.

É o que dá existência ao objeto.Cada objeto é uma instância de sua

classe

Page 40: AOO - Análise Orientado a Objetos Professor: Marcio Gonçalves Associação Educacional Leonardo da Vinci

Instanciação Fazendo uma analogia com a programação

procedural. “A estrutura de uma tabela pode ser

comparada com uma classe e cada novo registro seria um novo objeto instanciado.”

Obs: Isto só vale para efeitos de comparação, pois classe também possuem a definição dos métodos.

Page 41: AOO - Análise Orientado a Objetos Professor: Marcio Gonçalves Associação Educacional Leonardo da Vinci

Classes Puras ou AbstratasSão aquelas que nunca serão

instanciadas diretamente. Servem de apoio para o processo de

estruturação. Exemplo:

Page 42: AOO - Análise Orientado a Objetos Professor: Marcio Gonçalves Associação Educacional Leonardo da Vinci

Exercícios Identificar os objetos da Sala de AulaAgrupar os objetos em classe conforme

suas caracteristicas

Page 43: AOO - Análise Orientado a Objetos Professor: Marcio Gonçalves Associação Educacional Leonardo da Vinci

Tipos de EstruturasVisualizar Domínio e Complexidade do

problema em estudo.Tipos:

- Generalização-Especialização

- Todo-Parte

Page 44: AOO - Análise Orientado a Objetos Professor: Marcio Gonçalves Associação Educacional Leonardo da Vinci

Tipos de Estruturas

Generalização-Especialização

Page 45: AOO - Análise Orientado a Objetos Professor: Marcio Gonçalves Associação Educacional Leonardo da Vinci

Tipos de Estruturas

Generalização-Especialização

Page 46: AOO - Análise Orientado a Objetos Professor: Marcio Gonçalves Associação Educacional Leonardo da Vinci

Tipos de Estruturas

Generalização-Especialização

Page 47: AOO - Análise Orientado a Objetos Professor: Marcio Gonçalves Associação Educacional Leonardo da Vinci

Tipos de Estruturas

Todo-Parte

Page 48: AOO - Análise Orientado a Objetos Professor: Marcio Gonçalves Associação Educacional Leonardo da Vinci

Tipos de Estruturas

Todo-Parte

Page 49: AOO - Análise Orientado a Objetos Professor: Marcio Gonçalves Associação Educacional Leonardo da Vinci

Tipos de Estruturas

Todo-Parte

Page 50: AOO - Análise Orientado a Objetos Professor: Marcio Gonçalves Associação Educacional Leonardo da Vinci

Exercícios Identificar as possíveis estruturas

existentes no exercício da Sala de Aula.

Page 51: AOO - Análise Orientado a Objetos Professor: Marcio Gonçalves Associação Educacional Leonardo da Vinci

Exercícios Identificar e graficar 5 exemplos de

estruturas do tipo Generalização-Especialização

Identificar e graficar 5 exemplos de estruturas do tipo Todo-Parte

Page 52: AOO - Análise Orientado a Objetos Professor: Marcio Gonçalves Associação Educacional Leonardo da Vinci

RelacionamentosConexões de Ocorrência

Quando um atributo de um objeto contém uma referência a outro objeto.

Conexões de Mensagens Quando um objeto ativa um método de

outro objeto.

Page 53: AOO - Análise Orientado a Objetos Professor: Marcio Gonçalves Associação Educacional Leonardo da Vinci

RelacionamentosConexões de Ocorrência

Cardinalidade Conexões de Muitos para Muitos.

Page 54: AOO - Análise Orientado a Objetos Professor: Marcio Gonçalves Associação Educacional Leonardo da Vinci

RelacionamentosConexões de Ocorrência. Exemplo

Page 55: AOO - Análise Orientado a Objetos Professor: Marcio Gonçalves Associação Educacional Leonardo da Vinci

RelacionamentosConexões de Mensagens

Métodos disparados no objeto recebedor Ocorre entre objetos Entre classes somente quando um novo

objeto é criado. Pode ou não retornar alguma resposta.

Page 56: AOO - Análise Orientado a Objetos Professor: Marcio Gonçalves Associação Educacional Leonardo da Vinci

RelacionamentosConexões por Mensagem

Page 57: AOO - Análise Orientado a Objetos Professor: Marcio Gonçalves Associação Educacional Leonardo da Vinci

Relacionamentos

Page 58: AOO - Análise Orientado a Objetos Professor: Marcio Gonçalves Associação Educacional Leonardo da Vinci

Persistência Tempo em que um objeto fica em memória, tanto

na principal como na secundária.

Para tornar um objeto persistente precisamos salvá-lo em meio magnético.

A persistência de um objeto não significa que o mesmo é eterno. (ex. Cadastro de clientes)

Page 59: AOO - Análise Orientado a Objetos Professor: Marcio Gonçalves Associação Educacional Leonardo da Vinci

Polimorfismo As classes fazem a mesma operação

(método), mas de forma diferente. Ocorre quando um método definido no

ancestral é redefinido no descendente com um comportamento diferente.

Todo método definido em um ancestral pode ser acessado através dos descendentes

Page 60: AOO - Análise Orientado a Objetos Professor: Marcio Gonçalves Associação Educacional Leonardo da Vinci

PolimorfismoAs classes fazem a mesma operação

(método), mas de forma diferente.

Page 61: AOO - Análise Orientado a Objetos Professor: Marcio Gonçalves Associação Educacional Leonardo da Vinci

PolimorfismoO objeto “chamador” apenas precisa

referenciar o método.

Page 62: AOO - Análise Orientado a Objetos Professor: Marcio Gonçalves Associação Educacional Leonardo da Vinci

Polimorfismo

Page 63: AOO - Análise Orientado a Objetos Professor: Marcio Gonçalves Associação Educacional Leonardo da Vinci

AssuntoA idéia de dividir o sistema em

assuntos é proporcionar ao analista uma visão geral de um modelo.

Transformar as classes mais superiores em assuntos

Indicado o uso para modelos com mais de 35 objetos.

Page 64: AOO - Análise Orientado a Objetos Professor: Marcio Gonçalves Associação Educacional Leonardo da Vinci

Assunto

Page 65: AOO - Análise Orientado a Objetos Professor: Marcio Gonçalves Associação Educacional Leonardo da Vinci

AssuntoPossíveis assuntos do modelo.

PessoaCursoMatriculaPlano de Aula

Page 66: AOO - Análise Orientado a Objetos Professor: Marcio Gonçalves Associação Educacional Leonardo da Vinci

Assunto

Page 67: AOO - Análise Orientado a Objetos Professor: Marcio Gonçalves Associação Educacional Leonardo da Vinci

Exemplo de Instâncias

Limite de CréditoPreferências

Cliente

AtribuirSalario()AtribuirData()AtribuirFunção()

FunçãoData de AdmissãoSalário

Funcionário

AtribuirNome()AtribuirRg()AtribuirCPF()AtribuirEndereço()

NomeRgCPFEndereço

Pessoa

AtribuirNome()AtribuirRg()AtribuirCPF()AtribuirEndereço()AtribuirFunção()AtribuirData()AtribuirSalário()

NomeRgCPFEndereçoFunçãoData de AdmissãoSalário

Funcionário