You are on page 1of 37

UML: Diagrama de

Classes
Alex Vidigal Bastos
Programao Orientada a Objetos
UML Diagrama de Classes

Introdo Diagrama de !lasses

"lementos do diagrama de !lasses

"xem#lo: $istema de matr%!la


Introdo & Diagrama de
Classes

A#resenta m !onjnto de !lasses e ses


rela!ionamentos'

( o diagrama !entral da modelagem


orientada a objetos'
Aluno
nome: Texto
matrcula: Inteiro
definirNome(nome)
obterNome()
definirMatricula(matricula)
obterMatricula
Turma
cdigo: Texto
sala: Texto
horario: Horario
estaAberta()
definirProfessor(rofessor)
incluirAluno(aluno)
est!"matriculado"em
Professor
nome: Texto
titula#$o: Texto
definirNome(nome)
obterNome()
definirTitulacao(titulo)
obterTitulacao
%"ministrada"or
"lementos Diagrama de
Classes

"lementos de m diagrama de !lasses

Classes

)ela!ionamentos

Asso!iao
Agregao
Com#osio

*enerali+ao

De#end,n!ia
"lementos Diagrama de
Classes

"lementos de m diagrama de !lasses

Classes

)ela!ionamentos

Asso!iao
Agregao
Com#osio

*enerali+ao

De#end,n!ia
"lementos Diagrama de
Classes
Classes

*ra-!amente. as !lasses so re#resentadas #or


ret/nglos in!lindo nome. atribtos e m0todos'

De1em re!eber nomes de a!ordo !om o


1o!abl2rio do dom%nio do #roblema'

( !omm adotar m #adro #ara nome2&las


Ex: todos os nomes de !lasses sero sbstanti1os
singlares
!om a #rimeira letra mai3s!la
Nome&da&classe
atributo'
atributo(
)))
metodo'
metodo(
metodo*
)))
"lementos Diagrama de
Classes
Classes

Atribtos

)e#resentam o !onjnto de !ara!ter%sti!as


4estado5 dos objetos da6ela !lasse

Visibilidade:
+ #3bli!o: 1is%1el em 6al6er !lasse de 6al6er
#a!ote
# #rotegido: 1is%1el #ara !lasses do mesmo #a!ote
- #ri1ado: 1is%1el somente #ara !lasse
"xem#lo:
7 nome : $tring
"lementos Diagrama de
Classes
Classes

M0todos

)e#resentam o !onjnto de o#era8es


4!om#ortamento5 6e a !lasse 9orne!e

Visibilidade:
+ #3bli!o: 1is%1el em 6al6er !lasse de 6al6er
#a!ote
# #rotegido: 1is%1el #ara !lasses do mesmo #a!ote
- #ri1ado: 1is%1el somente #ara !lasse
"xem#lo:
& get:ome45 : $tring
"lementos Diagrama de
Classes

"lementos de m diagrama de !lasses

Classes

Relacionamentos

Asso!iao
Agregao
Com#osio

*enerali+ao

De#end,n!ia
"lementos Diagrama de
Classes
Relacionamentos
Os rela!ionamentos #ossem:
:ome: des!rio dada ao rela!ionamento 49a+. tem. #ossi.'''5
$entido de leitra
:a1egabilidade: indi!ada #or ma seta no -m do rela!ionamento
Mlti#li!idade: ;''<. ;''=. <. <''=. >. ?''@
Ai#o: asso!iao 4agregao. !om#osio5. generali+ao e
de#end,n!ia
Pa#0is: desem#enBados #or !lasses em m rela!ionamento
"lementos Diagrama de
Classes

)ela!ionamentos
Pessoa +mresa
')),
Tio: associa#$o
multilicidade
,
trabalha ara
emregado
a%is
emregador
sentido de leitura
E a navegabilidade?
nome
"lementos Diagrama de
Classes

)ela!ionamentos
O !liente sabe 6ais so ses endereos. mas o
endereo no sabe a 6ais !lientes #erten!e
Endereo Cliente
reside
1
*
na-egabilidade
"lementos Diagrama de
Classes

"lementos de m diagrama de !lasses

Classes

Relacionamentos

Asso!iao
Agregao
Com#osio

*enerali+ao

De#end,n!ia
"lementos Diagrama de
Classes
Relacionamentos: Asso!iao

Uma associao 0 m rela!ionamento


estrtral 6e indi!a 6e os objetos de ma
!lasse esto 1in!lados a objetos de otra
!lasse'

Uma asso!iao 0 re#resentada #or ma linBa


