visão geral de orientação a objetos com uml copyright © 2002 qualiti. todos os direitos...

Post on 07-Apr-2016

218 Views

Category:

Documents

4 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Visão Geral de Orientação a Objetos

com UML

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

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

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

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

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()...

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”?

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

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

OO e UML | 10

Copy

right

© 2

002

Qual

iti. T

odos

os d

ireito

s res

erva

dos.

Qualiti Software Processes

Modularidade

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

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

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

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)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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!

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

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

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

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

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

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

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

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

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.

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)

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

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

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

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?

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

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

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

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

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.

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}

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

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

top related