Você está na página 1de 20

UML: classe e relacionamentos

Prof.: Clarindo Isaas Pereira da Silva e Pdua


Synergia / Gestus
Departamento de Cincia da Computao - UFMG

UML: classes e relacionamentos

UML: viso geral

Bibliografia

Rumbaugh, J.; Jacobson, I.; Booch, G., The Unified Modeling


Language Reference Manual, Addison Wesley, 2nd edition,
2004.

Booch, G.; Rumbaugh, J.; Jacobson, I., "Unified Modeling

Classe
Regras
Mecanismos comuns

Language User Guide", 2nd Edition, Addison Wesley, 2005.

Eriksson, H-E, Penker, M. Lyons, B., Fado, D. UML 2 Toolkit,

Arquitetura

Wiley, 2004

UML: classe e relacionamento

Classe
Classe o descritor de um conjunto de
objetos que compartilham os mesmos
atributos, operaes, mtodos e
comportamento.
Uma classe e outros elementos da UML que
descrevem conjuntos de instncias so
considerados descritores.

UML: classe e relacionamento > Classe

Representam um conceito dentro do sistema que


est sendo modelado.
Formam o vocabulrio do sistema.
Dependendo do modelo, o conceito pode ser relativo a
coisas do mundo real ou envolver algoritmos ou
implementao em computador.
Exemplo: Parede, Janela, Porta,etc podem ser exemplos
classes de um modelo que representa um edficio.

UML: classe e relacionamento > Classe

Reificao
Uma classe pode tambm representar conceitos abstratos
(no material). Neste caso, usa-se reificao, isto , tratar o
conceito abstrato como coisa.
A reificao uma instrumento muito utilizado pelo ser humano,
por exemplo, na literatura e filosofia.
Ex.: Tup, deus do trovo em tupi.
Um nome a reificao de uma coisa e um verbo a
reificao de uma ao
A reificao tambm muito utilizada em modelagem.
Por exemplo, pode-se criar uma classe Sonho que vai
descrever as propriedades de um sonho.

UML: classe e relacionamento > Classe

O nome de uma classe um string textual, constituidos


de letras, nmeros e outros caracteres especiais exceto
alguns utilizados na linguagem como :
Na prtica, devem ser nomes ou frases curtas que
funcionam como nomes, trazidos do vocabulrio do
domnio.
As letras iniciais de cada palavra devem ser maisculas.
Ex. SensorTemperatura

O nome pode ser um caminho (path).


java::awt::Rectangle

UML: classe e relacionamento > Classe

Responsabilidade
Uma responsabilidade um contrato ou obrigao de uma

UML: classe e relacionamento > Classe > Responsabilidade

Responsabilidades so descritas como frases ou pargrafos


curtos em formato textual livre.
Podem ser documentadas em um compartimento especfico,

classe.
Responsabilidades representam os conhecimentos e as aes
que possibilitam a uma classe cumprir seu papel.
Os atributos e operaes podem ser vistos como aspectos ou

como parte da descrio da classe ou como uma nota


estereotipada como <<responsabilidade>> ligada a classe.
Exemplo:

caracterticas atravs das quais as responsabilidades so


cumpridas.

Agente de Fraude

Um bom ponto de partida para a definio de uma classe


a definio de suas responsabilidades.

10

UML: classe e relacionamento > Classe

Atributo
Atributo um propriedade, com nome, de
uma classe que descreve um conjunto de
valores que instncias da propriedade podem
ter.
Uma classe pode ter nenhum ou vrios
atributos.
A cada momento, os objetos de uma classe
vo ter valores especficos para cada um de
seus atributos.

11

<<Responsabilidade>>
. Determina o risco de
uma ordem do cliente
. Gerencia critrios de
fraude especficos de
cliente

UML: classe e relacionamento > Classe > Atributo

Os nomes de atributos so semelhantes aos nomes de


classe, s que a primeira letra costuma ser minscula.
Pode-se especificar a classe (tipo) a que pertence um atributo
e um valor inicial.
Exemplo:

Parede

Cl iente
nome
endereo
dataNascimento

identificao : Integer
altura : Float
espessura : Float
suporta Viga : Boolean = 0

12

UML: classe e relacionamento > Classe

UML: classe e relacionamento > Classe

Operao

Tcnicas de modelagem

Uma operao a especificao de uma transformao ou


