A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Capítulo 2 Paradigmas da Orientação a Objetos

Apresentações semelhantes


Apresentação em tema: "Capítulo 2 Paradigmas da Orientação a Objetos"— Transcrição da apresentação:

1 Capítulo 2 Paradigmas da Orientação a Objetos

2 parte central de todas as atividades de desenvolvimento
1 - Introdução MODELAGEM parte central de todas as atividades de desenvolvimento implementação de um bom sistema

3 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: Orientam o desenvolvimento de sistemas em torno de classes e objetos.

4 Desenvolvimento reverso Programação Orientada a Objetos
Projeto Orientado a Objetos Análise Orientada a Objetos

5 Mudanças na forma de conduzir a análise
Estratégia dirigida por processos (DFD´s) Estratégia dirigida por dados (modelagem e semântica de dados) Estratégia dirigida por comportamentos (modelos de interação do sistema com agentes, sistemas, usuários externos)

6 OBJETOS A AAO enxerga o mundo como: Sistema =
população de objetos interativos OBJETOS Estruturas de dados Comportamentos Eventos

7 Aná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

8 Os 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

9 Alteração da maneira como o objeto realiza internamente uma tarefa
demais desenvolvedores não precisam alterar seus programas PRODUTIVIDADE

10 Manutenção restrita ao objeto:
Reduz custos Reduz tempo de desenvolvimento Assegura manutenção eficaz

11 Estrutura de objetos eficaz
permite incluir módulos no sistema que utilizem as funcionalidades já existentes sem necessidade de reprogramação REUSABILIDADE

12 2 - Conceitos Básicos 2.1 - Abstração Consiste em separar mentalmente um ou mais elementos de uma totalidade complexa, os quais só mentalmente podem subsistir fora dessa totalidade. É um recurso usado para entender problemas complexos. Princípio da abstração: isolar os objetos a serem representados do ambiente em que existem e representar somente as características relevantes para o problema em questão Ex.: bola de borracha, carro de fórmula 1

13 2.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

14 Objetos computacionais Abstração dos objetos do mundo real
Simplificação dos objetos reais Exemplos: Bola Sacar dinheiro de caixa eletrônico

15 Ex.: Objetos computacionais
Interação direta com o usuário

16 Ex.: Objetos computacionais
Documentos, planilhas, imagens, arquivos multimídia Arquivos que possuem comportamentos inclusos, mas dependem de aplicativos específicos para serem abertos

17 Ex.: 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

18 Ex.: Objetos de domínio do trabalho
Normalmente, são invisíveis aos olhos do usuário final Criados durante o desenvolvimento do sistema Ex.: clientes, produtos, fornecedores, serviços “caixa”, “conta, “cheque”

19 Objetos identificados durante a análise
Objetos identificados durante a programação Análise Estruturada = tradução para estruturas de dados de programação

20 Monitorar o seu comportamento
Objeto é qualquer coisa real ou abstrata a respeito da qual armazenamos dados e métodos que manipulam esses dados Pode-se: Criar Destruir Manipular Monitorar o seu comportamento Os objetos podem ou não existir no mundo real Objetos podem ocultar detalhes e dados ENCAPSULAMENTO A única forma de interagir com os objetos é através de seus MÉTODOS

21 2.2.1 - Atributos É a abstração de uma única característica do objeto
Nome: Rex Nome: Sansão Idade: 2 anos Idade: 5 anos Cor dos pêlos: preto e branco Cor dos pêlos: preto e branco Peso: 8 kg Peso: 6 kg Atributos de um objeto somente mudam de valor através de estímulos internos ou externos (eventos) Nenhum objeto pode interferir nos estados dos atributos de outro objeto senão pela solicitação de serviços ao objeto alvo

22 São ações que os objetos podem realizar
Métodos Métodos são procedimentos ou funções que realizam ações sobre os objetos São ações que os objetos podem realizar É através dos métodos que objetos interagem com outros objetos Ex.: objeto assento de avião (reservar, liberar reserva, marcar como ocupado, desmarcar ocupação, marcar como indisponível)

23 Estados É a situação em que se encontra determinado objeto, sob a ótica daquilo que se deseja controlar No exemplo dos assentos do avião: “reservado”, “liberado”, “ocupado”, “disponível”, “indisponível”, etc.

24 2.3 - Classes Conjunto de objetos de mesmas características Modelo a partir do qual são criados objetos Descreve os comportamentos de todos os objetos pertencentes a ela

25 2.3.1 - Hierarquia de Classes

26 Instanciação Acontece quando uma classe produz um objeto Uma classe é como se fosse um modelo ou gabarito para criação de objetos

27 2.3.3 - Classes puras ou abstratas
São classes a partir das quais objetos nunca são instanciados diretamente

28 2.3.4 - Notação gráfica de classes
Atributos Métodos Nome da Classe Avião Identificação Modelo Número passageiros Carga máxima Velocidade Decolar Aterrissar Arremeter Mudar de direção

29 2.4 - Encapsulamento Dados e métodos encapsulados em uma única entidade: o objeto A única maneira de conhecer ou alterar os atributos de um objeto é através de seus métodos O encapsulamento disponibiliza o objeto e sua funcionalidade sem a necessidade de saber como ele funciona internamente (“caixa preta”) Ex.: Companhia telefônica

30 2.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.

31 Exemplo

32 Uma classe herda características de apenas uma superclasse
Herança simples Uma classe herda características de apenas uma superclasse

33 Herança múltipla Uma classe herda características de duas ou mais superclasses

34 2.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.

35 Exemplo de Polimorfismo

36 4 - 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

37 4.1 – Estrutura Generalização - Especialização
É formada por uma classe genérica no topo da estrutura e suas classes descendentes especializadas abaixo

38 Exemplo de Generalização-Especialização

39 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

40 Exemplo de Estrutura Todo - Parte

41 Estrutura Todo – Parte: Cardinalidade

42 Estrutura Todo – Parte: Cardinalidade do motor e das rodas do carro

43 5 - Vantagens da orientação a objetos
A Orientação a Objetos consiste em conceber um sistema 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.

44 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

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

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

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

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

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

50 6.4 - Reutilização e aumento da produtividade
A 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.

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

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

53 5.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.

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

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

56 5.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.

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


Carregar ppt "Capítulo 2 Paradigmas da Orientação a Objetos"

Apresentações semelhantes


Anúncios Google