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

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

Embed Size (px)

Citation preview

Page 1: 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

Visão Geral de Orientação a Objetos

com UML

Page 2: 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

OO e UML | 2

Copy

right

© 2

002

Qual

iti. T

odos

os d

ireito

s res

erva

dos.

Qualiti Software Processes

ObjetivosApresentar os princípios do paradigma de orientação a objetosApresentar os conceitos de orientação a objetos com a notação UML correspondente

Page 3: 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

OO e UML | 3

Copy

right

© 2

002

Qual

iti. T

odos

os d

ireito

s res

erva

dos.

Qualiti Software Processes

Princípios básicos de OOAbstraçãoEncapsulamentoModularidadeHerança

Page 4: 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

OO e UML | 4

Copy

right

© 2

002

Qual

iti. T

odos

os d

ireito

s res

erva

dos.

Qualiti Software Processes

Abstração

cliente

gado

automóvel

Page 5: 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

OO e UML | 5

Copy

right

© 2

002

Qual

iti. T

odos

os d

ireito

s res

erva

dos.

Qualiti Software Processes

AbstraçãoConstrução de um modelo para representação de uma realidade

Concentração nas características essenciais, gerenciando complexidade

Page 6: 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

OO e UML | 6

Copy

right

© 2

002

Qual

iti. T

odos

os d

ireito

s res

erva

dos.

Qualiti Software Processes

AbstraçãoConstrução de um modelo para a

realidade

Automovelmodelopreco...atualizaPreco()...

Page 7: 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

OO e UML | 7

Copy

right

© 2

002

Qual

iti. T

odos

os d

ireito

s res

erva

dos.

Qualiti Software Processes

EncapsulamentoExemplos de encapsulamento usados no nosso “dia-a-dia”?

Page 8: 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

OO e UML | 8

Copy

right

© 2

002

Qual

iti. T

odos

os d

ireito

s res

erva

dos.

Qualiti Software Processes

EncapsulamentoElimina dependência de implementação, escondendo-a do clienteUso de interfacesMudanças internas não têm impacto sobre os clientes

Page 9: 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

OO e UML | 9

Copy

right

© 2

002

Qual

iti. T

odos

os d

ireito

s res

erva

dos.

Qualiti Software Processes

Número Saldo

21.342-7 875,32

Crédito

Débito

Exemplo: objeto conta bancária

Page 10: 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

OO e UML | 10

Copy

right

© 2

002

Qual

iti. T

odos

os d

ireito

s res

erva

dos.

Qualiti Software Processes

Modularidade

Page 11: 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

OO e UML | 11

Copy

right

© 2

002

Qual

iti. T

odos

os d

ireito

s res

erva

dos.

Qualiti Software Processes

ModularidadeDecomposição de um problema em pequenos pedaços, para gerenciar complexidadeCada conceito independente deve ser representado por um móduloConstrução de módulos desacopladosDividir para conquistar ...

Page 12: 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

OO e UML | 12

Copy

right

© 2

002

Qual

iti. T

odos

os d

ireito

s res

erva

dos.

Qualiti Software Processes

Herança

Figura

RetânguloTriângulo

Polígono

ContaEspecialPoupança

Conta

Page 13: 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

OO e UML | 13

Copy

right

© 2

002

Qual

iti. T

odos

os d

ireito

s res

erva

dos.

Qualiti Software Processes

Exemplo: objeto poupança

Número Saldo

21.342-7 875,32

Crédito

Débito

R. Juros

Page 14: 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

OO e UML | 14

Copy

right

© 2

002

Qual

iti. T

odos

os d

ireito

s res

erva

dos.

Qualiti Software Processes

HerançaCriação de hierarquias de abstraçãoPermite ordenar hierarquias relacionadasBase conceitual para permitir extensibilidade do softwareReuso de código e comportamento (subtipo)

Page 15: 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

OO e UML | 15

Copy

right

© 2

002

Qual

iti. T

odos

os d

ireito

s res

erva

dos.

Qualiti Software Processes

Conceitos básicos de OOObjetoClasseAtributoOperaçãoInterfaceComponentePacoteSubsistemaRelacionamentos

Page 16: 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

