Orientação a Objetos com UML. Copyright © 2006 Qualiti. Todos os direitos reservados. Qualiti...

Preview:

Citation preview

Orientação a Objetoscom UML

Copy

right

© 2

006

Qual

iti. T

odos

os d

ireito

s res

erva

dos.

Qualiti Software ProcessesAnálise e Projeto OO com UML e Padrões| 2

Elementos básicos de OO em UML

ObjetoClasseAtributoOperaçãoInterfaceComponentePacoteSubsistemaRelacionamentos

Copy

right

© 2

006

Qual

iti. T

odos

os d

ireito

s res

erva

dos.

Qualiti Software ProcessesAnálise e Projeto OO com UML e Padrões| 3

Objeto em UML

: Conta

contaSaque :Conta

contaSaqueApenas o nome daclasse

Apenas o nome doobjeto

Nome da classe e doobjeto

Copy

right

© 2

006

Qual

iti. T

odos

os d

ireito

s res

erva

dos.

Qualiti Software ProcessesAnálise e Projeto OO com UML e Padrões| 4

Classe em UML

Conta

Nome da Classe Conta

Atributos Operações

numerosaldo

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

estrutura

comportamento

• O que deve ser modelado por uma classe?• O que é abstração e modularidade?

Copy

right

© 2

006

Qual

iti. T

odos

os d

ireito

s res

erva

dos.

Qualiti Software ProcessesAnálise e Projeto OO com UML e Padrões| 5

Visibilidade

Marcações de acesso podem ser usadas para especificar o tipo de acesso permitido aos atributos e operações

+ público # protegido - privado

Copy

right

© 2

006

Qual

iti. T

odos

os d

ireito

s res

erva

dos.

Qualiti Software ProcessesAnálise e Projeto OO com UML e Padrões| 6

InterfaceInterfaces definem um tipo especificando apenas a assinatura de seus métodosInterfaces não possuem atributos e seus métodos não têm corpoClasses, subsistemas e componentes implementam interfaces provêem implementação para os métodos

especificados em uma interface

Copy

right

© 2

006

Qual

iti. T

odos

os d

ireito

s res

erva

dos.

Qualiti Software ProcessesAnálise e Projeto OO com UML e Padrões| 7

Exemplo: Independência do meio de armazenamento

Isolando as coleções de negócio de mudanças na coleção de dados correspondente

RepositorioContasBDR RepositorioContasOO

CadastroContas

<<interface>>RepositorioContas

Copy

right

© 2

006

Qual

iti. T

odos

os d

ireito

s res

erva

dos.

Qualiti Software ProcessesAnálise e Projeto OO com UML e Padrões| 8

Interface em UML: notação alternativa

RepositorioContas

Relacionamentos de realização

RepositorioContasOO

RepositorioContasXML

RepositorioContasBDR

Copy

right

© 2

006

Qual

iti. T

odos

os d

ireito

s res

erva

dos.

Qualiti Software ProcessesAnálise e Projeto OO com UML e Padrões| 9

Classes, Interfaces e Classes Abstratas

Classes

• Atributos• Métodos

Classes Abstratas

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

Interfaces

• Assinaturas dos métodos

Copy

right

© 2

006

Qual

iti. T

odos

os d

ireito

s res

erva

dos.

Qualiti Software ProcessesAnálise e Projeto OO com UML e Padrões| 10

Componente em UML

Interface doComponente

Arquivo fonte<<DLL>>

Componente<<EXE>>Arquivo

executável

Copy

right

© 2

006

Qual

iti. T

odos

os d

ireito

s res

erva

dos.

Qualiti Software ProcessesAnálise e Projeto OO com UML e Padrões| 11

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

nome do pacote

nome do pacote

Copy

right

© 2

006

Qual

iti. T

odos

os d

ireito

s res

erva

dos.

Qualiti Software ProcessesAnálise e Projeto OO com UML e Padrões| 12

Subsistema em UML

Subsistema

Interface

Realização

<<subsystem>>

Nome do subsistema

Copy

right

© 2

006

Qual

iti. T

