Carregar apresentação
A apresentação está carregando. Por favor, espere
PublicouJosé Bento Philippi Alterado mais de 8 anos atrás
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 *
Apresentações semelhantes
© 2024 SlidePlayer.com.br Inc.
All rights reserved.