OO e UML | 16

Copy

right

© 2

002

Qual

iti. T

odos

os d

ireito

s res

erva

dos.

Qualiti Software Processes

ObjetoModelo de um objeto real entidade física, conceitual ou

de softwarePossui comportamento, estado e identidadeExemplo: objetos conta e poupança apresentados

donut

Page 17: 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

OO e UML | 17

Copy

right

© 2

002

Qual

iti. T

odos

os d

ireito

s res

erva

dos.

Qualiti Software Processes

Objeto em UML

: Conta

contaSaque :Conta

contaSaqueApenas o nome daclasse

Apenas o nome doobjeto

Nome da classe e doobjeto

Page 18: 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

OO e UML | 18

Copy

right

© 2

002

Qual

iti. T

odos

os d

ireito

s res

erva

dos.

Qualiti Software Processes

ClasseDescrições de objetos com propriedades e comportamento comunsAbstração que enfatiza o que é relevante suprime o que não

interessa Classes são fábricas de objetosObjetos são agrupados em classes

Page 19: 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

OO e UML | 19

Copy

right

© 2

002

Qual

iti. T

odos

os d

ireito

s res

erva

dos.

Qualiti Software Processes

Classe de Contas Bancárias

Page 20: 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

OO e UML | 20

Copy

right

© 2

002

Qual

iti. T

odos

os d

ireito

s res

erva

dos.

Qualiti Software Processes

Classes de ObjetosQuantas classes temos aqui?

Fonte: Rational

Page 21: 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

OO e UML | 21

Copy

right

© 2

002

Qual

iti. T

odos

os d

ireito

s res

erva

dos.

Qualiti Software Processes

Classe em UML

Conta

Nome da Classe Conta

Atributos Operações

numerosaldo

credito()debito()getSaldo()getNumero()

estrutura

comportamento

Page 22: 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

OO e UML | 22

Copy

right

© 2

002

Qual

iti. T

odos

os d

ireito

s res

erva

dos.

Qualiti Software Processes

AtributoPropriedades de um objetoArmazenam estado dos objetos

númerosaldo

Page 23: 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

OO e UML | 23

Copy

right

© 2

002

Qual

iti. T

odos

os d

ireito

s res

erva

dos.

Qualiti Software Processes

Atributo em UML

: Conta

numero = 23.025-1saldo = 500,00

: Conta

numero = 21.342-7saldo = 875,32

Conta

numerosaldo

Valor do Atributo

Objeto

Page 24: 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

OO e UML | 24

Copy

right

© 2

002

Qual

iti. T

odos

os d

ireito

s res

erva

dos.

Qualiti Software Processes

OperaçãoModela comportamento das classesServiços que os objetos oferecem a outros objetos

númerosaldo

creditar debitar

getNumero

Page 25: 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

OO e UML | 25

Copy

right

© 2

002

Qual

iti. T

odos

os d

ireito

s res

erva

dos.

Qualiti Software Processes

Operação em UML

Conta

credito()debito()getSaldo()getNumero()

Especificação das operações

Page 26: 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

OO e UML | 26

Copy

right

© 2

002

Qual

iti. T

odos

os d

ireito

s res

erva

dos.

Qualiti Software Processes

PolimorfismoEscondendo diferentes implementações através de uma única interface

interface bem definida

Page 27: 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

OO e UML | 27

Copy

right

© 2

002

Qual

iti. T

odos

os d

ireito

s res

erva

dos.

Qualiti Software Processes

InterfaceInterfaces formalizam polimorfismoAumentam o nível de reusabilidadeViabilizam o uso de componentesReduzem o esforço de evolução da aplicação

Page 28: 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

OO e UML | 28

Copy

right

© 2

002

Qual

iti. T

odos

os d

ireito

s res

erva

dos.

Qualiti Software Processes

InterfaceInterfaces definem um tipo especificando apenas a assinatura de seus métodosInterfaces 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

Page 29: 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

OO e UML | 29

Copy

right

© 2

002

Qual

iti. T

odos

os d

ireito

s res

erva

dos.

Qualiti Software Processes

Interface em UML

Porca8mm

Porca6mm

Porca4mm

