Sie sind auf Seite 1von 32

Orientao a Objetos

com UML
Elementos bsicos de OO em
UML
Objeto
Classe
Atributo
Operao
Interface
Componente
Pacote
Subsistema
Relacionamentos
Vrios tipos de diagrama

Anlise e Projeto OO com UML e


Padres| 2
Objeto em UML

: Conta

Apenas o nome da
classe contaSaque

Apenas o nome do
contaSaque :
objeto
Conta

Nome da classe e do
objeto

Anlise e Projeto OO com UML e


Padres| 3
Classe em UML
O que deve ser modelado por uma classe?
Conta
O que abstrao e modularidade?

Nome da Classe Conta


numero
Atributos estrutura
saldo
Operaes credito()
debito() comportamento
getSaldo()
getNumero()

Anlise e Projeto OO com UML e


Padres| 4
Visibilidade

Marcaes de acesso podem ser


usadas para especificar o tipo de
acesso permitido aos atributos e
operaes

+ pblico
# protegido
- privado
Anlise e Projeto OO com UML e
Padres| 5
Interface
Interfaces definem um tipo especificando
apenas a assinatura de seus mtodos
Interfaces no possuem atributos e seus
mtodos no tm corpo
Classes, subsistemas e componentes
implementam interfaces
provem implementao para os mtodos
especificados em uma interface
Idealmente, interfaces deveriam prover
contratos
Anlise e Projeto OO com UML e
Padres| 6
Exemplo: Independncia do meio
de armazenamento
Isolando as colees de negcio de mudanas
na coleo de dados correspondente

CadastroContas

<<interface>>
RepositorioContas

RepositorioContasBDR RepositorioContasOO

Anlise e Projeto OO com UML e


Padres| 7
Interface em UML:
notao alternativa
RepositorioContasBDR

RepositorioContasOO

RepositorioContas
RepositorioContasXML

Relacionamentos
de realizao

Anlise e Projeto OO com UML e


Padres| 8
Classes, Interfaces e Classes
Abstratas

Interfaces

Assinaturas dos mtodos


Classes

Atributos Classes Abstratas


Mtodos
Atributos
Mtodos
Assinatura de Mtodos

Anlise e Projeto OO com UML e


Padres| 9
Componente em UML

<<EXE>> <<DLL>>
Arquivo fonte Arquivo Componente
executvel

Interface do
Componente

Anlise e Projeto OO com UML e


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

nome do
pacote

Anlise e Projeto OO com UML e


Padres| 11
Subsistema em UML

Realizao
Subsistema

<<subsystem>>

Interface Nome do subsistema

Anlise e Projeto OO com UML e


Padres| 12
Subsistemas e Componentes

Ambos encapsulam um Projeto


comportamento
modelado por interfaces <<subsystem>>
Nome do
Subsistemas subsistema
representam
componentes no
modelo de projeto Implementao
Componentes so a
realizao fsica dos Nome do
componente
subsistemas

Anlise e Projeto OO com UML e


Padres| 13
Relacionamentos
Associao
simples
agregao
composio
Dependncia
Generalizao
Realizao
Anlise e Projeto OO com UML e
Padres| 14
Associao
Relao estrutural entre classes
Nome da associao

Pessoa trabalha Empresa

Associao

Papis
Classe

Pessoa Empresa
Empregado Empregador

Anlise e Projeto OO com UML e


Padres| 15
Agregao
Tipo especial de associao
Relacionamento todo-parte
O todo possui um nvel de abstrao
maior que a parte
Todo Parte

Empresa Departamento

Agregao

Anlise e Projeto OO com UML e


Padres| 16
Composio
Tipo especial de agregao
Relao de posse mais forte
O todo responsvel pela criao da parte
A parte no vive sem o todo
No permite compartilhamento

Todo Parte

Empresa Departamento

Composio
Anlise e Projeto OO com UML e
Padres| 17
Dependncia
Relacionamento no estrutural (uso)
mais fraco que associao
Uma dependncia entre dois elementos
indica que mudana em um elemento
pode causar mudanas no outro

LeitoraCartao Carto

lerCartao (cartao) Relacionamento