consulta que um objeto pode ser solicitado a executar.
Em geral, a invocao de uma operao de um objeto
resulta na alterao de seu estado.
O nome de uma operao costuma ser verbo ou frase curta
que representa um comportamento.
Exemplo:classe de java::awt

Rectangle
add()
grow()
move()
isEmpty()

Classes so usadas para modelar abstraes


oriundas do problema a resolver ou da soluo a
ser desenhada.
Essas abstraes so parte do vocabulrio do domnio;
Juntas, representam as coisas que so importantes
para usurios e/ou implementadores.

13

14

UML: classe e relacionamento > Classe > Tcnicas


de modelagem

Uma classe bem estruturada:

UML: classe e relacionamento > Classe > Tcnicas


de modelagem

Quando mostrar uma classe em um diagrama,

prov uma abstrao clara de alguma coisa trazida do

mostre somente as propriedades importantes para o

domnio do problema ou da soluo;

entendimento da abstrao em seu contexto;

compreende um conjunto pequeno, bem definido de

organize listas longas de atributos e operaes usando

responsabilidades e as realiza bem;

agrupamentos;

permite uma clara separao entre sua especificao e

mostre classes relacionadas entre si no mesmo diagrama de

sua implementao.

classe.

simples e inteligvel mas ao mesmo tempo extensvel


e adaptvel.

15

16

UML: classe e relacionamento > Classe > Tcnicas


de modelagem

UML: classe e relacionamento > Classe > Tcnicas


de modelagem

Para modelar o vocabulrio de um sistema:

Para modelar o vocabulrio de um sistema:

Identifique as coisas (substantivos) que os usurios ou

Estabelea uma distribuio balanceada de

implementadores usam para descrever o problema ou

responsabilidades entre as classes.

uma soluo.

Identifique as classes que colaboram com as

Essas coisas so classes ou candidatas a classes.


Para cada abstrao, identifique um conjunto de
responsabilidades.

classes identificadas.
Proveja os atributos e operaes necessrios
para executar as responsabilidades das

As responsabilidades precisam estar bem definidas

classes.

e entendidas por todos.

17

18

UML: classe e relacionamento > Classe > Tcnicas


de modelagem

Cartes CRC

UML: classe e relacionamento > Classe > Tcnicas


de modelagem > Cartes CRC

Exemplo de carto CRC:

No trabalho de modelagem, cartes CRC (Classes,


Responsabilidade, Colaboraes) podem ser usados em na etapa
inicial de identificao de classes ou de candidatos a classe.
Cartes CRC so cartes (fichas de papel), cada ficha
corresponde a uma classe. Cada ficha contm o nome da classe e
2 colunas com descrio de suas responsabilidades e
colaboraes.
Colaboraes apresentam outras classes que interagem com a
classe descrita para o cumprimento de suas responsabilidades.

Nome da
classe

Venda

Responsabilidades

Colaboraes

Inserir/excluir item de
venda

Item de venda

Editar item de venda

Estoque

Calcular impostos

Mercadoria

Totalizar venda
Registrar data e hora

19

20

UML: classe e relacionamento > Classe > Tcnicas de


modelagem > Exemplo de modelagem de vocabulrio

UML: classe e relacionamento > Classe > Tcnicas


de modelagem

Exemplo de modelagem de vocabulrio

Soluo:
Descrever tarefas realizadas no negcio.

Modelar o vocabulrio de uma empresa que fornece


Identificar os substantivos ou locues (conjunto de duas ou

equipamentos para clientes.

mais palavras que funcionam como uma unidade) que

Cenrio: um cliente faz pedidos de compras de

aparecem nas descries.

produtos. Uma transao comercial realizada. A

Os substantivos ( ou locues) so candidatos a classe.

empresa localiza os produtos e faz um carregamento

Mas podem tambm ser atributos, operaes ou


conceitos fora do domnio de interesse da modelagem.

que enviado ao cliente.

21

22

UML: classe e relacionamento > Classe > Tcnicas de


modelagem > Exemplo de modelagem de vocabulrio

Soluo:

UML: classe e relacionamento > Classe > Tcnicas de


modelagem > Exemplo de modelagem de vocabulrio
Nome da classe

Cliente

A empresa armazena seus produtos em vrios


armazns.
O cliente envia uma solicitao de oramento.
O oramento enviado ao cliente.
O cliente envia um pedido de compra.