ApertarAfrouxar

<<interface>>ChaveKit

Relacionamentos de realização

Page 30: 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

OO e UML | 30

Copy

right

© 2

002

Qual

iti. T

odos

os d

ireito

s res

erva

dos.

Qualiti Software Processes

Interface em UML

ChaveKit

Relacionamentos de realização

Porca8mm

Porca6mm

Porca4mm

Page 31: 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

OO e UML | 31

Copy

right

© 2

002

Qual

iti. T

odos

os d

ireito

s res

erva

dos.

Qualiti Software Processes

Classe abstrataClasse abstrata é aquela que não possui instânciaEm geral, possui pelo menos um método abstratoMétodos abstratos não têm corpo subclasses não abstratas são obrigadas

a fornecer uma implementação para eles

Page 32: 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

OO e UML | 32

Copy

right

© 2

002

Qual

iti. T

odos

os d

ireito

s res

erva

dos.

Qualiti Software Processes

Classes, Interfaces e Classes Abstratas

Classes

• Atributos• Métodos

Classes Abstratas

• Atributos• Métodos• Assinatura de Métodos

Interfaces

• Assinaturas dos métodos

Page 33: 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

OO e UML | 33

Copy

right

© 2

002

Qual

iti. T

odos

os d

ireito

s res

erva

dos.

Qualiti Software Processes

Classes abstratas x Interfaces

Herança de tipos x herança de códigoClasses descrevem propriedades fundamentais de um objetoInterfaces descrevem papéis desempenhados por um objeto em determinadas situaçõesInterfaces são úteis para implementar herança múltipla

Page 34: 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

OO e UML | 34

Copy

right

© 2

002

Qual

iti. T

odos

os d

ireito

s res

erva

dos.

Qualiti Software Processes

ComponenteParte 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

Page 35: 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

OO e UML | 35

Copy

right

© 2

002

Qual

iti. T

odos

os d

ireito

s res

erva

dos.

Qualiti Software Processes

Componente em UML

Interface doComponente

Arquivo fonte<<DLL>>

Componente<<EXE>>Arquivo

executável

Page 36: 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

OO e UML | 36

Copy

right

© 2

002

Qual

iti. T

odos

os d

ireito

s res

erva

dos.

Qualiti Software Processes

PacoteMecanismo para organizar elementos em gruposFacilita entendimento do sistemaFavorece modularidade e reuso em larga escalaEssencial para estruturar sistemas complexos

nome do pacote

Page 37: 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

OO e UML | 37

Copy

right

© 2

002

Qual

iti. T

odos

os d

ireito

s res

erva

dos.

Qualiti Software Processes

Coesão e AcoplamentoAcoplamento é a medida de quão conectadas duas classes são cuidado com herançaCoesão é a medida de quão auto-contida uma classe é

Sistemas devem ter baixo acoplamento e alta coesão bom para manutenção

Page 38: 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

OO e UML | 38

Copy

right

© 2

002

Qual

iti. T

odos

os d

ireito

s res

erva

dos.

Qualiti Software Processes

SubsistemaUnião de pacote (agrupa outros elementos) classe (comportamento)

Realiza uma ou mais interfaces, que definem o seu comportamento

Page 39: 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

OO e UML | 39

Copy

right

© 2

002

Qual

iti. T

odos

os d

ireito

s res

erva

dos.

Qualiti Software Processes

Subsistema em UML

Subsistema

Interface

Realização

<<subsystem>>

Nome do subsistema

Page 40: 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

OO e UML | 40

Copy

right

© 2

002

Qual

iti. T

odos

os d

ireito

s res

erva

dos.

Qualiti Software Processes

Subsistemas e Componentes

Ambos encapsulam um comportamento modelado por interfacesSubsistemas representam componentes no modelo de projetoComponentes são a realização física dos subsistemas

Projeto

Implementação

Nome do componente

<<subsystem>>Nome do subsistema

Page 41: 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

OO e UML | 41

Copy

right

© 2

002

Qual

iti. T

odos

os d

ireito

s res

erva

dos.

Qualiti Software Processes

RelacionamentosAssociação simples agregação composiçãoDependência GeneralizaçãoRealização

