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

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

Orientação Objeto Marcely Dias marcely.dias@unibratec.edu.br.

Apresentações semelhantes


Apresentação em tema: "Orientação Objeto Marcely Dias marcely.dias@unibratec.edu.br."— Transcrição da apresentação:

1 Orientação Objeto Marcely Dias

2 Análise Orientada a Objeto – AOO - Cenário
Mudança do enfoque das funções para os dados Preocupação em modelar de forma mais detalhada o sistema Análise mais próxima da realidade Facilidade na comunicação com o usuário Objetos como entidades do mundo real Objetos com estrutura e comportamento e que se comunicam Dificuldades em fazer alterações nas estruturas de dados nas abordagens tradicionais “Se eu alterar a definição desse dado, quais programas serão afetados?”

3 AOO - Cenário Trabalha com conceitos já conhecidos - Modularidade, Abstração, Encapsulamento, etc Orientação a objetos apesar de antiga não era utilizada por falta de pessoas treinadas, interesse em manter a cultura adquirida, ferramentas imaturas. Isso começa a se resolver. O mundo real é composto por objetos. Cada objeto tem propriedades e comportamentos. Então porquê não desenvolver programas que simulem no computador os objetos do mundo real com suas propriedades e comportamentos?

4 AOO Segundo Yourdon, “Um sistema construído usando um método Orientado a Objetos é aquele cujos componentes são partes encapsuladas de dados e funções, que podem herdar atributos e comportamentos de outros componentes da mesma natureza, e cujos componentes comunicam-se entre si por meio de mensagens.” Objetivo: Encontrar os objetos, organizá-los, descrever como interagem através de mensagens, definir operações de seus comportamentos.

5 AOO Nos métodos tradicionais de análise, o comportamento do sistema e seus dados eram considerados separadamente. Com orientação a objetos, comportamento e dados são integrados, assim encapsulando detalhes internos de um objeto dos demais. Análise Estruturada e Essencial Orientada a Objetos Enfoque Conjunto de programas que executam processos Sobre dados Conjunto de “entidades” que têm características e Comportamentos próprios Foco Sistema Objeto

6

7 AOO Concentra-se nos aspectos essenciais do objeto sem detalhamento, focando em suas características e o que ele faz; Impede que um sistema se torne tão interdependente que uma pequena alteração ou implementação resulte em grandes alterações em sua estrutura; Combina estrutura (dados) e comportamento (funções) em um único objeto; Compartilha elementos estruturais e de comportamento com objetos de níveis inferiores; Enfatiza a estrutura de objetos ao invés da estrutura de procedimentos, ou seja, o que o objeto é e não como ele é utilizado.

8 Por que usar Orientação a
Objetos? Atualmente temos ferramentas completas para sua utilização (integrando especificação e implementação)‏ Praticamente todas as ferramentas novas de programação permitem suporte a sua utilização Qualidade melhor do software (se usada corretamente)‏ Produtividade em função do reuso (não é imediata)‏ Produção de códigos mais fáceis de serem entendido (se for bom)‏ Adequada para a construção de sistemas distribuídos e para aplicações voltadas a Internet Permite acesso controlado às informações

9 Requisitos de usuários são funcionais
AOO Dificuldade: Usuário não pensam seus problemas de forma orientada a objetos Requisitos não são orientados a objetos Requisitos de usuários são funcionais

10 AOO Com o rápido crescimento surgiram várias metodologias principalmente ente Metodologias (processo OO e linguagem de modelagem própria). As mais significativas foram: OMT, Rumbaugh COAD/YOURDON, Coad-Yourdon, OOSE, Jacobson, SHLAER/MELLOR, Shlaer-Mellor, BOOCH, Grady Booch

