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

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

Visão Geral de Orientação a Objetos com UML Copyright © 2002 Qualiti. Todos os direitos reservados. Qualiti Software Processes OO e UML | 2 Objetivos.

Apresentações semelhantes


Apresentação em tema: "Visão Geral de Orientação a Objetos com UML Copyright © 2002 Qualiti. Todos os direitos reservados. Qualiti Software Processes OO e UML | 2 Objetivos."— Transcrição da apresentação:

1

2 Visão Geral de Orientação a Objetos com UML

3 Copyright © 2002 Qualiti. Todos os direitos reservados. Qualiti Software Processes OO e UML | 2 Objetivos Apresentar os princípios do paradigma de orientação a objetos Apresentar os conceitos de orientação a objetos com a notação UML correspondente

4 Copyright © 2002 Qualiti. Todos os direitos reservados. Qualiti Software Processes OO e UML | 3 Princípios básicos de OO Abstração Encapsulamento Modularidade Herança

5 Copyright © 2002 Qualiti. Todos os direitos reservados. Qualiti Software Processes OO e UML | 4 Abstração cliente gado automóvel

6 Copyright © 2002 Qualiti. Todos os direitos reservados. Qualiti Software Processes OO e UML | 5 Abstração Construção de um modelo para representação de uma realidade Concentração nas características essenciais, gerenciando complexidade

7 Copyright © 2002 Qualiti. Todos os direitos reservados. Qualiti Software Processes OO e UML | 6 Abstração Construção de um modelo para a realidade Automovel modelo preco... atualizaPreco()...

8 Copyright © 2002 Qualiti. Todos os direitos reservados. Qualiti Software Processes OO e UML | 7 Encapsulamento Exemplos de encapsulamento usados no nosso “dia-a-dia”?

9 Copyright © 2002 Qualiti. Todos os direitos reservados. Qualiti Software Processes OO e UML | 8 Encapsulamento Elimina dependência de implementação, escondendo-a do cliente Uso de interfaces Mudanças internas não têm impacto sobre os clientes

10 Copyright © 2002 Qualiti. Todos os direitos reservados. Qualiti Software Processes OO e UML | 9 Número Saldo 21.342-7 875,32 Crédito Débito Exemplo: objeto conta bancária

11 Copyright © 2002 Qualiti. Todos os direitos reservados. Qualiti Software Processes OO e UML | 10 Modularidade

12 Copyright © 2002 Qualiti. Todos os direitos reservados. Qualiti Software Processes OO e UML | 11 Modularidade Decomposição de um problema em pequenos pedaços, para gerenciar complexidade Cada conceito independente deve ser representado por um módulo Construção de módulos desacoplados Dividir para conquistar...

13 Copyright © 2002 Qualiti. Todos os direitos reservados. Qualiti Software Processes OO e UML | 12 Herança Figura RetânguloTriângulo Polígono ContaEspecialPoupança Conta

14 Copyright © 2002 Qualiti. Todos os direitos reservados. Qualiti Software Processes OO e UML | 13 Exemplo: objeto poupança Número Saldo 21.342-7 875,32 Crédito Débito R. Juros

15 Copyright © 2002 Qualiti. Todos os direitos reservados. Qualiti Software Processes OO e UML | 14 Herança Criação de hierarquias de abstração Permite ordenar hierarquias relacionadas Base conceitual para permitir extensibilidade do software Reuso de código e comportamento (subtipo)

16 Copyright © 2002 Qualiti. Todos os direitos reservados. Qualiti Software Processes OO e UML | 15 Conceitos básicos de OO Objeto Classe Atributo Operação Interface Componente Pacote Subsistema Relacionamentos

17 Copyright © 2002 Qualiti. Todos os direitos reservados. Qualiti Software Processes OO e UML | 16 Objeto Modelo de um objeto real ­ entidade física, conceitual ou de software Possui comportamento, estado e identidade Exemplo: objetos conta e poupança apresentados donut

18 Copyright © 2002 Qualiti. Todos os direitos reservados. Qualiti Software Processes OO e UML | 17 Objeto em UML : Conta contaSaque : Conta contaSaque Apenas o nome da classe Apenas o nome do objeto Nome da classe e do objeto

19 Copyright © 2002 Qualiti. Todos os direitos reservados. Qualiti Software Processes OO e UML | 18 Classe Descrições de objetos com propriedades e comportamento comuns Abstração que ­ enfatiza o que é relevante ­ suprime o que não interessa Classes são fábricas de objetos Objetos são agrupados em classes

20 Copyright © 2002 Qualiti. Todos os direitos reservados. Qualiti Software Processes OO e UML | 19 Classe de Contas Bancárias

21 Copyright © 2002 Qualiti. Todos os direitos reservados. Qualiti Software Processes OO e UML | 20 Classes de Objetos Quantas classes temos aqui? Fonte: Rational