Page 42: 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

OO e UML | 42

Copy

right

© 2

002

Qual

iti. T

odos

os d

ireito

s res

erva

dos.

Qualiti Software Processes

AssociaçãoRelação estrutural entre classes

Pessoa

Pessoa Empresa

Empresa

trabalha

Associação

Nome da associação

Classe

Empregado Empregador

Papéis

Page 43: 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

OO e UML | 43

Copy

right

© 2

002

Qual

iti. T

odos

os d

ireito

s res

erva

dos.

Qualiti Software Processes

AgregaçãoTipo especial de associaçãoRelacionamento todo-parteO todo possui um nível de abstração maior que a parte

DepartamentoEmpresa

Todo Parte

Agregação

Page 44: 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

OO e UML | 44

Copy

right

© 2

002

Qual

iti. T

odos

os d

ireito

s res

erva

dos.

Qualiti Software Processes

ComposiçãoTipo especial de agregaçãoRelação de posse mais forteO todo é responsável pela criação da parteA parte não vive sem o todo

DepartamentoEmpresa

Todo Parte

Composição

Page 45: 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

OO e UML | 45

Copy

right

© 2

002

Qual

iti. T

odos

os d

ireito

s res

erva

dos.

Qualiti Software Processes

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!

Page 46: 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

OO e UML | 46

Copy

right

© 2

002

Qual

iti. T

odos

os d

ireito

s res

erva

dos.

Qualiti Software Processes

DependênciaRelacionamento 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) Relacionamentode Dependência

Page 47: 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

OO e UML | 47

Copy

right

© 2

002

Qual

iti. T

odos

os d

ireito

s res

erva

dos.

Qualiti Software Processes

DependênciaPode existir relacionamento de dependência entre vários elementos de UML

Classe

Pacote

PacoteFornecedor

ComponenteFornecedorCliente

PacoteClienteDependência

Fonte: Rational

FornecedorCliente

Page 48: 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

OO e UML | 48

Copy

right

© 2

002

Qual

iti. T

odos

os d

ireito

s res

erva

dos.

Qualiti Software Processes

Exercício (opcional) - Relacionamentos

Modele os relacionamentos existentes entre as classes abaixo:

Universidade Departamento

Estudante Disciplina Instrutor

Page 49: 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

OO e UML | 49

Copy

right

© 2

002

Qual

iti. T

odos

os d

ireito

s res

erva

dos.

Qualiti Software Processes

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

Page 50: 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

OO e UML | 50

Copy

right

© 2

002

Qual

iti. T

odos

os d

ireito

s res

erva

dos.

Qualiti Software Processes

Tipos de MultiplicidadeNão especificadaExatamente umZero ou maisMuitos (mesmo que 0..*)Um ou maisZero ou umIntervalo determinadoValores múltiplos

1

0..*

*

1..*

0..1

2..4

2, 4..6

Page 51: 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

OO e UML | 51

Copy

right

© 2

002

Qual

iti. T

odos

os d

ireito

s res

erva

dos.

Qualiti Software Processes

Exemplo: Multiplicidade

PessoaEmpresa

Multiplicidade

1..*1

Page 52: 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

OO e UML | 52

Copy

right

© 2

002

Qual

iti. T

odos

os d

ireito

s res

erva

dos.

Qualiti Software Processes

Navegação

Especifica a direção da associaçãoAssociações e agregações são bidirecionais por default, mas é desejável que a navegação seja restringida a apenas uma direçãoAssociações bidirecionais são mais difíceis de implementar

Page 53: 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

OO e UML | 53

Copy

right

© 2

002

Qual

iti. T

odos

os d

ireito

s res

erva

dos.

Qualiti Software Processes

Exemplo: Navegação

PessoaEmpresa

Navegação

1..*1

Page 54: 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

OO e UML | 54

Copy

right

© 2

002

Qual

iti. T

odos

os d

ireito

s res

erva

dos.

Qualiti Software Processes

Exercício (opcional) - Multiplicidade

Acrescente a multiplicidade nos relacionamentos encontrados no exercício anterior.

Page 55: 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

OO e UML | 55

Copy

right

© 2

002

Qual