Responsabilidades

Colaboraes

Descrever dados de um cliente

Fatura

Criar um novo cliente

Pedido

Excluir cliente

Os itens do pedido so localizados nos armazns


Alterar dados do cliente

e embarcados.

23

24

UML: classe e relacionamento > Classe > Tcnicas de


modelagem > Exemplo de modelagem de vocabulrio
Nome da classe

Armazenagem

UML: classe e relacionamento > Classe > Tcnicas de


modelagem > Exemplo de modelagem de vocabulrio
Nome da classe

Produto

Responsabilidades

Colaboraes

Responsabilidades

Colaboraes

Descrever a localizao de um
produto antes do carregamento

Produto

Descrever um produto

Armazenagem

Fatura

Criar, editar e excluir um produto


do cadastro da empresa

Fatura

Localizar um produto

Pedido

Carregamento

25

26

UML: classe e relacionamento > Classe > Tcnicas de


modelagem > Exemplo de modelagem de vocabulrio
Nome da classe

Pedido

UML: classe e relacionamento > Classe > Tcnicas de


modelagem > Exemplo de modelagem de vocabulrio
Nome da classe

Transao

Responsabilidades

Colaboraes

Responsabilidades

Colaboraes

Identificar um pedido de
fornecimento de um cliente

Produto

Descrever o estado da transao


comercial envolvendo o
fornecimento.

Pedido

Fatura

Carregamento

Carregamento

Cliente

Cliente

27

Fatura

28

UML: classe e relacionamento > Classe > Tcnicas de


modelagem > Exemplo de modelagem de vocabulrio
Nome da classe

Carregamento

UML: classe e relacionamento > Classe > Tcnicas de


modelagem > Exemplo de modelagem de vocabulrio
Armazenagem

Cliente

Responsabilidades

Colaboraes

Manter informao sobre


produtos embarcados em
comparao com pedidos

Pedido

nome
endereo
dataNascimento

Fatura

Pedido

Cliente

Produto
Iden ti fi cao
nome
quantida de
locali zao

item
quantidade

Armazenagem
Transa o

Produto

Carregamento

aes
comprometer()
recuar()
teve Sucesso()

29

UML: classe e relacionamento > Classe > Tcnicas de


modelagem
Exemplo de distribuio de responsabilidades

Em uma modelagem, no interessante ter


classes com poucas responsabilidades (muito
simples) nem classes muito complexas.
Classes com muitas responsabilidades so

30

UML: classe e relacionamento > Classe > Tcnicas de


modelagem
Para se distribuir responsabilidades:
identifique as classes que trabalham em conjunto para executar
um comportamento;
identifique o conjunto de responsabilidades de cada classe;

difceis de usar

analise o conjunto de classes como um todo. Parta classes

no muito re-utilizveis.

muito complexas em classes menores, junte classes muito

Classes muito simplificadas:


levam a uma fragmentao do modelo
modelo fica difcil de gerenciar e de se entender.

simples em classes maiores e re-aloque suas responsabilidades.


Considere o modo como as classes interagem e redistribua suas
responsabilidades de modo que nenhuma classe faa muito ou
muito pouco.

31

32

UML: classe e relacionamento > Classe > Tcnicas de


modelagem

Exemplo de distribuio balanceada de


responsabilidades (do Smalltalk):

UML: classe e relacionamento > Classe

Modelagem em outros domnios


Para utilizar a UML em modelagem de processos de
negcio ou outras aplicaes que no envolvam software:

<<Responsabilidade>>
.gerenciar o estado do
modelo

Modelo

Viso

Modele suas abstraes como classes.


Pode-se usar mecanismos de extenso da UML para criar
esteretipos e outros elementos de modelagem especficos do

<<Responsabilidade>>
.sincronizar mudanas no
modelo e em suas vistas

Controlador

<<Responsabilidade>>
.representar o modelo na tela
.gerenciar movimentos e
redimensionam entos da vista
.interceptar eventos do usurio

domnio que lhe interessa.


Pode-se modelar coisas envolvendo hardware que podem
conter software como nodos, de modo a permitir detalhar sua
estrutura.

33

34

UML: classe e relacionamento > Classe > Modelagem em


outros domnios

UML: classe e relacionamento > Classe

Modelagem de tipos primitivos