sClida !one!tando das !lasses'
Pessoa +mresa
associa#$o
"lementos Diagrama de
Classes
Relacionamentos: Asso!iao
Indi!adores de mlti#li!idade:
< "xatamente m
<''= Um o mais
;''= Dero o mais 4mitos5
= Dero o mais 4mitos5
;''< Dero o m
m''n Eaixa de 1alores 4#or exem#lo: F''@5
Pessoa +mresa
')),
associa#$o
multilicidade
,
trabalha ara
)ela!ionamentos:
Asso!iao
Relacionamentos: Asso!iao
"xem#lo:
Um Estudante #ode ser
m alno de ma Dis!i#lina e
m jogador da "6i#e de Etebol
Cada Dis!i#lina de1e ser !rsada #or no m%nimo < alno
Um alno #ode !rsar de ; at0 G dis!i#linas
"lementos Diagrama de
Classes

"lementos de m diagrama de !lasses

Classes

Relacionamentos

Asso!iao
Agregao
Com#osio

*enerali+ao

De#end,n!ia
"lementos Diagrama de
Classes

)ela!ionamento: Agregao
( m ti#o es#e!ial de asso!iao

Utili+ada #ara indi!ar Htodo&#arteI


m objeto H#arteI #ode 9a+er #arte de 12rios objetos HtodoI
Item Pedido
1
1..*
agrega#$o
todo
arte
"lementos Diagrama de
Classes

"lementos de m diagrama de !lasses

Classes

Relacionamentos

Asso!iao
Agregao
Composio

*enerali+ao

De#end,n!ia
"lementos Diagrama de
Classes

)ela!ionamento: Com#osio
( ma 1ariante semanti!amente mais H9orteI da agregao
Os objetos H#arteI sC #odem #erten!er a m 3ni!o objeto HtodoI e t,m
o se tem#o de 1ida !oin!idente !om o dele
Jando o HtodoI morre todas as sas H#artesI tamb0m morrem
Teclado Notebook
Frame Window
1
1
1
0..*
1..* 0..*
errado
"lementos Diagrama de
Classes

)ela!ionamento: Com#osio
"x:
Janela
Scroll Ttlo Cor!o
1
0..1 " 1
Em!resa
#e!artamento Escrit$rio
1
1..*
1..*
0..1
*
"lementos Diagrama de
Classes

Agregao X Com#osio
Andar Edifcio
1..n
Mesa Sala
1..n
11
1..n
1..n
"lementos Diagrama de
Classes

"lementos de m diagrama de !lasses

Classes

Relacionamentos

Asso!iao
Agregao
Com#osio

*enerali+ao

De#end,n!ia
"lementos Diagrama de
Classes

)ela!ionamento: *enerali+ao

( m rela!ionamento entre itens gerais


4s#er!lasses5
e itens mais es#e!%-!os 4sb!lasses5
um
um tipo de
superclasse
subclasse
Veculo
Terrestre Areo
"lementos Diagrama de
Classes

"lementos de m diagrama de !lasses

Classes

Relacionamentos

Asso!iao
Agregao
Com#osio

*enerali+ao

De#end,n!ia
"lementos Diagrama de
Classes
)ela!ionamento: De#end,n!ia
)e#resenta 6e a alterao de m objeto 4o objeto inde#edendente5
#ode a9etar otro objeto 4o objeto de#endente5
"x:
Obs:
A !lasse !liente de#ende de algm ser1io da !lasse 9orne!edor
A mdana de estado do 9orne!edor a9eta o objeto !liente
A !lasse !liente no de!lara nos ses atribtos m objeto do ti#o
9orne!edor
Eorne!edor 0 re!ebido #or #ar/metro de m0todo
cliente %ornecedor
"xem#lo: $istema de
Matr%!la
A Uni1ersidade KLD deseja in9ormati+ar se sistema de matr%!las:
A ni1ersidade o9ere!e 12rios !rsos'
O Coordenador de m !rso de-ne as dis!i#linas 6e sero o9ere!idas
#elo se !rso nm dado semestre'
V2rias dis!i#linas so o9ere!idas em m !rso'
V2rias trmas #odem ser abertas #ara ma mesma dis!i#lina. #or0m o
n3mero de estdantes ins!ritos de1e ser entre ? e <;'
Estudantes sele!ionam F dis!i#linas'
Jando m estdante matri!la&se #ara m semestre. o Sistema de
Registro Acadmico (SRA 0 noti-!ado'
A#Cs a matr%!la. os estdantes #odem. #or m !erto #ra+o. tili+ar o
sistema #ara adi!ionar o remo1er dis!i#linas'
!ro"essores sam o sistema #ara obter a lista de alnos matri!lados em
sas dis!i#linas'
Aodos os s2rios do sistema de1em ser 1alidados'
Descrio
"xem#lo: $istema de
Matr%!la
Professor .oordenador +studante
Turma /ni-ersidade 0iscilina
1ormularioMatricula
.urso
AnalisadorMatricula
2istema3egistroAcademico 4istaAlunos
Diagrama de Classes: identificando as classes
"xem#lo: $istema de
Matr%!la
"xem#los de !andidatos a rela!ionamentos:
A 0 #arte 9%si!a o lCgi!a de #'
A est2 !ontido -si!amente o logi!amente em #'
A 0 ma des!rio de #'
A 0 membro de #'
A 0 sbnidade organi+a!ional de #'
A sa o geren!ia #'
A se !omni!aMinterage !om #'
A est2 rela!ionado !om ma transao #'
A 0 #oss%do #or #'
A 0 m ti#o de #'
Diagrama de Classes: identificando os relacionamentos
"xem#lo: $istema de
Matr%!la

O 9orml2rio de matr%!la 0 #ro!essado


#or m analisador de matr%!la

O analisador de matr%!la geren!ia a


dis!i#lina
1ormularioMatricula AnalisadorMatricula
%"rocessado"or
' 5)),
0iscilina
1ormularioMatricula
AnalisadorMatricula
%"rocessado"or
' 5)),
'
5)),
Diagrama de Classes: identificando os relacionamentos
"xem#lo: $istema de
Matr%!la
LES/PUC-Rio
Professor
.oordenador
+studante Turma
0iscilina
1ormularioMatricula AnalisadorMatricula
%"reenchido"or
est!"matriculado"em
%"rocessado"or
%"ministrada"or
%"definida"or
aluno
gerencia
'
'
' 5)),
'
5)),
' ')),
'
')),
' 5))* *))'5 6
Diagrama de Classes
"xem#lo: $istema de
Matr%!la

