Professional Documents
Culture Documents
Classes
Alex Vidigal Bastos
Programao Orientada a Objetos
UML Diagrama de Classes
Classes
)ela!ionamentos
Asso!iao
Agregao
Com#osio
*enerali+ao
De#end,n!ia
"lementos Diagrama de
Classes
Classes
)ela!ionamentos
Asso!iao
Agregao
Com#osio
*enerali+ao
De#end,n!ia
"lementos Diagrama de
Classes
Classes
Atribtos
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
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
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
Classes
Relacionamentos
Asso!iao
Agregao
Com#osio
*enerali+ao
De#end,n!ia
"lementos Diagrama de
Classes
Relacionamentos: Asso!iao
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
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
Classes
Relacionamentos
Asso!iao
Agregao
Com#osio
*enerali+ao
De#end,n!ia
"lementos Diagrama de
Classes
)ela!ionamento: *enerali+ao
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
" 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...