Exemplo.

No outro extremo, as vezes interessante modelar


Rob

<<equipamento>>
Lin ha de montag em

tipos primitivos que vm de linguagens de


programao, ex.: inteiros, enumerao, etc.
Para isso:
modele a abstrao como datatype ou enumeration,

<<hu mano>>
Controlador do Rob

usando classes estereotipadas.


Use restries da UML (constraints) se for necessrio
especificar um intervalo de valores.

35

36

UML: classe e relacionamento > Classe > Modelagem de tipos


primitivos

UML: classe e relacionamento > Classe

Exemplos:

Visibilidade
uma enumerao cujos valores {public, protected,

<<datatype>>
Int
{valores no intervalo -2**31 a +2**31}

<<enumeration>>
Boolean
false
true

private} indicam se o elemento de modelagem ao qual


se referem podem ser vistos fora de seu espao de
nome.
Espao de nome a parte do modelo na qual o nome

<<enumeration>>
Estado

pode ser definido ou usado. Dentro de um espao de

desocupado
trabalhando
erro

nome, o nome tem um significado nico.

37

38

UML: classe e relacionamento > Classe > Visibilidade

A visibilidade de um elemento de modelo define se ele poder


ser referenciado por um elemento fora de seu espao de
nome.
Visto de outra maneira, a visibilidade parte da relao entre um

UML: classe e relacionamento > Classe > Visibilidade

A UML define 3 nveis de visibilidade:


Pblico: um elemento que possa ver o continer de um
elemento indicado na visibilidade pode tambm v-lo.

elemento e seu Continer.

Protegido: somente um elemento dentro de um continer

O Continer de um elemento pode ser uma classe, um pacote ou

ou o descendente de um continer pode ver o elemento

algum outro espao de nome.

Visibilidade pode ser aplicada a atributos e operaes em


relao a uma classe ou entre classes e o pacote onde ela foi
definida (seu Continer), por exemplo.

39

indicado.
Privado: somente um elemento dentro do continer pode
ver o elemento.

40

10

UML: classe e relacionamento > Classe > Visibilidade

A visibilidade usada para realizar o encapsulamento

UML: classe e relacionamento > Classe

Escopo

de uma abstrao, ou seja, expor somente as features


que so necessrias para a cumprimento das
responsabilidades de um elemento de modelagem.
Isso essencial para se construir sistemas slidos e

Feature: nome que se d a uma propriedade como atributo


ou operao que encapsulada em um elemento de
modelagem como um classificador.

resilientes, facilitando o entendimento, a modularizao, a

O escopo indica o contexto que d significado a um nome.

manuteno, etc.

Define se uma feature de uma classe representa um valor


em cada instncia da classe ou se representa um valor
compartilhado por todas as instncias da classe.

41

UML: classe e relacionamento > Classe > Escopo

42

UML: classe e relacionamento > Classe

H 2 tipos de escopo na UML:


instance: cada instncia do classificador tem seu prprio valor para
a feature;

Classe abstrata
Uma classe abstrata aquela usada somente na

classe ou classifier (esttico): s h um nico valor para a feature


para todas as instncias do classificador.

Notao: um escopo de classificador denotado por sublinhado no


nome do atributo ou operao

construo de uma hierarquia de relacionamentos de


generalizao no pode ter nenhuma instncia direta.
utilizada para definir operaes e atributos comuns a um
conjunto de classes filho.

Relgio
marca
tipo
horrio
data
identificadorCAtegoria
43

O oposto, aquela que gera objetos como instncias,


chamado classe concreta.

44

11

UML: classe e relacionamento > Classe > Classe abstrata

UML: classe e relacionamento > Classe

Polimorfismo

Uma classe folha aquela que no pode gerar um filho


Em UML, pode-se usar a propriedade {leaf} para

Operaes tm algumas propriedades similares a classes.

especificar uma classe folha.

Uma operao abstrata aquela que no tem um mtodo

Uma classe raiz aquela que no pode ter pais.


Em UML, pode-se usar a propriedade {root} para
especificar uma classe raiz.

definido.
Uma implementao para a operao tem que ser suprida em
algum de seus descendentes concretos.

Um elemento abstrato denotado pelo nome em itlico.


O oposto de abstrato concreto

45

UML: classe e relacionamento > Classe > Polimorfismo