11 AOO Como os métodos Booch e o OMT estavam sendo largamente utilizados, seus autores juntaram forças para fazer um método unificado, com uma linguagem padrão. Posteriormente Jacobson juntou-se a equipe. Linguagem de modelagem proposta por Booch, Rumbaugh e Jacobson UML (Unified Modeling Language)‏ Padronizada pela OMG (Object Management Group)‏ Conta atualmente com o apoio de vários autores e várias empresas O RUP (Rational Unified Process) foi proposto como uma metodologia para desenvolvimento de sistemas, orientada a objetos, utilizando UML

12 Histórico da Análise Requisitos  Casos de Uso
Casos de uso são orientados a objeto ?! Não estamos fazendo análise orientada a objetos; Pode se utilizado em qualquer projeto como forma de documentar os requisitos; São fundamentais para as atividades clássicas de A / POO. Para Análise de Projetos só existe a abordagem OO ? OO. Estruturada; Essencial;

13 Análise e Projeto Orientado a Objetos
Qual o objetivo da Análise ? Encontrar e descrever os objetos ou conceitos no domínio do problema; Biblioteca: Livro, Biblioteca e Usuário. Qual o objetivo do Projeto ? Ênfase na definição dos objetos de software; Colaboração entre eles para a satisfação dos requisitos. Public class Livro { Private String titulo; Public Capitulo obterCapitulo(int) {...} }

14 Um Exemplo Um jogo de dados no qual um jogador lança dois dados. Se o total for sete, ele vence; caso contrário, perde. A análise de requisitos pode incluir uma descrição dos processos do domínio relacionados; estes podem ser descritos como casos de uso. Passos: Definir casos de uso; Definir modelo de domínio; Definir diagramas de interação; Definir diagramas de classes de projeto.

15 Caso de uso & Modelo de Domínio
Versão simplificada do Caso de uso: Caso de uso: Jogar um Jogo de Dados: Um jogador pega e lança os dados. Se a soma do valor das faces dos dados totalizar sete, ele vence; caso contrário, perde. Modelo de domínio

16 Definir diagrama de Interação
Diagrama de interação: diagrama de seqüência

17 Definir diagrama de Classes de Projeto
Classes de Software

18 Paradigma de Orientação a Objetos
Paradigma é uma forma de pensar e perceber o mundo real e determina o que escolhemos como significativo e o que descartamos ao compreender ou descrever o que existe ou ocorre no mundo em torno de nós. A mudança de paradigma é uma oportunidade de encontrar novas interpretações para antigas questões, bem como, para rever soluções tidas como definitivas.

19 Paradigma de Orientação a Objetos
Orientação a objetos constitui um novo paradigma computacional pois representa uma mudança na forma de pensar e conceber sistemas e programas de computador. A estratégia de O-O para modelagem de sistemas baseia-se na identificação dos objetos (que desempenham ou sofrem ações no domínio do problema) e dos padrões de cooperação e interação entre estes objetos.

20 Princípios Orientação a Objetos
Abstração Encapsulamento Modularidade Herança Polimorfismo

21 Abstração Permite ignorar os aspectos de um assunto não relevantes para o propósito Concentração nas características essenciais, gerenciando complexidade Construção de um modelo para representação de uma realidade Forte, Veloz, ... Coração, Rim, Peso, ...

22 Abstração

23 Abstração de Procedimentos
Pessoa Nome Sexo Data Nascimento solicitaPedido ()‏ efetuaPagamento ()‏ Abstração de Dados Abstração de Procedimentos

24 Máquina de Refrigerante em lata
Encapsulamento Restringir o escopo ou visibilidade da informação Obter melhor manutenibilidade e reutilização Ocultar detalhes de implementação É o processo de compartimentalização dos elementos de uma abstração Nenhuma parte de um sistema complexo deve depender de detalhes internos de qualquer outra parte Máquina de Refrigerante em lata Coloque uma moeda Receba a Lata

25 Modularidade Decomposição de um problema em pequenos pedaços, para gerenciar complexidade (Dividir para conquistar)‏ Cada conceito independente deve ser representado por um módulo Construção de módulos desacoplados Módulos são dependentes uns dos outros, o que leva a uma relação de acoplamento