22 Copyright © 2002 Qualiti. Todos os direitos reservados. Qualiti Software Processes OO e UML | 21 Classe em UML Conta Nome da Classe Conta Atributos Operações numero saldo credito() debito() getSaldo() getNumero() estrutura comportamento

23 Copyright © 2002 Qualiti. Todos os direitos reservados. Qualiti Software Processes OO e UML | 22 Atributo Propriedades de um objeto Armazenam estado dos objetos número saldo

24 Copyright © 2002 Qualiti. Todos os direitos reservados. Qualiti Software Processes OO e UML | 23 Atributo em UML : Conta numero = 23.025-1 saldo = 500,00 : Conta numero = 21.342-7 saldo = 875,32 Conta numero saldo Valor do Atributo Objeto

25 Copyright © 2002 Qualiti. Todos os direitos reservados. Qualiti Software Processes OO e UML | 24 Operação Modela comportamento das classes Serviços que os objetos oferecem a outros objetos número saldo creditardebitar getNumero

26 Copyright © 2002 Qualiti. Todos os direitos reservados. Qualiti Software Processes OO e UML | 25 Operação em UML Conta credito() debito() getSaldo() getNumero() Especificação das operações

27 Copyright © 2002 Qualiti. Todos os direitos reservados. Qualiti Software Processes OO e UML | 26 Polimorfismo Escondendo diferentes implementações através de uma única interface interface bem definida

28 Copyright © 2002 Qualiti. Todos os direitos reservados. Qualiti Software Processes OO e UML | 27 Interface Interfaces formalizam polimorfismo Aumentam o nível de reusabilidade Viabilizam o uso de componentes Reduzem o esforço de evolução da aplicação

29 Copyright © 2002 Qualiti. Todos os direitos reservados. Qualiti Software Processes OO e UML | 28 Interface Interfaces definem um tipo especificando apenas a assinatura de seus métodos Interfaces não possuem atributos e seus métodos não têm corpo Classes implementam interfaces ­ provêem implementação para os métodos especificados em uma interface

30 Copyright © 2002 Qualiti. Todos os direitos reservados. Qualiti Software Processes OO e UML | 29 Interface em UML Porca8mm Porca6mm Porca4mm Apertar Afrouxar > ChaveKit Relacionamentos de realização

31 Copyright © 2002 Qualiti. Todos os direitos reservados. Qualiti Software Processes OO e UML | 30 Interface em UML ChaveKit Relacionamentos de realização Porca8mm Porca6mm Porca4mm

32 Copyright © 2002 Qualiti. Todos os direitos reservados. Qualiti Software Processes OO e UML | 31 Classe abstrata Classe abstrata é aquela que não possui instância Em geral, possui pelo menos um método abstrato Métodos abstratos não têm corpo ­ subclasses não abstratas são obrigadas a fornecer uma implementação para eles

33 Copyright © 2002 Qualiti. Todos os direitos reservados. Qualiti Software Processes OO e UML | 32 Classes, Interfaces e Classes Abstratas Classes Atributos Métodos Classes Abstratas Atributos Métodos Assinatura de Métodos Interfaces Assinaturas dos métodos

34 Copyright © 2002 Qualiti. Todos os direitos reservados. Qualiti Software Processes OO e UML | 33 Classes abstratas x Interfaces Herança de tipos x herança de código Classes descrevem propriedades fundamentais de um objeto Interfaces descrevem papéis desempenhados por um objeto em determinadas situações Interfaces são úteis para implementar herança múltipla

35 Copyright © 2002 Qualiti. Todos os direitos reservados. Qualiti Software Processes OO e UML | 34 Componente Parte não trivial, quase independente, substituível de um sistema, que provê a realização de (uma/um conjunto de) interface(s) Exemplos ­ um código fonte ­ um componente de tempo de execução ­ um componente executável

36 Copyright © 2002 Qualiti. Todos os direitos reservados. Qualiti Software Processes OO e UML | 35 Componente em UML Interface do Componente Arquivo fonte > Componente > Arquivo executável

37 Copyright © 2002 Qualiti. Todos os direitos reservados. Qualiti Software Processes OO e UML | 36 Pacote Mecanismo para organizar elementos em grupos Facilita entendimento do sistema Favorece modularidade e reuso em larga escala Essencial para estruturar sistemas complexos nome do pacote

38 Copyright © 2002 Qualiti. Todos os direitos reservados. Qualiti Software Processes OO e UML | 37 Coesão e Acoplamento Acoplamento é a medida de quão conectadas duas classes são ­ cuidado com herança Coesão é a medida de quão auto- contida uma classe é Sistemas devem ter baixo acoplamento e alta coesão ­ bom para manutenção