Uma operao normalmente considerada polimrfica,


isto , sua implementao (seu mtodo) pode ser suprida
ou sobrescrita por uma classe descendente.
Um descendente pode definir ou sobrescrever um mtodo de
uma operao polimrfica.

O oposto de polimrfica uma operao dita folha (leaf).


Neste caso, um mtodo tem que ser definido para a
operao.

Uma operao no declarada folha considerada


polimrfica.

47

46

UML: classe e relacionamento > Classe > Polimorfismo

Exemplo a seguir:
as classes Icon, Rectangular Icon e Arbitrary
Icon so abstratas;
display e isInside so operaes polimrficas;
Icon::display() uma operao abstrata;
Icon::getID() uma operao folha e concreta.

48

12

UML: classe e relacionamento > Classe

UML: classe e relacionamento > Classe > Polimorfismo

Icon
origin : Point
display()
getId() {leaf}

Rectangular Icon

Arb itrary Icon

height : Integer
width : Integer

Atributo

{ro ot}

Atributo uma propriedade de uma classe que


descreve um conjunto de valores que instncias da
propriedade podem ter.

edge : LineCollection
isInside(p : Point) : Bolean

A sintaxe completa da definio de um atributo :


[visibility] nome [mutiplicity] [:type] [= initial-value]
[{property-string}].

Button

Ex.: apelido [0:5]: string


display()

+ id : Integer {frozen}
OKButton

{leaf}

display()

49

50

UML: classe e relacionamento > Classe

UML: classe e relacionamento > Classe > Atributo

Operao

H 3 propriedades de atributos definidas na UML:


Changeable: no h restries quanto a se modificar o

Operao a especificao de uma transformao ou

valor do elemento (default).

consulta que um objeto pode ser solicitado a executar.

addOnly:

A sintaxe completa de uma operao :

para atributos com multiplicidade maior que

1, novos valores podem ser adicionados ao conjunto de


valores para um atributo mas, uma vez criados, um valor
no pode ser removido ou alterado.
frozen:

o valor do atributo no pode ser alterado

depois que o elemento inicializado.

51

[visibility] nome [(parameter-list)] [:return type] [{propertystring}].


Ex.: - rearranja
conjunto (n : Name, s : string)
restart () {guarded}

52

13

UML: classe e relacionamento > Classe > Operao

UML: classe e relacionamento > Classe > Operao

O nome da operao mais seus parmetros e tipo de


retorno chamado de Assinatura da operao.
Cada parmetro da forma:
[direction] name : type [= default-value]
Direction pode ter um dos valores:
in

parmetro de entrada, no pode ser modificado;

Propriedades de operaes
H 5 propriedades de operaes definidas na UML:
leaf

folha, indica que a operao no

polimrfica e no se pode sobrescrever.


isQuery

a execuo da operao no altera o estado

out parmetro de sada, pode ser alterado para


comunicar informao ao chamador;

do sistema, isto , uma funo de consulta sem

inout combinao dos anteriores, pode ser alterado.

efeitos colaterais.

53

54

UML: classe e relacionamento > Classe > Operao >


Propriedades de operaes

sequential:

UML: classe e relacionamento > Classe

Classe template

os chamadores devem coordenar a execuo da

operao de fora, de modo que somente um fluxo de execuo

Classe template, tambm chamada classe parametrizada, um

exista no objeto em um tempo. Caso contrrio, a semntica e

elemento parametrizado, usado para a gerao de novas classes a

integridade do objeto no pode ser garantida.

partir de um gabarito.

guarded:

Exemplo:

a semntica e integridade do objeto garantida na

Item
Value
Bucket

presena de mltiplos fluxos de controle atravs da


sequencializao das chamadas para todas as operaes

Map

guardadas do objeto.
bin d(i : Item, v : Value ) : Boole an
isBou nd(i : Item) : Boolean

concurrent : a semntica e integridade da operao garantida na


presena de mltiplos fluxos de controle tratando a operao como
atmica, ou seja, ou seja, vrios fluxos de controle podem se
ativados concorrentemente sem problemas.

55

Mapf

56

14

UML: classe e relacionamento > Classe

Modelagem de semntica de uma classe


A UML permite vrias possibilidades para

UML: classe e relacionamento > Classe > Modelagem de


semntica de uma classe

Possibilidades para especificao da


semntica