de Dependncia

Anlise e Projeto OO com UML e


Padres| 18
Dependncia
Pode existir relacionamento de
dependncia entre vrios
elementos de UML
Classe Cliente Fornecedor Componente

Pacote Cliente Fornecedor

PacoteCliente PacoteFornecedor
Dependncia

Fonte: Rational

Anlise e Projeto OO com UML e


Padres| 19
Multiplicidade

Multiplicidade define quantos


objetos participam do
relacionamento
O nmero de instncias de uma classe
relacionadas a uma instncia de outra
classe

Especificado em cada uma das pontas da


associao
Anlise e Projeto OO com UML e
Padres| 20
Tipos de Multiplicidade
No especificada
Exatamente um 1
Zero ou mais 0..*
Muitos (mesmo que 0..*)
*
Um ou mais
1..*
Zero ou um
0..1
Intervalo determinado
2..4
Valores mltiplos
2, 4..6

Anlise e Projeto OO com UML e


Padres| 21
Exemplo: Multiplicidade

Multiplicidade

Empresa 1 1..* Pessoa

Anlise e Projeto OO com UML e


Padres| 22
Navegao

Especifica a direo da associao


Associaes e agregaes so
bidirecionais por default, mas
desejvel que a navegao seja
restringida a apenas uma direo
Associaes bidirecionais so mais
difceis de implementar e acoplam
o modelo

Anlise e Projeto OO com UML e


Padres| 23
Exemplo: Navegao

Empresa 1 1..* Pessoa

Navegao

Anlise e Projeto OO com UML e


Padres| 24
Generalizao
Relacionamento entre classes onde uma
classe compartilha a estrutura (atributos e
relacionamentos) e comportamento
(operaes) de outras classes
Define uma hierarquia de abstraes
Relacionamento um tipo de (is-a-kind-of)
Herana comportamental (behavioural
inheritance)
Referncia clssica: A behavioral notion of
subtyping (Liskov & Wing)

Anlise e Projeto OO com UML e


Padres| 25
Generalizao

Uma subclasse pode


adicionar atributos, operaes e
relacionamentos
redefinir operaes herdadas

Tipos de herana: simples e


mltipla

Anlise e Projeto OO com UML e


Padres| 26
Herana Simples
Classes herdando de apenas uma outra classe

Figura
cor
Superclasse largura da linha
desenhar()
(pai)
girar(graus)
selecionar()
Relacionamento
de Generalizao
Crculo Retngulo
raio vertices
Subclasses centro desenhar()
diagonal()
desenhar()

Quadrado

Anlise e Projeto OO com UML e


Padres| 27
Herana Mltipla
Classes herdando de mais de uma
classe

Mamfero AnimalVoador
Herana
mltipla

Cachorro Gato Morcego Passarinho Gaviao

Anlise e Projeto OO com UML e


Padres| 28
Herana Mltipla

O que acontece quando as


superclasses possuem o mesmo
mtodo (mtodos com o mesmo
nome?
O que acontece quando se tenta
executar um mtodo que no est
definido na subclasse? Em que
hierarquia de superclasses deve-se
procurar o mtodo?

Anlise e Projeto OO com UML e


Padres| 29
Realizao
Indica que um elemento serve como contrato que o
outro deve seguir

Exemplos:

Classe Subsistema Componente

Realizao

Caso de uso Realizao de Caso de uso

Anlise e Projeto OO com UML e


Padres| 30
Exerccio - Arquitetura
Defina uma arquitetura simplificada
de uma aplicao bancria, com:
Pelo menos 2 tipos de conta (corrente,
poupana) e um cadastro de contas
Cliente e um cadastro de clientes
Operaes para criar, remover, debitar,
creditar, transferir, ...
Adoo do padro fachada

Anlise e Projeto OO com UML para


Sistemas RT| 31
Diagramas UML

Diagramas de UML usados no curso


(apresentados sob demanda)
Casos de uso
Classes
Sequncia
Comunicao (Colaborao)
Pacotes
Estados
Componentes (usado em SOA)
Anlise e Projeto OO com UML e
Padres| 32

Das könnte Ihnen auch gefallen