odos

os d

ireito

s res

erva

dos.

Qualiti Software ProcessesAnálise e Projeto OO com UML e Padrões| 13

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

Copy

right

© 2

006

Qual

iti. T

odos

os d

ireito

s res

erva

dos.

Qualiti Software ProcessesAnálise e Projeto OO com UML e Padrões| 14

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

Copy

right

© 2

006

Qual

iti. T

odos

os d

ireito

s res

erva

dos.

Qualiti Software ProcessesAnálise e Projeto OO com UML e Padrões| 15

AssociaçãoRelação estrutural entre classes

Pessoa

Pessoa Empresa

Empresa

trabalha

Associação

Nome da associação

Classe

Empregado Empregador

Papéis

Copy

right

© 2

006

Qual

iti. T

odos

os d

ireito

s res

erva

dos.

Qualiti Software ProcessesAnálise e Projeto OO com UML e Padrões| 16

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

Copy

right

© 2

006

Qual

iti. T

odos

os d

ireito

s res

erva

dos.

Qualiti Software ProcessesAnálise e Projeto OO com UML e Padrões| 17

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 todoNão permite compartilhamento

DepartamentoEmpresa

Todo Parte

Composição

Copy

right

© 2

006

Qual

iti. T

odos

os d

ireito

s res

erva

dos.

Qualiti Software ProcessesAnálise e Projeto OO com UML e Padrões| 18

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

Copy

right

© 2

006

Qual

iti. T

odos

os d

ireito

s res

erva

dos.

Qualiti Software ProcessesAnálise e Projeto OO com UML e Padrões| 19

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

Classe

Pacote

PacoteFornecedor

ComponenteFornecedorCliente

PacoteClienteDependência

Fonte: Rational

FornecedorCliente

Copy

right

© 2

006

Qual

iti. T

odos

os d

ireito

s res

erva

dos.

Qualiti Software ProcessesAnálise e Projeto OO com UML e Padrões| 20

Multiplicidade

Multiplicidade define quantos objetos participam do relacionamento O número de instâncias de uma classe

relacionadas a uma instância de outra classe

Especificado em cada uma das pontas da associação

Copy

right

© 2

006

Qual

iti. T

odos

os d

ireito

s res

erva

dos.

Qualiti Software ProcessesAnálise e Projeto OO com UML e Padrões| 21

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

Copy

right

© 2

006

Qual

iti. T

odos

os d

ireito

s res

erva

dos.

Qualiti Software ProcessesAnálise e Projeto OO com UML e Padrões| 22

Exemplo: Multiplicidade

PessoaEmpresa

Multiplicidade

1..*1

Copy

right

© 2

006

Qual

iti. T

odos

os d

ireito

s res

erva

dos.

Qualiti Software ProcessesAnálise e Projeto OO com UML e Padrões| 23

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

Copy

right

© 2

006

Qual

iti. T

odos

os d

ireito

s res

erva

dos.

Qualiti Software ProcessesAnálise e Projeto OO com UML e Padrões| 24

Exemplo: Navegação

PessoaEmpresa

Navegação

1..*1

Copy

right

© 2

006

Qual

iti. T

odos

os d

ireito

s res

erva

dos.

Qualiti Software ProcessesAnálise e Projeto OO com UML e Padrões| 25

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) Herança comportamental (behavioural

inheritance) Referência clássica: A behavioral notion of subtyping

(Liskov & Wing)

Copy

right

© 2

006

Qual

iti. T

odos

os d

ireito

s res

erva

dos.

Qualiti Software ProcessesAnálise e Projeto OO com UML e Padrões| 26

Generalização

Uma subclasse pode adicionar atributos, operações e

relacionamentos redefinir operações herdadas

Tipos de herança: simples e múltipla

Copy

right

© 2

006

Qual

iti. T

odos

os d

ireito

s res

erva

dos.

Qualiti Software ProcessesAnálise e Projeto OO com UML e Padrões| 27

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

Copy

right

© 2

006

Qual

iti. T

odos

os d

ireito

s res

erva

dos.