Os atribtos #odem ser en!ontrados


examinando&se as des!ri8es dos !asos de
so e tamb0m #elo !onBe!imento do
dom%nio do #roblema'
Cada trma o9ere!ida #ossi
m !Cdigo. ma sala e m
Bor2rio'
Turma
cdigo
sala
hor!rio
Diagrama de Classes: identificando os atributos
"xem#lo: $istema de
Matr%!la
.oordenador
1ormularioMatricula AnalisadorMatricula
%"reenchido"or
est!"matriculado"em
%"rocessado"or
%"ministrada"or
%"definida"or
aluno
gerencia
'
'
' 5)),
'
5)),
' ')),
'
')),
' 5))* *))'5 6
Turma
cdigo
sala
hor!rio
Professor
nome
titula#$o
+studante
nome
matricula
0iscilina
nome
num.r%ditos
Diagrama de Classes
"xem#lo: $istema de
Matr%!la

$omente de#ois de modelar os


diagramas de se6N,n!ia
SIM
submeterFormulario(formulario)
AnalisadorMatricula
adicionar(aluno disci"lina)
# SIM # AnalisadorMatricula
$# adicionar(ad )
1# submeterFormulario(f)
Diagrama de Classes: identificando os mtodos
"xem#lo: $istema de
Matr%!la

" a na1egabilidadeO
public class Turma {
private String codigo;
private String sala;
private Estudante alunos[];
...
}
Diagrama de Classes:
public class Estudante {
private String nome;
private String matricula;
...
}
OBS: Turma n$o aarece como atributo de Estudante!
Turma Estudante
%..1&
est-matriculado-em
%..1& '
"xem#lo: $istema de
Matr%!la

A!res!entando generali+a8es:
Atribtos. o#era8es eMo rela!ionamentos !omns #odem ser
mo1idos #ara ma !lasse mais geral'
Estudante
matricula # Inteiro
definirMatricula(matricula)
obterMatricula()
(suario
nome # Te)to
definir*ome(nome)
obter*ome()
+rofessor
titulacao # Te)to
definirTitulacao(titulacao)
obterTitulacao()
Diagrama de Classes:
"xem#lo: $istema de Matr%!la
SIM
(suario
nome # Te)to
definir*ome(nome)
obter*ome()
FormularioMatricula
obterEstudante() # Estudante
obter*ome,Isci"lina(i # Inteiro) # Te)to
Estudante
matricula # Inteiro
definirMatricula(matricula)
obterMatricula()
1
1
-preenchido-por
1
1 -aluno
+rofessor
titulacao # Te)to
definirTitulacao(titulacao)
obterTitulacao()
AnalisadorMatricula
adicionar(aluno disci"lina) 1 1 1 1
usa
1
&...
1
&...
-processado-por
,isci"lina
nome # Te)to
num/reditos # Inteiro
esta/om"leta()
adicionar(aluno # Estudante)
&...
1
&...
1
gerencia
Turma
codi0o # Te)to
sala # Te)to
1orario # 2orario
numAlunos # Inteiro
com"leta # 3ooleano
esta/om"leta() # 3ooleano
%..1&
'
%..1&
'
est-matriculado-em
&..% 1 &..% 1
responsvel-por
1...
11
1...

You might also like