Capítulo 2 Paradigmas da Orientação a Objetos. 1 - Introdução MODELAGEM parte central de todas...
Transcript of Capítulo 2 Paradigmas da Orientação a Objetos. 1 - Introdução MODELAGEM parte central de todas...
![Page 1: Capítulo 2 Paradigmas da Orientação a Objetos. 1 - Introdução MODELAGEM parte central de todas as atividades de desenvolvimento implementação de um bom.](https://reader035.fdocumentos.com/reader035/viewer/2022070310/552fc101497959413d8bced5/html5/thumbnails/1.jpg)
Capítulo 2Capítulo 2
Paradigmas daParadigmas da
Orientação a ObjetosOrientação a Objetos
![Page 2: Capítulo 2 Paradigmas da Orientação a Objetos. 1 - Introdução MODELAGEM parte central de todas as atividades de desenvolvimento implementação de um bom.](https://reader035.fdocumentos.com/reader035/viewer/2022070310/552fc101497959413d8bced5/html5/thumbnails/2.jpg)
1 - Introdução1 - Introdução
MODELAGEMMODELAGEM
parte central de todas as atividades de parte central de todas as atividades de desenvolvimento desenvolvimento
implementação de um bom sistemaimplementação de um bom sistema
![Page 3: Capítulo 2 Paradigmas da Orientação a Objetos. 1 - Introdução MODELAGEM parte central de todas as atividades de desenvolvimento implementação de um bom.](https://reader035.fdocumentos.com/reader035/viewer/2022070310/552fc101497959413d8bced5/html5/thumbnails/3.jpg)
Metodologias estruturadas: Metodologias estruturadas:
Desenvolvimento de sistemas em torno de procedimentos e funções.
Os sistemas são instáveis. À medida que os requisitos se modificam e o sistema cresce, a manutenção do mesmo se torna mais trabalhosa e difícil..
Metodologias orientadas a objeto:Metodologias orientadas a objeto:
Orientam o desenvolvimento de sistemas em torno de classes e objetos.
![Page 4: Capítulo 2 Paradigmas da Orientação a Objetos. 1 - Introdução MODELAGEM parte central de todas as atividades de desenvolvimento implementação de um bom.](https://reader035.fdocumentos.com/reader035/viewer/2022070310/552fc101497959413d8bced5/html5/thumbnails/4.jpg)
Desenvolvimento reversoDesenvolvimento reverso
Programação Orientada a ObjetosProgramação Orientada a Objetos
Projeto Orientado a ObjetosProjeto Orientado a Objetos
Análise Orientada a ObjetosAnálise Orientada a Objetos
![Page 5: Capítulo 2 Paradigmas da Orientação a Objetos. 1 - Introdução MODELAGEM parte central de todas as atividades de desenvolvimento implementação de um bom.](https://reader035.fdocumentos.com/reader035/viewer/2022070310/552fc101497959413d8bced5/html5/thumbnails/5.jpg)
Mudanças na forma de conduzir a análiseMudanças na forma de conduzir a análise
Estratégia dirigida por processosEstratégia dirigida por processos
(DFD´s)(DFD´s)
Estratégia dirigida por dadosEstratégia dirigida por dados
(modelagem e semântica de dados)(modelagem e semântica de dados)
Estratégia dirigida por comportamentosEstratégia dirigida por comportamentos
(modelos de interação do sistema com (modelos de interação do sistema com agentes, sistemas, usuários externos)agentes, sistemas, usuários externos)
![Page 6: Capítulo 2 Paradigmas da Orientação a Objetos. 1 - Introdução MODELAGEM parte central de todas as atividades de desenvolvimento implementação de um bom.](https://reader035.fdocumentos.com/reader035/viewer/2022070310/552fc101497959413d8bced5/html5/thumbnails/6.jpg)
A AAO enxerga o mundo como:A AAO enxerga o mundo como:
Sistema = Sistema = população de objetos interativos população de objetos interativos
Estruturas de dadosEstruturas de dados ComportamentosComportamentos
OBJETOS
Eventos
![Page 7: Capítulo 2 Paradigmas da Orientação a Objetos. 1 - Introdução MODELAGEM parte central de todas as atividades de desenvolvimento implementação de um bom.](https://reader035.fdocumentos.com/reader035/viewer/2022070310/552fc101497959413d8bced5/html5/thumbnails/7.jpg)
Análise Orientada a ObjetosAnálise Orientada a Objetos
A mesma metodologia é aplicada tanto na análise quanto na programação
Processo de AAO: Identificar os objetos Identificar os atributos Identificar as ações desses objetos
Um sistema é formado por objetos que se relacionam entre si
![Page 8: Capítulo 2 Paradigmas da Orientação a Objetos. 1 - Introdução MODELAGEM parte central de todas as atividades de desenvolvimento implementação de um bom.](https://reader035.fdocumentos.com/reader035/viewer/2022070310/552fc101497959413d8bced5/html5/thumbnails/8.jpg)
Os Benefícios da Orientação a ObjetosOs Benefícios da Orientação a Objetos
Principal vantagem: reunir dados e processos numa mesma estrutura
Simplicidade Organização
Desenvolvedores de sistemas não precisam saber como foram implementadas as ações dos objetos
Encapsulamento
![Page 9: Capítulo 2 Paradigmas da Orientação a Objetos. 1 - Introdução MODELAGEM parte central de todas as atividades de desenvolvimento implementação de um bom.](https://reader035.fdocumentos.com/reader035/viewer/2022070310/552fc101497959413d8bced5/html5/thumbnails/9.jpg)
Alteração da maneira como o objeto realiza Alteração da maneira como o objeto realiza internamente uma tarefa internamente uma tarefa
demais desenvolvedores não precisam demais desenvolvedores não precisam alterar seus programasalterar seus programas
PRODUTIVIDADEPRODUTIVIDADE
![Page 10: Capítulo 2 Paradigmas da Orientação a Objetos. 1 - Introdução MODELAGEM parte central de todas as atividades de desenvolvimento implementação de um bom.](https://reader035.fdocumentos.com/reader035/viewer/2022070310/552fc101497959413d8bced5/html5/thumbnails/10.jpg)
Manutenção restrita ao objeto:Manutenção restrita ao objeto:
Reduz custosReduz custos
Reduz tempo de desenvolvimentoReduz tempo de desenvolvimento
Assegura manutenção eficazAssegura manutenção eficaz
![Page 11: Capítulo 2 Paradigmas da Orientação a Objetos. 1 - Introdução MODELAGEM parte central de todas as atividades de desenvolvimento implementação de um bom.](https://reader035.fdocumentos.com/reader035/viewer/2022070310/552fc101497959413d8bced5/html5/thumbnails/11.jpg)
Estrutura de objetos eficaz
permite incluir módulos no sistema que utilizem as funcionalidades já existentes sem
necessidade de reprogramação
REUSABILIDADEREUSABILIDADE
![Page 12: Capítulo 2 Paradigmas da Orientação a Objetos. 1 - Introdução MODELAGEM parte central de todas as atividades de desenvolvimento implementação de um bom.](https://reader035.fdocumentos.com/reader035/viewer/2022070310/552fc101497959413d8bced5/html5/thumbnails/12.jpg)
2 - Conceitos Básicos2 - Conceitos Básicos
2.1 - Abstração2.1 - Abstração
Consiste em separar mentalmente um ou mais Consiste em separar mentalmente um ou mais elementos de uma totalidade complexa, os quais só elementos de uma totalidade complexa, os quais só mentalmente podem subsistir fora dessa totalidade.mentalmente podem subsistir fora dessa totalidade.
É um recurso usado para entender problemas É um recurso usado para entender problemas complexos.complexos.
Princípio da abstraçãoPrincípio da abstração: isolar os objetos a serem : isolar os objetos a serem representados do ambiente em que existem e representados do ambiente em que existem e representar somente as características relevantes representar somente as características relevantes para o problema em questãopara o problema em questão
Ex.: bola de borracha, carro de fórmula 1Ex.: bola de borracha, carro de fórmula 1
![Page 13: Capítulo 2 Paradigmas da Orientação a Objetos. 1 - Introdução MODELAGEM parte central de todas as atividades de desenvolvimento implementação de um bom.](https://reader035.fdocumentos.com/reader035/viewer/2022070310/552fc101497959413d8bced5/html5/thumbnails/13.jpg)
2.2 – Objeto2.2 – Objeto
Coisa física Coisa abstrata
Objetos computacionais têm as mesmas características e comportamentos dos objetos do mundo real
Sistemas computacionais = conjunto de objetos que se interagem de maneira abstrata
![Page 14: Capítulo 2 Paradigmas da Orientação a Objetos. 1 - Introdução MODELAGEM parte central de todas as atividades de desenvolvimento implementação de um bom.](https://reader035.fdocumentos.com/reader035/viewer/2022070310/552fc101497959413d8bced5/html5/thumbnails/14.jpg)
Objetos computacionaisObjetos computacionais
Abstração dos objetos do mundo real Abstração dos objetos do mundo real
Simplificação dos objetos reaisSimplificação dos objetos reais
Exemplos:Exemplos:
BolaBola
Sacar dinheiro de caixa eletrônicoSacar dinheiro de caixa eletrônico
![Page 15: Capítulo 2 Paradigmas da Orientação a Objetos. 1 - Introdução MODELAGEM parte central de todas as atividades de desenvolvimento implementação de um bom.](https://reader035.fdocumentos.com/reader035/viewer/2022070310/552fc101497959413d8bced5/html5/thumbnails/15.jpg)
Ex.: Objetos computacionaisEx.: Objetos computacionais
Interação direta com o usuárioInteração direta com o usuário
![Page 16: Capítulo 2 Paradigmas da Orientação a Objetos. 1 - Introdução MODELAGEM parte central de todas as atividades de desenvolvimento implementação de um bom.](https://reader035.fdocumentos.com/reader035/viewer/2022070310/552fc101497959413d8bced5/html5/thumbnails/16.jpg)
Ex.: Objetos computacionaisEx.: Objetos computacionais
Documentos, planilhas, imagens, arquivos Documentos, planilhas, imagens, arquivos multimídiamultimídia
Arquivos que possuem comportamentos Arquivos que possuem comportamentos inclusos, mas dependem de aplicativos inclusos, mas dependem de aplicativos específicos para serem abertosespecíficos para serem abertos
![Page 17: Capítulo 2 Paradigmas da Orientação a Objetos. 1 - Introdução MODELAGEM parte central de todas as atividades de desenvolvimento implementação de um bom.](https://reader035.fdocumentos.com/reader035/viewer/2022070310/552fc101497959413d8bced5/html5/thumbnails/17.jpg)
Ex.: Objetos multimídiaEx.: Objetos multimídia
Possuem som, imagem, animação ou vídeo
São extremamente fiéis aos objetos reais
Comportamentos: congelar imagem, apresentação em câmera lenta
![Page 18: Capítulo 2 Paradigmas da Orientação a Objetos. 1 - Introdução MODELAGEM parte central de todas as atividades de desenvolvimento implementação de um bom.](https://reader035.fdocumentos.com/reader035/viewer/2022070310/552fc101497959413d8bced5/html5/thumbnails/18.jpg)
Ex.: Objetos de domínio do trabalhoEx.: Objetos de domínio do trabalho
Normalmente, são invisíveis aos olhos do Normalmente, são invisíveis aos olhos do usuário finalusuário final
Criados durante o desenvolvimento do Criados durante o desenvolvimento do sistemasistema
Ex.: clientes, produtos, fornecedores, serviçosEx.: clientes, produtos, fornecedores, serviços
“ “caixa”, “conta, “cheque”caixa”, “conta, “cheque”
![Page 19: Capítulo 2 Paradigmas da Orientação a Objetos. 1 - Introdução MODELAGEM parte central de todas as atividades de desenvolvimento implementação de um bom.](https://reader035.fdocumentos.com/reader035/viewer/2022070310/552fc101497959413d8bced5/html5/thumbnails/19.jpg)
Objetos identificados durante a análise
Objetos identificados durante a programação
Análise Estruturada = tradução para Análise Estruturada = tradução para estruturas de dados de programaçãoestruturas de dados de programação
![Page 20: Capítulo 2 Paradigmas da Orientação a Objetos. 1 - Introdução MODELAGEM parte central de todas as atividades de desenvolvimento implementação de um bom.](https://reader035.fdocumentos.com/reader035/viewer/2022070310/552fc101497959413d8bced5/html5/thumbnails/20.jpg)
Objeto é qualquer coisa real ou abstrata a Objeto é qualquer coisa real ou abstrata a respeito da qual armazenamos dados e respeito da qual armazenamos dados e métodos que manipulam esses dadosmétodos que manipulam esses dadosPode-se:Pode-se: CriarCriar DestruirDestruir ManipularManipular Monitorar o seu comportamentoMonitorar o seu comportamentoOs objetos podem ou não existir no mundo realOs objetos podem ou não existir no mundo realObjetos podem ocultar detalhes e dadosObjetos podem ocultar detalhes e dados ENCAPSULAMENTOENCAPSULAMENTOA única forma de interagir com os objetos é A única forma de interagir com os objetos é através de seusatravés de seus MÉTODOSMÉTODOS
![Page 21: Capítulo 2 Paradigmas da Orientação a Objetos. 1 - Introdução MODELAGEM parte central de todas as atividades de desenvolvimento implementação de um bom.](https://reader035.fdocumentos.com/reader035/viewer/2022070310/552fc101497959413d8bced5/html5/thumbnails/21.jpg)
2.2.1 - Atributos2.2.1 - AtributosÉ a abstração de uma única característica do objetoÉ a abstração de uma única característica do objeto
Nome: RexNome: Rex Nome: Sansão Nome: SansãoIdade: 2 anosIdade: 2 anos Idade: 5 anos Idade: 5 anosCor dos pêlos: preto e brancoCor dos pêlos: preto e branco Cor dos pêlos: preto e branco Cor dos pêlos: preto e brancoPeso: 8 kgPeso: 8 kg Peso: 6 kg Peso: 6 kg
Atributos de um objeto somente mudam de valor Atributos de um objeto somente mudam de valor através de estímulos internos ou externos (eventos)através de estímulos internos ou externos (eventos)Nenhum objeto pode interferir nos estados dos Nenhum objeto pode interferir nos estados dos atributos de outro objeto senão pela solicitação de atributos de outro objeto senão pela solicitação de serviços ao objeto alvoserviços ao objeto alvo
![Page 22: Capítulo 2 Paradigmas da Orientação a Objetos. 1 - Introdução MODELAGEM parte central de todas as atividades de desenvolvimento implementação de um bom.](https://reader035.fdocumentos.com/reader035/viewer/2022070310/552fc101497959413d8bced5/html5/thumbnails/22.jpg)
2.2.2 - Métodos2.2.2 - Métodos
Métodos são procedimentos ou funções que Métodos são procedimentos ou funções que realizam ações sobre os objetosrealizam ações sobre os objetos
São ações que os objetos podem realizarSão ações que os objetos podem realizar
É através dos métodos que objetos interagem É através dos métodos que objetos interagem com outros objetoscom outros objetos
Ex.: objeto assento de avião (reservar, liberar Ex.: objeto assento de avião (reservar, liberar reserva, marcar como ocupado, desmarcar reserva, marcar como ocupado, desmarcar ocupação, marcar como indisponível)ocupação, marcar como indisponível)
![Page 23: Capítulo 2 Paradigmas da Orientação a Objetos. 1 - Introdução MODELAGEM parte central de todas as atividades de desenvolvimento implementação de um bom.](https://reader035.fdocumentos.com/reader035/viewer/2022070310/552fc101497959413d8bced5/html5/thumbnails/23.jpg)
2.2.3 - Estados2.2.3 - EstadosÉ a situação em que se encontra determinado É a situação em que se encontra determinado objeto, sob a ótica daquilo que se deseja objeto, sob a ótica daquilo que se deseja controlarcontrolar
No exemplo dos assentos do avião: No exemplo dos assentos do avião: “ “reservadoreservado”,”, “ “liberadoliberado”,”, “ “ocupadoocupado”, ”, “ “disponíveldisponível”,”, “ “indisponívelindisponível”, ”, etc.etc.
![Page 24: Capítulo 2 Paradigmas da Orientação a Objetos. 1 - Introdução MODELAGEM parte central de todas as atividades de desenvolvimento implementação de um bom.](https://reader035.fdocumentos.com/reader035/viewer/2022070310/552fc101497959413d8bced5/html5/thumbnails/24.jpg)
2.3 - Classes2.3 - ClassesConjunto de objetos de mesmas característicasModelo a partir do qual são criados objetosDescreve os comportamentos de todos os objetos pertencentes a ela
![Page 25: Capítulo 2 Paradigmas da Orientação a Objetos. 1 - Introdução MODELAGEM parte central de todas as atividades de desenvolvimento implementação de um bom.](https://reader035.fdocumentos.com/reader035/viewer/2022070310/552fc101497959413d8bced5/html5/thumbnails/25.jpg)
2.3.1 - Hierarquia de Classes2.3.1 - Hierarquia de Classes
Animais
Mamíferos Peixes RépteisAves
Caninos Felinos
Lobos Gatos PanterasCães
![Page 26: Capítulo 2 Paradigmas da Orientação a Objetos. 1 - Introdução MODELAGEM parte central de todas as atividades de desenvolvimento implementação de um bom.](https://reader035.fdocumentos.com/reader035/viewer/2022070310/552fc101497959413d8bced5/html5/thumbnails/26.jpg)
2.3.2 - Instanciação2.3.2 - Instanciação
Acontece quando uma classe produz um Acontece quando uma classe produz um objetoobjeto
Uma classe é como se fosse um modelo ou Uma classe é como se fosse um modelo ou gabarito para criação de objetosgabarito para criação de objetos
![Page 27: Capítulo 2 Paradigmas da Orientação a Objetos. 1 - Introdução MODELAGEM parte central de todas as atividades de desenvolvimento implementação de um bom.](https://reader035.fdocumentos.com/reader035/viewer/2022070310/552fc101497959413d8bced5/html5/thumbnails/27.jpg)
2.3.3 - Classes puras ou abstratas2.3.3 - Classes puras ou abstratas
São classes a partir das quais objetos nunca São classes a partir das quais objetos nunca são instanciados diretamentesão instanciados diretamente
Pessoa
Cliente Fornecedor Funcionário
![Page 28: Capítulo 2 Paradigmas da Orientação a Objetos. 1 - Introdução MODELAGEM parte central de todas as atividades de desenvolvimento implementação de um bom.](https://reader035.fdocumentos.com/reader035/viewer/2022070310/552fc101497959413d8bced5/html5/thumbnails/28.jpg)
2.3.4 - Notação gráfica de classes2.3.4 - Notação gráfica de classes
Atributos
Métodos
Nome da Classe Avião
IdentificaçãoModeloNúmero passageirosCarga máximaVelocidade
DecolarAterrissarArremeterMudar de direção
![Page 29: Capítulo 2 Paradigmas da Orientação a Objetos. 1 - Introdução MODELAGEM parte central de todas as atividades de desenvolvimento implementação de um bom.](https://reader035.fdocumentos.com/reader035/viewer/2022070310/552fc101497959413d8bced5/html5/thumbnails/29.jpg)
2.4 - Encapsulamento2.4 - Encapsulamento
Dados e métodos encapsulados em uma Dados e métodos encapsulados em uma única entidade: o objetoúnica entidade: o objetoA única maneira de conhecer ou alterar os A única maneira de conhecer ou alterar os atributos de um objeto é através de seus atributos de um objeto é através de seus métodosmétodosO encapsulamento disponibiliza o objeto e O encapsulamento disponibiliza o objeto e sua funcionalidade sem a necessidade de sua funcionalidade sem a necessidade de saber como ele funciona internamente saber como ele funciona internamente (“caixa preta”)(“caixa preta”)
Ex.: Companhia telefônicaEx.: Companhia telefônica
![Page 30: Capítulo 2 Paradigmas da Orientação a Objetos. 1 - Introdução MODELAGEM parte central de todas as atividades de desenvolvimento implementação de um bom.](https://reader035.fdocumentos.com/reader035/viewer/2022070310/552fc101497959413d8bced5/html5/thumbnails/30.jpg)
2.5 - Herança2.5 - Herança
Mecanismo inteligente para aproveitamento de código
Permite compartilhamento de métodos e atributos
Assim, ao ser criada uma nova classe, esta herda os métodos e atributos de uma outra classe
Todo o código já implementado na classe pai será aproveitado
Implementar apenas os métodos e atributos que a diferenciam da classe pai.
![Page 31: Capítulo 2 Paradigmas da Orientação a Objetos. 1 - Introdução MODELAGEM parte central de todas as atividades de desenvolvimento implementação de um bom.](https://reader035.fdocumentos.com/reader035/viewer/2022070310/552fc101497959413d8bced5/html5/thumbnails/31.jpg)
ExemploExemploAnimais
Mamíferos Peixes RépteisAves
Caninos Felinos
Lobos Gatos PanterasCães
![Page 32: Capítulo 2 Paradigmas da Orientação a Objetos. 1 - Introdução MODELAGEM parte central de todas as atividades de desenvolvimento implementação de um bom.](https://reader035.fdocumentos.com/reader035/viewer/2022070310/552fc101497959413d8bced5/html5/thumbnails/32.jpg)
2.5.1 - Herança simples2.5.1 - Herança simples
Uma classe herda características de Uma classe herda características de apenas uma superclasseapenas uma superclasse
Pessoa
NomeRGCPFEndereço
Funcionário
FunçãoData deadmissãoSalário
Funcionário
FunçãoData deadmissãoSalário
Pessoa
NomeRGCPFEndereço
Cliente
Limite decréditoPreferênciasNúmerocartão
![Page 33: Capítulo 2 Paradigmas da Orientação a Objetos. 1 - Introdução MODELAGEM parte central de todas as atividades de desenvolvimento implementação de um bom.](https://reader035.fdocumentos.com/reader035/viewer/2022070310/552fc101497959413d8bced5/html5/thumbnails/33.jpg)
2.5.2 - Herança múltipla2.5.2 - Herança múltipla
Uma classe herda características de duas Uma classe herda características de duas ou mais superclassesou mais superclasses
Funcionário
FunçãoData deadmissãoSalário
Pessoa
NomeRGCPFEndereço
Cliente
Limite decréditoPreferênciasNúmerocartão
FuncionárioCliente
Desconto Especial
![Page 34: Capítulo 2 Paradigmas da Orientação a Objetos. 1 - Introdução MODELAGEM parte central de todas as atividades de desenvolvimento implementação de um bom.](https://reader035.fdocumentos.com/reader035/viewer/2022070310/552fc101497959413d8bced5/html5/thumbnails/34.jpg)
2.6 - Polimorfismo2.6 - Polimorfismo
O polimorfismo ocorre quando uma mesma mensagem, destinada a objetos diferentes, pode gerar comportamentos diferentes
Exemplo, uma mensagem “Print” para uma impressora, a partir de um editor de textos.
O polimorfismo ocorre quando um método que já foi definido no ancestral é redefinido no descendente com um comportamento diferente.
![Page 35: Capítulo 2 Paradigmas da Orientação a Objetos. 1 - Introdução MODELAGEM parte central de todas as atividades de desenvolvimento implementação de um bom.](https://reader035.fdocumentos.com/reader035/viewer/2022070310/552fc101497959413d8bced5/html5/thumbnails/35.jpg)
Exemplo de PolimorfismoExemplo de Polimorfismo
Funcionário
FunçãoData deadmissãoSalário
Pessoa
NomeRGCPFEndereço
ClienteLimite decréditoPreferênciasNúmerocartão
FuncionárioCliente
Desconto Especial
Atualizar Salário Verificar Crédito
Verificar Crédito
![Page 36: Capítulo 2 Paradigmas da Orientação a Objetos. 1 - Introdução MODELAGEM parte central de todas as atividades de desenvolvimento implementação de um bom.](https://reader035.fdocumentos.com/reader035/viewer/2022070310/552fc101497959413d8bced5/html5/thumbnails/36.jpg)
4 - Estruturas4 - Estruturas
As estruturas ajudam os analistas a arranjar os objetos de forma o domínio e a complexidade do problema em estudo possam ser melhor visualizados.
Existem dois tipos básicos de estrutura: Generalização-Especialização e Todo-Parte
![Page 37: Capítulo 2 Paradigmas da Orientação a Objetos. 1 - Introdução MODELAGEM parte central de todas as atividades de desenvolvimento implementação de um bom.](https://reader035.fdocumentos.com/reader035/viewer/2022070310/552fc101497959413d8bced5/html5/thumbnails/37.jpg)
4.1 – Estrutura Generalização - Especialização4.1 – Estrutura Generalização - Especialização
É formada por uma classe genérica no topo da estrutura e suas classes descendentes especializadas abaixo
Funcionário
FunçãoData deadmissãoSalário
Pessoa
NomeRGCPFEndereço
Cliente
Limite de créditoPreferênciasNúmero cartão
![Page 38: Capítulo 2 Paradigmas da Orientação a Objetos. 1 - Introdução MODELAGEM parte central de todas as atividades de desenvolvimento implementação de um bom.](https://reader035.fdocumentos.com/reader035/viewer/2022070310/552fc101497959413d8bced5/html5/thumbnails/38.jpg)
Exemplo de Generalização-EspecializaçãoExemplo de Generalização-Especialização
Funcionário
FunçãoData deadmissãoSalário
Pessoa
NomeRGCPFEndereço
Cliente
Limite de créditoPreferênciasNúmero cartão
FuncionárioCliente
Desconto Especial
Atualizar Salário Verificar Crédito
Verificar Crédito
![Page 39: Capítulo 2 Paradigmas da Orientação a Objetos. 1 - Introdução MODELAGEM parte central de todas as atividades de desenvolvimento implementação de um bom.](https://reader035.fdocumentos.com/reader035/viewer/2022070310/552fc101497959413d8bced5/html5/thumbnails/39.jpg)
4.2 – Estrutura Todo – Parte (Agregação)4.2 – Estrutura Todo – Parte (Agregação)
Trata da agregação ou decomposição de objetos
Estratégia útil na identificação de objetos e seus componentes diante de um determinado problema em estudo
Parte 2Parte 1
Todo
![Page 40: Capítulo 2 Paradigmas da Orientação a Objetos. 1 - Introdução MODELAGEM parte central de todas as atividades de desenvolvimento implementação de um bom.](https://reader035.fdocumentos.com/reader035/viewer/2022070310/552fc101497959413d8bced5/html5/thumbnails/40.jpg)
Exemplo de Estrutura Todo - ParteExemplo de Estrutura Todo - Parte
Motor
Automóvel
![Page 41: Capítulo 2 Paradigmas da Orientação a Objetos. 1 - Introdução MODELAGEM parte central de todas as atividades de desenvolvimento implementação de um bom.](https://reader035.fdocumentos.com/reader035/viewer/2022070310/552fc101497959413d8bced5/html5/thumbnails/41.jpg)
Estrutura Todo – Parte: CardinalidadeEstrutura Todo – Parte: Cardinalidade
0..1
4..5
Automóvel
Roda Roda RodaRoda
Automóvel
Roda
![Page 42: Capítulo 2 Paradigmas da Orientação a Objetos. 1 - Introdução MODELAGEM parte central de todas as atividades de desenvolvimento implementação de um bom.](https://reader035.fdocumentos.com/reader035/viewer/2022070310/552fc101497959413d8bced5/html5/thumbnails/42.jpg)
Estrutura Todo – Parte: Cardinalidade do motor e das Estrutura Todo – Parte: Cardinalidade do motor e das rodas do carrorodas do carro
Automóvel
Motor Roda
0..1
4..5
0..1
1..1
![Page 43: Capítulo 2 Paradigmas da Orientação a Objetos. 1 - Introdução MODELAGEM parte central de todas as atividades de desenvolvimento implementação de um bom.](https://reader035.fdocumentos.com/reader035/viewer/2022070310/552fc101497959413d8bced5/html5/thumbnails/43.jpg)
5 - Vantagens da orientação a objetos
A Orientação a Objetos consiste em conceber um sistemasistema como um todo orgânico formado por objetos que se relacionam entre si.
Esse enfoque pode ser aplicado tanto à análise de sistemas quanto à programação, e essa é uma das principais vantagens da orientação a objetos: a mesma metodologia serve tanto para a definição lógica do sistema quanto para a sua implementação.
![Page 44: Capítulo 2 Paradigmas da Orientação a Objetos. 1 - Introdução MODELAGEM parte central de todas as atividades de desenvolvimento implementação de um bom.](https://reader035.fdocumentos.com/reader035/viewer/2022070310/552fc101497959413d8bced5/html5/thumbnails/44.jpg)
5.1 - Modelagem mais natural
A aplicação dos conceitos da orientação a objetos na análise de sistemas permite uma modelagem mais natural dos processos de uma empresa ou setor, uma vez que os recursos utilizados retratam o mundo real com maior fidelidade. A transição entre as etapas de desenvolvimento do software, com a aplicação do paradigma orientado a objetos, são refinamentos sucessivos usando-se a mesma linguagem e conceitos
![Page 45: Capítulo 2 Paradigmas da Orientação a Objetos. 1 - Introdução MODELAGEM parte central de todas as atividades de desenvolvimento implementação de um bom.](https://reader035.fdocumentos.com/reader035/viewer/2022070310/552fc101497959413d8bced5/html5/thumbnails/45.jpg)
5.2 - Unificação de dados e processos Uma antiga questão da análise de sistemas é a consistência entre a definição dos dados e dos processos. Algumas metodologias recomendam definir a estrutura de dados primeiro, e em seguida definir os processos que os utilizam. Outras recomendam o oposto: procurar definir os procedimentos que o sistema automatiza e, posteriormente, identificar os dados que esses processos necessitam. Na prática, dificilmente essas duas visões são coerentes entre si. Partindo dos dados, chega-se a processos diferentes do que aqueles identificados pelo enfoque nos processos e vice-versa.
![Page 46: Capítulo 2 Paradigmas da Orientação a Objetos. 1 - Introdução MODELAGEM parte central de todas as atividades de desenvolvimento implementação de um bom.](https://reader035.fdocumentos.com/reader035/viewer/2022070310/552fc101497959413d8bced5/html5/thumbnails/46.jpg)
Em projetos maiores, quando há pessoas diferentes identificando dados e processos, essas diferenças levam a problemas que vão complicar a implementação, pois os procedimentos podem não estar completamente compatíveis com a base de dados.
Na orientação a objetos, esse problema inexiste: dados e processos são apenas componentes, e o enfoque está em identificar quais os objetos que interagem entre si no sistema.
![Page 47: Capítulo 2 Paradigmas da Orientação a Objetos. 1 - Introdução MODELAGEM parte central de todas as atividades de desenvolvimento implementação de um bom.](https://reader035.fdocumentos.com/reader035/viewer/2022070310/552fc101497959413d8bced5/html5/thumbnails/47.jpg)
Os dados são identificados procurando os atributos que definem os objetos, e os procedimentos pelas operações que estes objetos realizam. A interação entre os objetos é definida pelas estruturas e relacionamentos que são identificados.
O resultado é que em um Modelo Orientado a Objetos existe total coerência entre os dados e os processos, mesmo quando há muitas pessoas trabalhando no mesmo sistema.
![Page 48: Capítulo 2 Paradigmas da Orientação a Objetos. 1 - Introdução MODELAGEM parte central de todas as atividades de desenvolvimento implementação de um bom.](https://reader035.fdocumentos.com/reader035/viewer/2022070310/552fc101497959413d8bced5/html5/thumbnails/48.jpg)
5.3 - Consistência entre análise e desenvolvimento
A análise de sistemas convencional procura mapear separadamente as estruturas de dados e os processos que manipulam esses dados. Normalmente, isso é feito utilizando-se como ferramentas o Modelo de Entidade e Relacionamento (MER) e o Diagrama de Fluxo de Dados (DFD).
Essa modelagem do sistema é apenas conceitual, e não existe correlação direta entre as entidades conceituais levantadas na análise e as entidades físicas a serem implementadas, sejam estruturas de dados ou programas.
![Page 49: Capítulo 2 Paradigmas da Orientação a Objetos. 1 - Introdução MODELAGEM parte central de todas as atividades de desenvolvimento implementação de um bom.](https://reader035.fdocumentos.com/reader035/viewer/2022070310/552fc101497959413d8bced5/html5/thumbnails/49.jpg)
Por exemplo, um processo em um Diagrama de Fluxo de Dados, pode tanto ser implementado em vários programas como vários processos podem ser implementados em um único programa. Utilizando-se Orientação a Objetos, tanto na análise quanto na implementação, esse problema não existe. As classes e objetos definidos na análise são exatamente os mesmos que serão implementados. Dependendo do ambiente e da linguagem escolhidos, poderá ser necessário acrescentar objetos a mais na implementação, normalmente para o controle da interface, reduzindo o número de problemas oriundos de erros de tradução entre análise e implementação.
![Page 50: Capítulo 2 Paradigmas da Orientação a Objetos. 1 - Introdução MODELAGEM parte central de todas as atividades de desenvolvimento implementação de um bom.](https://reader035.fdocumentos.com/reader035/viewer/2022070310/552fc101497959413d8bced5/html5/thumbnails/50.jpg)
6.4 - Reutilização e aumento da produtividadeA produtividade do desenvolvimento de
Sistemas Orientados a Objetos é perceptível principalmente quando fazemos uso da reutilização.
A reutilização é muito mais do que simplesmente copiar funções, ou mesmo utilizar bibliotecas de funções, como se faz ainda em programas escritos usando o paradigma da Programação Estruturada.
A reutilização de objetos é, de fato, a utilização, em novos sistemas, de objetos já utilizados em sistemas anteriores, sem modificar suas estruturas internas ou mesmo sem a necessidade de fazer modificações no sistema para acomodar esses novos códigos.
![Page 51: Capítulo 2 Paradigmas da Orientação a Objetos. 1 - Introdução MODELAGEM parte central de todas as atividades de desenvolvimento implementação de um bom.](https://reader035.fdocumentos.com/reader035/viewer/2022070310/552fc101497959413d8bced5/html5/thumbnails/51.jpg)
A reutilização de objetos encapsulados contribui para o aumento da produtividade quando vamos projetar um novo sistema. Podemos, por exemplo, durante um novo projeto, depois de identificar os objetos necessários para operacionalizar o novo sistema, buscar a reutilização de objetos já implementados em sistemas anteriores.
Assim, antes de partir para a implementação dos novos objetos, podemos buscar objetos já implementados em outros sistemas e utilizá-los sem alteração de estrutura. Se já existirem esses objetos, estes podem ser incluídos no novo sistema sem custo de criação.
![Page 52: Capítulo 2 Paradigmas da Orientação a Objetos. 1 - Introdução MODELAGEM parte central de todas as atividades de desenvolvimento implementação de um bom.](https://reader035.fdocumentos.com/reader035/viewer/2022070310/552fc101497959413d8bced5/html5/thumbnails/52.jpg)
Outra solução está ligada à adaptação de objetos semelhantes de sistemas anteriores, ou seja, objetos já implementados cujas características se aproximam bastante das características dos objetos necessários, podem, com pequenas modificações, ser úteis ao novo sistema.
Outra forma de reutilização pode surgir utilizando a propriedade da herança entre objetos, ou seja, caso surja a necessidade de um novo objeto cuja idéia esteja baseada em um objeto já existente, podemos criar novos objetos herdando as características dos objetos já desenvolvidos. Essa propriedade diminui sensivelmente o custo de desenvolvimento de novos sistemas.
![Page 53: Capítulo 2 Paradigmas da Orientação a Objetos. 1 - Introdução MODELAGEM parte central de todas as atividades de desenvolvimento implementação de um bom.](https://reader035.fdocumentos.com/reader035/viewer/2022070310/552fc101497959413d8bced5/html5/thumbnails/53.jpg)
5.5 - Multidesenvolvimento5.5 - Multidesenvolvimento
O multidesenvolvimento de um sistema, utilizando técnicas estruturadas é muito delicado.Existe um verdadeiro abismo entre as fases de análise, projeto e programação.Torna-se necessário, não somente uma extensa e detalhada documentação sobre o sistema, mas também um grande entrosamento entre as diversas equipes que compõem o grupo de desenvolvimento.
![Page 54: Capítulo 2 Paradigmas da Orientação a Objetos. 1 - Introdução MODELAGEM parte central de todas as atividades de desenvolvimento implementação de um bom.](https://reader035.fdocumentos.com/reader035/viewer/2022070310/552fc101497959413d8bced5/html5/thumbnails/54.jpg)
Dentro do contexto da orientação a objetos, o multidesenvolvimento também é uma realidade facilitada, devido ao fato de que o funcionamento interno dos objetos é irrelevante para sua utilização.Isso significa que qualquer desenvolvedor pode utilizar os objetos desenvolvidos por qualquer outro, bastando para isso conhecer o conjunto de métodos necessários para utilizá-los.Se a interface não mudar, o funcionamento interno pode mudar sem afetar outras partes do sistema.
![Page 55: Capítulo 2 Paradigmas da Orientação a Objetos. 1 - Introdução MODELAGEM parte central de todas as atividades de desenvolvimento implementação de um bom.](https://reader035.fdocumentos.com/reader035/viewer/2022070310/552fc101497959413d8bced5/html5/thumbnails/55.jpg)
Na orientação a objetos temos facilidades de transposição de código que o método estruturado não possui, como por exemplo, a facilidade de manusear objetos implementados, facilidade essa existente graças ao fato de os objetos estarem encapsulados.
Essa facilidade também é verificada durante toda a implementação, pois a atenção está voltada ao objeto e não ao sistema.
Basta que os objetos sejam construídos conforme o projeto para que funcionem em harmonia com os outros objetos.
![Page 56: Capítulo 2 Paradigmas da Orientação a Objetos. 1 - Introdução MODELAGEM parte central de todas as atividades de desenvolvimento implementação de um bom.](https://reader035.fdocumentos.com/reader035/viewer/2022070310/552fc101497959413d8bced5/html5/thumbnails/56.jpg)
5.6 - Facilidades em manutenção5.6 - Facilidades em manutenção
Quando falamos em manutenção de sistemas orientados a objetos, falamos em manutenção de objetos, ou seja, a atenção é centrada no objeto, e não em um sistema com suas interligações.Todas as modificações necessárias para acomodar as novas funcionalidades do sistema em manutenção ficam restritas às modificações no comportamento dos objetos envolvidos no contexto da nova necessidade.Na programação convencional, a alteração de uma funcionalidade que é utilizada em vários lugares do sistema pode se tornar um verdadeiro pesadelo.
![Page 57: Capítulo 2 Paradigmas da Orientação a Objetos. 1 - Introdução MODELAGEM parte central de todas as atividades de desenvolvimento implementação de um bom.](https://reader035.fdocumentos.com/reader035/viewer/2022070310/552fc101497959413d8bced5/html5/thumbnails/57.jpg)
As alterações são efetuadas em um único ponto, dentro do código do objeto que implementa o comportamento a ser alterado. Não existem dúvidas quanto ao local da alteração: é só localizar o programa onde o objeto em questão está sendo implementado.A manutenção restrita ao objeto reduz custos, tempo e assegura uma manutenção eficaz. Isso é possível por que as variáveis envolvidas estão restritas aos objetos modificados e a mais nenhuma outra parte do sistema.Os sistemas que dependem dos objetos alterados não necessitarão de qualquer alteração. Essa flexibilidade também permite que novos objetos sejam acrescidos ou excluídos com iguais facilidades.