aoo - análise orientado a objetos professor: marcio gonçalves associação educacional leonardo da...
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