39 Copyright © 2002 Qualiti. Todos os direitos reservados. Qualiti Software Processes OO e UML | 38 Subsistema União de ­ pacote (agrupa outros elementos) ­ classe (comportamento) Realiza uma ou mais interfaces, que definem o seu comportamento

40 Copyright © 2002 Qualiti. Todos os direitos reservados. Qualiti Software Processes OO e UML | 39 Subsistema em UML Subsistema Interface Realização > Nome do subsistema

41 Copyright © 2002 Qualiti. Todos os direitos reservados. Qualiti Software Processes OO e UML | 40 Subsistemas e Componentes Ambos encapsulam um comportamento modelado por interfaces Subsistemas representam componentes no modelo de projeto Componentes são a realização física dos subsistemas Projeto Implementação Nome do componente > Nome do subsistema

42 Copyright © 2002 Qualiti. Todos os direitos reservados. Qualiti Software Processes OO e UML | 41 Relacionamentos Associação ­ simples ­ agregação ­ composição Dependência Generalização Realização

43 Copyright © 2002 Qualiti. Todos os direitos reservados. Qualiti Software Processes OO e UML | 42 Associação Relação estrutural entre classes Pessoa Empresa trabalha Associação Nome da associação Classe Empregado Empregador Papéis

44 Copyright © 2002 Qualiti. Todos os direitos reservados. Qualiti Software Processes OO e UML | 43 Agregação Tipo especial de associação Relacionamento todo-parte O todo possui um nível de abstração maior que a parte DepartamentoEmpresa TodoParte Agregação

45 Copyright © 2002 Qualiti. Todos os direitos reservados. Qualiti Software Processes OO e UML | 44 Composição Tipo especial de agregação Relação de posse mais forte O todo é responsável pela criação da parte A parte não vive sem o todo DepartamentoEmpresa TodoParte Composição

46 Copyright © 2002 Qualiti. Todos os direitos reservados. Qualiti Software Processes OO e UML | 45 Associação x Agregação x Composição Como você modelaria: ­ Dependente e Funcionário? ­ Pedido e Item do pedido? ­ Funcionário e Cartão de ponto? ­ Carro, Roda, Direção e Carburador? Na dúvida, use agregação! Na dúvida, use associação!

47 Copyright © 2002 Qualiti. Todos os direitos reservados. Qualiti Software Processes OO e UML | 46 Dependência Relacionamento não estrutural (uso) ­ mais fraco que associação Uma dependência entre dois elementos indica que mudança em um elemento pode causar mudanças no outro CartãoLeitoraCartao lerCartao (cartao) Relacionamento de Dependência

48 Copyright © 2002 Qualiti. Todos os direitos reservados. Qualiti Software Processes OO e UML | 47 Dependência Pode existir relacionamento de dependência entre vários elementos de UML Classe Pacote PacoteFornecedor Componente FornecedorCliente PacoteCliente Dependência Fonte: Rational FornecedorCliente

49 Copyright © 2002 Qualiti. Todos os direitos reservados. Qualiti Software Processes OO e UML | 48 Exercício (opcional) - Relacionamentos Modele os relacionamentos existentes entre as classes abaixo: UniversidadeDepartamentoEstudanteDisciplinaInstrutor

50 Copyright © 2002 Qualiti. Todos os direitos reservados. Qualiti Software Processes OO e UML | 49 Multiplicidade Multiplicidade define quantos objetos participam do relacionamento ­ O número de instâncias de uma classe relacionada a uma instância de outra classe ­ Especificado em cada uma das pontas da associação

51 Copyright © 2002 Qualiti. Todos os direitos reservados. Qualiti Software Processes OO e UML | 50 Tipos de Multiplicidade Não especificada Exatamente um Zero ou mais Muitos (mesmo que 0..*) Um ou mais Zero ou um Intervalo determinado Valores múltiplos 1 0..* * 1..* 0..1 2..4 2, 4..6

52 Copyright © 2002 Qualiti. Todos os direitos reservados. Qualiti Software Processes OO e UML | 51 Exemplo: Multiplicidade Pessoa Empresa Multiplicidade 1..*1

53 Copyright © 2002 Qualiti. Todos os direitos reservados. Qualiti Software Processes OO e UML | 52 Navegação Especifica a direção da associação Associações e agregações são bidirecionais por default, mas é desejável que a navegação seja restringida a apenas uma direção Associações bidirecionais são mais difíceis de implementar

54 Copyright © 2002 Qualiti. Todos os direitos reservados. Qualiti Software Processes OO e UML | 53 Exemplo: Navegação Pessoa Empresa Navegação 1..*1

55 Copyright © 2002 Qualiti. Todos os direitos reservados. Qualiti Software Processes OO e UML | 54 Exercício (opcional) - Multiplicidade Acrescente a multiplicidade nos relacionamentos encontrados no exercício anterior.