especificao da semntica de uma classe,

Especificar as responsabilidades da classe.

variando de mais informal, como responsabilidade,

Especificar a semntica da classe como um todo usando

a mais formal, como OCL (Object constraint

um texto estruturado em uma Nota ligada classe.

language).

Especificar o corpo de cada mtodo usando um texto

Menos formal significa menos completo ou detalhado,


no significa menos preciso.

57

UML: classe e relacionamento > Classe > Modelagem de semntica


de uma classe > Possibilidades para especificao da semntica

Especificar pr e ps condies de cada


operao e o invariante de uma classe,
utilizando Notas associadas s operaes ou a
classe.
Especificar uma Mquina de Estados para a
classe.
A mquina de estados um comportamento que especifica a

estruturado ou linguagem de programao.


Para isso pode ser utilizado uma Nota associada operao.

58

UML: classe e relacionamento > Classe > Modelagem de semntica


de uma classe > Possibilidades para especificao da semntica

Especificar uma Colaborao que representa a classe.


Uma Colaborao d nome a uma sociedade de papis e
outros elementos que trabalham juntos para prover um
comportamento cooperativo que maior que a soma de
todos os elementos.
Uma Colaborao descreve uma estrutura mas pdeo ser
usada com Interaes para especificar todas as dimenses
da semntica de uma classe.

Especificar pr e ps condies de cada operao e o


invariante de uma classe utilizando uma linguagem formal
como OCL.

seqencia de estados que um objeto assume durante seu


ciclo de vida em resposta a eventos.

59

60

15

UML: classe e relacionamento

UML: classe e relacionamento > Classe > Modelagem de semntica


de uma classe > Possibilidades para especificao da semntica

Interface

Observaes
Pode-se combinar as vrias possibilidades apresentadas.

Interface uma declarao de um conjunto coerente de caractersticas e


obrigaes, como um contrato que um classificador se prope a cumprir.

Ter em mente os objetivos da especificao da semntica.

Descreve o comportamento visvel externo de um elemento

Pode-se especificar o que uma classe faz (viso externa) ou

Pode representar um comportamento completo ou parte dele.

como ela faz (viso interna), ou ambas.

Uma interface descreve a especificao das operaes (assinaturas) mas

A viso externa mais voltada para os usurios/clientes, a

no as implementaes das operaes.

viso interna mais voltada para os implementadores.

Uma interface pode ser associada a uma classe ou a um componente que a


realiza.

61

62

UML: classe e relacionamento

UML: classe e relacionamento > Relacionamento

Relacionamento

Dependncia

Relacionamentos so denotados por linhas conectando elementos

Dependncia uma conexo semntica entre duas Coisas na qual uma

de modelagem.

alterao em uma delas (o fornecedor) pode afetar ou suprir informao

Modelam conexes semnticas entre elementos.

Um modelo forma uma teia de relacionamentos. Cuidado ao

necessria outra Coisa (cliente).


Pode ser considerada um relacionamento de uso, onde uma Coisa necessita
utilizar outra Coisa.

modelar:
o abuso da utilizao de relacionamentos em um modelo dificulta sua

Graficamente, representada como uma seta com linha pontilhada, dirigida

compreenso vira uma baguna;

no sentido da Coisa de que se depende.

O oposto, pode significar uma perda da riqueza que est associada ao

Pode-se dar um nome a uma dependncia, mas mais comum se usar

modo como as coisas colaboram entre si em um sistema.

63

esteretipos para definir tipo de dependncia.

64

16

UML: classe e relacionamento > Relacionamento >


Dependncia

UML: classe e relacionamento > Relacionamento

Generalizao

Exemplo: dependncia utilizada com freqncia

Generalizao

para indicar que uma classe usa outra classe como

uma relao taxonmica (de classificao) entre um elemento

argumento na assinatura de uma operao.

mais geral e um elemento mais especfico.


Um relacionamento de especializao/generalizao indica que
objetos do elemento especializado (ou filho) podem substituir

Clipe de Filme

os objetos do elemento generalizado (ou pai).

nome

O filho tem todos os atributos e operaes dos pais mas pode ter

Can al

ExibeEm(canal : Canal)
comear()
parar()
reiniciar(c : Canal)

outros atributos e operaes

Uma generalizao pode ter nome mas raramente utilizado.

65

66

UML: classe e relacionamento > Relacionamento >