26 Modularidade

27 Herança Mecanismo para expressar a similaridade entre classes
Representa generalização e especialização Permite representar membros comuns uma só vez; Especialização pode incluir novos métodos e atributos Pessoa Professor Aluno

28 Polimorfismo O conceito de polimorfismo está associado a herança;
Redeclaração de métodos previamente herdados de uma classe; Os métodos herdados da super-classe são reimplementados na sub-classe

29 Exemplos Suponha a seguinte classe escrita em Java:
public abstract class OperacaoMatematica { public abstract double calcular(double x, double y); } Esta é uma classe abstrata que representa qualquer operação matemática. Podemos imaginar diversas operações que se encaixam na sua interface, como soma, subtração, multiplicação ou divisão, entre outras. Note que, mesmo que a natureza do cálculo mude, a semântica do método calcular não muda, ou seja, ele sempre calculará o resultado da operação matemática que está sendo trabalhada.

30 Exemplos Definamos então, duas subclasses, Soma e Subtracao, que implementam a classe OperacaoMatematica: public class Soma extends OperacaoMatematica { public double calcular(double x, double y) { return x+y; } public class Subtracao extends OperacaoMatematica { return x-y;

31 Exemplos O seguinte trecho de código demonstra o uso do polimorfismo:
public class Contas { public static void mostrarCalculo(OperacaoMatematica operacao, double x, double y) { system.out.println("O resultado é: " + operacao.calcular(x, y)); } public static void main(String args[]) { //Primeiro calculamos uma soma Contas.mostrarCalculo(new Soma(), 5, 5); //Imprime o resultado é: 10 Contas.mostrarCalculo(new Subtracao(), 5, 5); //Imprime o resultado é: 0 } Note que, embora o método calcular tenha sido chamado duas vezes no interior de mostrarCalculo, o comportamento apresentado variou de acordo com a classe ao qual ele representava no momento. É comum definir sobrecarga de métodos ou simplesmente sobrecarga como uma forma de polimorfismo embora esta definição deixe lacunas conceituais.

32 Conceitos Básicos de Orientação a Objetos
Classe Atributos Operação/ Métodos Estado Comportamento Relacionamento Objeto e Classe Atributo Propriedades de um objeto Armazenam estados dos objetos Operação Modelam o comportamento das classes Serviços que os objetos oferecem a outros objetos Pacote e Subsistemas: Elementos de Agrupamento Relacionamento Associação (Simples, Agregação e Composição) e Generalização

33 Objeto Identidade: Todo objeto é único e pode ser distinguido de outros objetos Estado: Determinado pelos dados contidos no objeto Comportamento: Definido pelos serviços/operações que ele oferece

34 Classes Descrições de objetos com propriedades e comportamento comuns
Abstração que enfatiza o que é relevante Objetos são instâncias de Classes

35 Relacionamento Associação: Exemplos:
Simples: Relação estrutural entre classes Agregação: Relacionamento todo-parte. O todo possui um nível de abstração maior que a parte Composição: Relação de posse mais forte. O todo é responsável pela criação da parte Exemplos: Dependente e Funcionário? Pedido e Item do pedido? Funcionário e Cartão de ponto?

36 Relacionamento Generalização
Relacionamento entre classes onde uma classe compartilha a estrutura (atributos e relacionamentos) e comportamento (operações) de outras classes Define uma hierarquia de abstrações Relacionamento “é um tipo de” Uma subclasse pode: Adicionar Atributos, operações e relacionamentos; Redefinir operações herdadas Tipos de Herança: Simples e Múltipla Classe herdando de apenas uma classe; Classe herdando de mais de uma classe;

37 Testezinho  Dia 10/08/2011 – 2º horário
Assunto: Análise OO e Conceitos Orientação Objeto

38 Dúvidas ?


Carregar ppt "Orientação Objeto Marcely Dias marcely.dias@unibratec.edu.br."

Apresentações semelhantes


Anúncios Google