aoo - análise orientado a objetos professor: marcio gonçalves associação educacional leonardo da...

Post on 17-Apr-2015

110 Views

Category:

Documents

3 Downloads

Preview:

Click to see full reader

TRANSCRIPT

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

Apresentação da disciplina

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

(2 provas e 1 trabalho)

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.

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

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.

Paradigmas da O. Objetos

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

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.

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.

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.

Por que Orientação a Objetos?

Aumento de ProdutividadeGanho de Qualidade Ganho de ConfiabilidadeConhecimento adquirido podendo ser

compartilhadoManutenibilidadeCustos

Conceitos Básicos

AbstraçãoEncapsulamentoObjetosClassesPersistênciaHerança

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.

Abstração

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.

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]

Encapsulamento

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.

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

Objetos

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

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.

AtributosOs valores das propriedades de um

objeto definem seu Estado.

Exercícios Identificar pelo menos 10 objetos que

pertencem ao domínio de problema:

“Sala de Aula”

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…

Diagrama de Serviços (exemplo)

Diagrama de Serviços (exemplo)

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

Exercícios

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

ClassesDuas categorias de bichos: “Cães” e

“Gatos”

Classes

Classes

Hierarquia de Classes

Mamífero

Primata Felino

Características Comuns

Ser Humano Chimpanzé

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

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

Herança Simples

Herança Múltipla

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

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.

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

instanciadas diretamente. Servem de apoio para o processo de

estruturação. Exemplo:

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

suas caracteristicas

Tipos de EstruturasVisualizar Domínio e Complexidade do

problema em estudo.Tipos:

- Generalização-Especialização

- Todo-Parte

Tipos de Estruturas

Generalização-Especialização

Tipos de Estruturas

Generalização-Especialização

Tipos de Estruturas

Generalização-Especialização

Tipos de Estruturas

Todo-Parte

Tipos de Estruturas

Todo-Parte

Tipos de Estruturas

Todo-Parte

Exercícios Identificar as possíveis estruturas

existentes no exercício da Sala de Aula.

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

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.

RelacionamentosConexões de Ocorrência

Cardinalidade Conexões de Muitos para Muitos.

RelacionamentosConexões de Ocorrência. Exemplo

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.

RelacionamentosConexões por Mensagem

Relacionamentos

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)

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

PolimorfismoAs classes fazem a mesma operação

(método), mas de forma diferente.

PolimorfismoO objeto “chamador” apenas precisa

referenciar o método.

Polimorfismo

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.

Assunto

AssuntoPossíveis assuntos do modelo.

PessoaCursoMatriculaPlano de Aula

Assunto

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

top related