Associao

UML: classe e relacionamento > Relacionamento

Associao

Navegao

Descreve um conjunto de ligaes, sendo uma ligao uma

Uma associao, por default, indica uma navegao bidirecional.

conexo semntica entre objetos.

No entanto, pode-se indicar um sentido de navegao:

Muito utilizada para indicar possibilidade de navegao entre

uma seta em um dos lados da associao indica o sentido de

objetos.

navegao;

Uma associao pode ter nome e indicao de direo de


leitura:

Empresa

Trabalha para

67

isso indica o sentido em que a navegao mais eficiente mas no


exclui navegao no outro sentido.

Usurio

S enha

Pessoa

68

17

UML: classe e relacionamento > Relacionamento >


Associao

UML: classe e relacionamento > Relacionamento >


Associao

Multiplicidade

Nome de papel ou nome de extremidade de associao

Multiplicidade pode ser associado a um lado de uma

(UML 2)
Oficialmente, na UML 2.0 chama-se nome de extremidade de

associao para indicar quantos objetos da classe pode ser

associao.

associado a objetos da classe do lado oposto.

utilizado em um dos lados de uma associao para indicar

Multiplicidade pode ser considerada como uma restrio

o papel com que a classe a seu lado apresenta-se para a

cardinalidade de um conjunto.

classe do lado oposto.

Pessoa

+Cli ente

Cliente de

Empresa

+Seguradora

Banco

Profissional
0..1

69

1..n

70

UML: classe e relacionamento > Relacionamento >


Associao > Visibilidade

UML: classe e relacionamento > Relacionamento >


Associao

Visibilidade

A visibilidade pblica default.

Em uma associao, a visibilidade, usada em um de seus

A visibilidade privada indica que objetos de um lado

lados, indica se objetos de uma classe podem ver ou

no so acessveis a nenhum objeto fora da

navegar para objetos do outro lado.

associao.

Exemplo: no exemplo, a senha somente pode ser acessado

A visibilidade protegida indica que objetos de um lado

por objetos da classe usurio.

no so acessveis a nenhum objeto fora da

Grupo de Usurio

+usu rio

associao, exceto para filhos no outro lado.

-chave
Usurio

Senha
+proprietrio

71

72

18

UML: classe e relacionamento > Relacionamento >


Associao

UML: classe e relacionamento > Relacionamento >


Associao

Qualificador

Classe de associao

Descreve um atributo ou lista de atributos de uma associao, associado a


um de seus lados, onde os valores desses atributos selecionam um subconjunto (geralmente um) de objetos da classe do outro lado.
Exemplo:

utilizada para se definir propriedades de uma associao.


Exemplo:

Empresa

Pessoa
1..n

Oficina de Reparo

Emprego

Item de Conserto

identiificador : Integer

1..n

descrio
data Admisso
salrio

0..1

73

74

UML: classe e relacionamento > Relacionamento >


Associao

Restries
Alm das propriedades mostradas acima, outras
restries (constraints) podem ser aplicadas a

UML: classe e relacionamento > Relacionamento >


Associao

Agregao e composio
Agregao um tipo especial de associao que indica uma
relao todo/parte.
Composio uma forma de agregao com posse forte e
tempo de vida idntico.

associaes.
Algumas restries so definidas na UML:
ordered: especifica que o conjunto de objetos naquele
lado da associao ordenado.

Um objeto s pode participar de uma composio.

A relao de agregao ou composio independente da


direo de navegao.

xor: especifica que, em um conjunto de associaes,


somente uma se manifesta para cada objeto associado.

Departamento

Empresa
1

0..n
75

76

19

UML: classe e relacionamento > Relacionamento >


Associao

Realizao

Exemplo de modelo

uma relao semntica entre classificadores onde um

Tem

Escola

0..1

Departa me nto

classificador especifica um contrato que o outro

1..n

1
1..n

1..n

1..n

classificador garante cumprir.

Lotado em

A realizao utilizada entre interfaces e as classes ou

Membro
1..n

1..n

1..n

Faz

Estudante
1..n

componentes que as realizam e entre casos de uso e as


colaboraes que os realizam.

Professor
0 .. n

77

+Chefe
1

Ensina

Disciplina
1 0..n

UML: classe e relacionamento > Relacionamento

1..n

78

20

Você também pode gostar