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

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

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

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