56 Copyright © 2002 Qualiti. Todos os direitos reservados. Qualiti Software Processes OO e UML | 55 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” (is-a- kind-of)

57 Copyright © 2002 Qualiti. Todos os direitos reservados. Qualiti Software Processes OO e UML | 56 Generalização Uma subclasse pode ­ adicionar atributos, operações e relacionamentos ­ redefinir operações herdadas Tipos de herança: simples e múltipla

58 Copyright © 2002 Qualiti. Todos os direitos reservados. Qualiti Software Processes OO e UML | 57 Herança Simples Classes herdando de apenas uma outra classe Círculo raio centro desenhar() Retângulo vertices desenhar() diagonal() Figura cor largura da linha desenhar() girar(graus) selecionar() Subclasses Superclasse (pai) Relacionamento de Generalização Quadrado

59 Copyright © 2002 Qualiti. Todos os direitos reservados. Qualiti Software Processes OO e UML | 58 Herança Múltipla Classes herdando de mais de uma classe Mamífero AnimalVoador Herança múltipla Cachorro GatoMorcegoPassarinho Gaviao

60 Copyright © 2002 Qualiti. Todos os direitos reservados. Qualiti Software Processes OO e UML | 59 Herança Múltipla O que acontece quando as superclasses possuem o mesmo método (métodos com o mesmo nome? O que acontece quando se tenta executar um método que não está definido na subclasse? Em que hierarquia de superclasses deve-se procurar o método?

61 Copyright © 2002 Qualiti. Todos os direitos reservados. Qualiti Software Processes OO e UML | 60 Realização Subsistema Classe Caso de uso Indica que um elemento serve como contrato que o outro deve seguir Exemplos: Componente Realização de Caso de uso

62 Copyright © 2002 Qualiti. Todos os direitos reservados. Qualiti Software Processes OO e UML | 61 Mecanismos adicionais de UML Estereótipos Notas Propriedades (Tagged values) Restrições

63 Copyright © 2002 Qualiti. Todos os direitos reservados. Qualiti Software Processes OO e UML | 62 Estereótipos Mecanismo utilizado para estender os elementos de UML Define um novo modelo de elemento em termos de outro já existente Como ­ criando um novo ícone ­ utilizando a notação >

64 Copyright © 2002 Qualiti. Todos os direitos reservados. Qualiti Software Processes OO e UML | 63 Estereótipos - Exemplo Classes de fronteira: ClasseFronteira > ClasseFronteira

65 Copyright © 2002 Qualiti. Todos os direitos reservados. Qualiti Software Processes OO e UML | 64 Notas Anotação utilizada para adicionar informação a diagramas ­ Pode ser afixionada a qualquer elemento de UML ­ Pode ser ligada a um elemento com uma linha tracejada Exemplo: LeitoraCartao Esta classe é uma abstração do dispositivo de hardware que será usado para ler efetivamente as informações do cartão magnético.

66 Copyright © 2002 Qualiti. Todos os direitos reservados. Qualiti Software Processes OO e UML | 65 Propriedades (Tagged Values) Servem para estender elementos UML, adicionando informações sobre eles Exemplos já definidos em UML: ­ Persistence ­ Location (ex: no cliente, no servidor) Você pode criar suas próprias propriedades Cliente {persistence} LeitoraCartao {location=server}

67 Copyright © 2002 Qualiti. Todos os direitos reservados. Qualiti Software Processes OO e UML | 66 Restrições Pessoa Empresa {subset} Funcionário Diretor 1..* 1 31 Usadas para criação de novas regras sobre elementos do modelo Ou modificação de regras existentes

68 Copyright © 2002 Qualiti. Todos os direitos reservados. Qualiti Software Processes OO e UML | 67 Paradigma de Orientação a Objetos Benefícios ­ Favorece modularidade, manutenibilidade e reuso ­ Aproxima-se do mundo real ­ Uso do mesmo conceito em todas as fases do desenvolvimento

69 Respostas dos Exercícios

70 Copyright © 2002 Qualiti. Todos os direitos reservados. Qualiti Software Processes OO e UML | 69 Relacionamentos Resposta do exercício UniversidadeDepartamentoEstudanteDisciplinaInstrutor vinculado inscritoministra alocado no coordena

71 Copyright © 2002 Qualiti. Todos os direitos reservados. Qualiti Software Processes OO e UML | 70 Multiplicidade Resposta do exercício UniversidadeDepartamentoEstudanteDisciplinaInstrutor vinculado inscritoministra alocado no coordena ***1..* 0..1 1..* 0..1 1..* 1 *


Carregar ppt "Visão Geral de Orientação a Objetos com UML Copyright © 2002 Qualiti. Todos os direitos reservados. Qualiti Software Processes OO e UML | 2 Objetivos."

Apresentações semelhantes


Anúncios Google