Qualiti Software ProcessesAnálise e Projeto OO com UML e Padrões| 28

Herança Múltipla

Classes herdando de mais de uma classe

Mamífero AnimalVoadorHerançamúltipla

Cachorro Gato Morcego Passarinho Gaviao

Copy

right

© 2

006

Qual

iti. T

odos

os d

ireito

s res

erva

dos.

Qualiti Software ProcessesAnálise e Projeto OO com UML e Padrões| 29

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?

Copy

right

© 2

006

Qual

iti. T

odos

os d

ireito

s res

erva

dos.

Qualiti Software ProcessesAnálise e Projeto OO com UML e Padrões| 30

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

Copy

right

© 2

006

Qual

iti. T

odos

os d

ireito

s res

erva

dos.

Qualiti Software ProcessesAnálise e Projeto OO com UML para Sistemas

RT| 31

Exercício - ArquiteturaDefina uma arquitetura simplificada de uma aplicação bancária, com: Pelo menos 2 tipos de conta (corrente,

poupança) e um cadastro de contas Cliente e um cadastro de clientes Operações para criar, remover,

debitar, creditar, transferir, ... Adoção do padrão fachada

Copy

right

© 2

006

Qual

iti. T

odos

os d

ireito

s res

erva

dos.

Qualiti Software ProcessesAnálise e Projeto OO com UML e Padrões| 32

Mecanismos adicionais de UML

EstereótiposNotasPropriedades (Tagged values)RestriçõesOCL (Object Constraint Language)

Copy

right

© 2

006

Qual

iti. T

odos

os d

ireito

s res

erva

dos.

Qualiti Software ProcessesAnálise e Projeto OO com UML e Padrões| 33

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

Copy

right

© 2

006

Qual

iti. T

odos

os d

ireito

s res

erva

dos.

Qualiti Software ProcessesAnálise e Projeto OO com UML e Padrões| 34

Estereótipos - Exemplo

Classes de fronteira:

ClasseFronteira

<<boundary>>ClasseFronteira

Copy

right

© 2

006

Qual

iti. T

odos

os d

ireito

s res

erva

dos.

Qualiti Software ProcessesAnálise e Projeto OO com UML e Padrões| 35

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:

LeitorCartao

Esta classe é uma abstração do dispositivo de hardware que será usado para ler efetivamente as informações do cartão magnético.

Copy

right

© 2

006

Qual

iti. T

odos

os d

ireito

s res

erva

dos.

Qualiti Software ProcessesAnálise e Projeto OO com UML e Padrões| 36

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}

LeitorCartao {location=server}

Copy

right

© 2

006

Qual

iti. T

odos

os d

ireito

s res

erva

dos.

Qualiti Software ProcessesAnálise e Projeto OO com UML e Padrões| 37

Restrições

Pessoa Empresa{subset}

funcionários

diretores

1..* 1

3 1

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

Copy

right

© 2

006

Qual

iti. T

odos

os d

ireito

s res

erva

dos.

Qualiti Software ProcessesAnálise e Projeto OO com UML e Padrões| 38

OCL (Object Constraint Language)

Empresa

É uma linguagem usada para definir restrições sobre elementos do modelo ou modificação de restrições existentes Invariantes de classe Pré e pós-condições de operações

context Empresainv diretoresNecessarios:self.diretor->size() == 3

Copy

right

© 2

006

Qual

iti. T

odos

os d

ireito

s res

erva

dos.

Qualiti Software ProcessesAnálise e Projeto OO com UML e Padrões| 39

Diagramas UML

Diagramas de UML usados no curso (apresentados sob demanda) Casos de uso Classes Sequência Comunicação (Colaboração) Pacotes Componentes (usado em SOA)

Copy

right

© 2

006

Qual

iti. T

odos

os d

ireito

s res

erva

dos.

Qualiti Software Processes40

Processos e PadrõesOrientação a objetos e DBC são paradigmas promissores, mas Reuso Extensibilidade Escalabilidade ...

exigem Processos Técnicas Disciplina Experiências anteriores de sucesso (padrões)!

Recommended