iti. T

odos

os d

ireito

s res

erva

dos.

Qualiti Software Processes

Generalização

Relacionamento entre classes onde uma classe compartilha a estrutura (atributos e relacionamentos) e comportamento (operações) de outras classesDefine uma hierarquia de abstraçõesRelacionamento “é um tipo de” (is-a-kind-of)

Page 56: 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

OO e UML | 56

Copy

right

© 2

002

Qual

iti. T

odos

os d

ireito

s res

erva

dos.

Qualiti Software Processes

Generalização

Uma subclasse pode adicionar atributos, operações e

relacionamentos redefinir operações herdadas

Tipos de herança: simples e múltipla

Page 57: 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

OO e UML | 57

Copy

right

© 2

002

Qual

iti. T

odos

os d

ireito

s res

erva

dos.

Qualiti Software Processes

Herança Simples

Classes herdando de apenas uma outra classe

Círculoraiocentrodesenhar()

Retânguloverticesdesenhar()diagonal()

Figuracorlargura da linhadesenhar()girar(graus)selecionar()

Subclasses

Superclasse(pai)

Relacionamentode Generalização

Quadrado

Page 58: 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

OO e UML | 58

Copy

right

© 2

002

Qual

iti. T

odos

os d

ireito

s res

erva

dos.

Qualiti Software Processes

Herança Múltipla

Classes herdando de mais de uma classe

Mamífero AnimalVoadorHerançamúltipla

Cachorro Gato Morcego Passarinho Gaviao

Page 59: 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

OO e UML | 59

Copy

right

© 2

002

Qual

iti. T

odos

os d

ireito

s res

erva

dos.

Qualiti Software Processes

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?

Page 60: 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

OO e UML | 60

Copy

right

© 2

002

Qual

iti. T

odos

os d

ireito

s res

erva

dos.

Qualiti Software Processes

Realização

Realização

SubsistemaClasse

Caso de uso

Indica que um elemento serve como contrato que o outro deve seguir

Exemplos:

Componente

Realização de Caso de uso

Page 61: 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

OO e UML | 61

Copy

right

© 2

002

Qual

iti. T

odos

os d

ireito

s res

erva

dos.

Qualiti Software Processes

Mecanismos adicionais de UML

EstereótiposNotasPropriedades (Tagged values)Restrições

Page 62: 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

OO e UML | 62

Copy

right

© 2

002

Qual

iti. T

odos

os d

ireito

s res

erva

dos.

Qualiti Software Processes

Estereótipos

Mecanismo utilizado para estender os elementos de UMLDefine um novo modelo de elemento em termos de outro já existente Como criando um novo ícone utilizando a notação <<novo_elemento>>

Page 63: 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

OO e UML | 63

Copy

right

© 2

002

Qual

iti. T

odos

os d

ireito

s res

erva

dos.

Qualiti Software Processes

Estereótipos - Exemplo

Classes de fronteira:

ClasseFronteira

<<boundary>>ClasseFronteira

Page 64: 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

OO e UML | 64

Copy

right

© 2

002

Qual

iti. T

odos

os d

ireito

s res

erva

dos.

Qualiti Software Processes

NotasAnotaçã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.

Page 65: 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

OO e UML | 65

Copy

right

© 2

002

Qual

iti. T

odos

os d

ireito

s res

erva

dos.

Qualiti Software Processes

Propriedades (Tagged Values)

Servem para estender elementos UML, adicionando informações sobre elesExemplos já definidos em UML: Persistence Location (ex: no cliente, no servidor)

Você pode criar suas próprias propriedades

Cliente{persistence}

LeitoraCartao {location=server}

Page 66: 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

OO e UML | 66

Copy

right

© 2

002

Qual

iti. T

odos

os d

ireito

s res

erva

dos.

Qualiti Software Processes

Restrições

Pessoa Empresa{subset}

Funcionário

Diretor1..* 1

3 1

Usadas para criação de novas regras sobre elementos do modeloOu modificação de regras existentes

Page 67: 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

OO e UML | 67

Copy

right

© 2

002

Qual

iti. T

odos

os d

ireito

s res

erva

dos.

Qualiti Software Processes

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