ArtigoSQLMagazine63UtilizandoUML:DiagramadeClasses
www.devmedia.com.br
[versoparaimpresso]
Linkoriginal:
http://www.devmedia.com.br/articles/viewcomp.asp?
comp=12251
http://www.devmedia.com.br/articles/viewcomp_forprint.asp?comp=12251
1/29
18/02/2016
ArtigoSQLMagazine63UtilizandoUML:DiagramadeClasses
Projeto
UtilizandoUML:DiagramadeClasses
EsteoterceiroartigodeumasriequeabordaoassuntoUML.Nesta
srieestamosdemonstrandoosconceitosdescritosnaverso2.0da
UML.Noltimoartigo,apresentamosoDiagramadeCasosdeUso,
importanteferramentautilizadanasetapasiniciaisdaAnlisede
Requisitos.Nesteterceiroartigodasrie,abordaremosoDiagramade
Classes,umdosmaisimportantesdiagramasdaUML.
Introduo
http://www.devmedia.com.br/articles/viewcomp_forprint.asp?comp=12251
2/29
18/02/2016
ArtigoSQLMagazine63UtilizandoUML:DiagramadeClasses
Oprincipalobjetivodaanlisedesistemasrealizarummapeamento
prviodocomportamentorequeridoparaoselementosdemodelagem
nosistemaaseremimplementadosposteriormentenasfasesde
construo.Duranteasetapasiniciaisdeumprojeto,comum
realizarmosumrefinamentonosdetalhesenaprecisododesenhodo
sistemaafimdeconseguirclassesdeanlisequepossamevoluirantes
deseremdetalhadasduranteasatividadesdeespecificaoe
implementao.
Nopresenteartigo,falaremossobreumimportantediagramadaUML,o
diagramadeclasses,cujoprincipalobjetivopermitiravisualizaoe
orelacionamentoexistenteentreasclassesobtidasnasetapasiniciais
atravsdamodelagemconceitual.
ODiagramadeClasses
Odiagramadeclassesconsideradopormuitosautorescomoomais
importanteeomaisutilizadodiagramadaUML.Seuprincipalenfoque
estempermitiravisualizaodasclassesqueirocomporosistema
comseusrespectivosatributosemtodos,bemcomoemdemonstrar
comoasclassesdosistemaserelacionam,secomplementame
transmiteminformaesentresi.Estediagramaapresentaumaviso
estticadecomoasclassesestoorganizadas,preocupandoseem
definiraestruturalgicadasmesmas.Odiagramadeclassesserve
comobaseparaaconstruodamaiorpartedosdemaisdiagramasda
UML.
Basicamente,odiagramadeclassescompostoporsuasclassese
pelasassociaesexistentesentreelas,ouseja,osrelacionamentos
entreasclasses.SegundoGuedesemseulivroUMLUmaAbordagem
Prtica,oobjetivododiagramadeclassesmostraros
relacionamentosexistentesentreasclassesquesoabstradasno
projeto,ecomoessesrelacionamentoscolaboramparaaexecuode
umprocessoespecfico.
http://www.devmedia.com.br/articles/viewcomp_forprint.asp?comp=12251
3/29
18/02/2016
ArtigoSQLMagazine63UtilizandoUML:DiagramadeClasses
PerspectivasdeConstruodeDiagramasdeClasse
Existemtrsperspectivasquevocpodeusarquandoprojetar
diagramasdeclasses:
Conceitual:Setomarmosaperspectivaconceitual,voc
projetaumdiagramaquerepresentaosconceitosdodomnioque
estsendoestudado.Estesconceitosseronaturalmente
relacionadossclassesqueiroexecutlos.Naverdade,um
modeloconceitualdeveserprojetadocompoucaounenhuma
preocupaocomosoftwarequepoderimplementlo.Portanto,
deveserconsideradoindependentedalinguagemimplementada.
Estaperspectivarecebeonomedeperspectivaessencial.
Especificao:Agoraestamosexaminandoosoftware,mas
estamosanalisandoassuasinterfaces,noasuaimplementao.
Odesenvolvimentoorientadoaobjetosdispemuitanfasena
diferenaentreinterfaceeimplementao,masisso
freqentementenegligenciadonaprticaporqueanooque
temosdeclasseemumalinguagemorientadaaobjetoscombina
interfacecomimplementao.
Implementao:Nestaviso,realmentetemosclassese
estamospondoaimplementaosclaras.Esta,provavelmente,
aperspectivausadacommaisfreqncia.
Acompreensodasdiversasperspectivascrucialtantoparadesenhar
comoparalerdiagramasdeclasses.Infelizmente,aslinhasentreas
perspectivasnosorgidas,eamaioriadosanalistasdesistemasno
sepreocupaemtersuasperspectivasclassificadasquandoelesesto
desenvolvendoamodelagemdeumsistema.
Classes,AtributoseMtodos
http://www.devmedia.com.br/articles/viewcomp_forprint.asp?comp=12251
4/29
18/02/2016
ArtigoSQLMagazine63UtilizandoUML:DiagramadeClasses
Asclasses,atributosemtodossoosprincipaiselementosque
compemumdiagramadeclasses.
Classescostumampossuiratributos,que,comojfoiexplicadono
artigoanteriordestasrie(verNota1),armazenaosdadosdosobjetos
daclasse,emtodos,quesoasfunesqueumainstnciadaclasse
podeexecutar.Osvaloresdosatributospodemvariardeinstnciapara
instncia.Graasaessacaracterstica,alis,possvelidentificarcada
objetoindividualmente,aopassoqueosmtodossoidnticospara
todasasinstnciasdeumaclasseespecfica.
Nota1.Classes
Noltimoartigodasriepudemosverqueumaclassedescreveum
conjuntodeobjetoscomasmesmaspropriedades(atributos),o
mesmocomportamento(mtodos),osmesmosrelacionamentoscom
outrosobjetoseamesmasemntica.
Emboraosmtodossejamdeclaradosnodiagramadeclasses,
identificandoospossveisparmetrosquesoporelesrecebidoseos
possveisvaloresporelesretornados,odiagramadeclassesnose
preocupaemdefinirasetapasqueestesmtodosdeveropercorrer
quandoforemchamados,sendoestafunoatribudaaoutros
diagramas,comoodiagramadeseqncia,quesepreocupacoma
ordemtemporaldeexecuodosmtodos.
Umaclasse,nalinguagemUML,representadaporumretngulocom
attrsdivises,descritasaseguir(verFigura1):
http://www.devmedia.com.br/articles/viewcomp_forprint.asp?comp=12251
5/29
18/02/2016
ArtigoSQLMagazine63UtilizandoUML:DiagramadeClasses
Figura1.Exemplodeclassecontendoatributosemtodosdeum
cliente.
DescrioouNomedaClasse:Aprimeiradivisocontma
descrioounomedaclasse,quenoexemploapresentadona
Figura1Cliente
AtributosdaClasse:Asegundadivisoarmazenaosatributos
eseustiposdedados(oformatoqueosdadosdevempossuirpara
seremarmazenadosemumatributo).Nestecaso,aclasseCliente
contmoatributocpfetelefone,quesodotipolong,oatributo
nomedotipoStringeostatusdotipoboolean
MtodosdaClasse:Aterceiradivisocontmalistados
mtodosdaclasse,quenocasodaclasseClientecontmapenaso
mtodoconsultaquerecebecomoparmetroumvalordotipo
longeretornaumainstnciadaclasseCliente
Ossmbolosdemaisemenosnafrentedosatributosemtodos
representamavisibilidadedosmesmos,oquedeterminaquaistiposde
classepodemutilizaroatributooumtodoemquesto.Estessmbolos
soconhecidoscomoqualificadoresdeacesso(verTabela1).
Qualificador
Significado
public
Indicaqueoelementodaclassepodeserutilizado
livrementeporoutrasclassesdomesmooude
outropacote.
http://www.devmedia.com.br/articles/viewcomp_forprint.asp?comp=12251
6/29
18/02/2016
ArtigoSQLMagazine63UtilizandoUML:DiagramadeClasses
protected
Indicaqueexisteproteoeosdetalhesda
execuodaclassenosoapresentados.
private
Indicaqueapenasmanipulaesinternaspode
haverdentrodaclasse,nopermitindoacesso
nemmesmoporsuasinstncias.
package
Indicaqueocontedopblicodaclassepodeser
utilizadolivrementeporoutrasclasses
pertencentesaomesmopacote.(lerNota2)
Tabela1.Qualificadoresdeacessopermitemdeterminara
acessibilidadedoatributooumtododainstncia.
Nota2.QualificadordeAcessopackage
Oqualificadorpackagesuportadopelalinguagemdeprogramao
JavaenodescritonaespecificaodaUML.Muitossoftwarespara
construodediagramasUML,talcomoUmbrelloeoJude,suportam
suautilizao.
Noobrigatrioqueumaclasseapresenteastrsdivises,jque
podemexistirclassesquenopossuamatributosouquenopossuam
mtodos,ouaindaqueseusatributosemtodosnoprecisemser
apresentadosnodiagrama,jquerecomendadoapresentarsomente
osatributosrelevantesaodiagramaparaevitar,porexemplo,queo
diagramasetornepoludoecomentendimentoconfuso.Destaforma,
possvelencontrarclassescomsomenteduasdivisesoumesmocom
apenasuma,nestecasoaquecontmadescriodaclasse,poisesta
obrigatriasegundoaespecificaodaUML.
Relacionamentos
http://www.devmedia.com.br/articles/viewcomp_forprint.asp?comp=12251
7/29
18/02/2016
ArtigoSQLMagazine63UtilizandoUML:DiagramadeClasses
Asclassescostumampossuirrelacionamentosentresicomointuitode
compartilharinformaesquecolaboremumacomasoutraspara
permitiraexecuodosdiversosprocessosexecutadospelosistema.As
seesaseguirapresentamasdiversasformasderelacionamento
possveisemumdiagramadeclassesdaUML.
Associaes
Umaassociaodescreveumvnculoqueocorrenormalmenteentre
duasclasses,chamadonestecasodeassociaobinria,mas
perfeitamentevlidoqueumaclasseestejavinculadaasimesma,caso
conhecidocomoassociaounria,ouqueumamesmaassociaoseja
compartilhadaporvriasclasses,oqueconhecidocomoassociao
ternriaouNria,emboraestaltimasejaotipodeassociaomais
raroecomplexo.
Emumaassociao,determinasequeasinstnciasdeumaclasse
estodealgumaformaligadassinstnciasdasoutrasclasses
envolvidasnaassociao,podendohavertrocadeinformaesentre
elasecompartilhandomtodos,oumesmoqueumadeterminada
instnciadeumadasclassesorigineumaoumaisinstnciasdasoutras
classesenvolvidasnaassociao.Umaassociaopodeaindaidentificar
algumnveldedependnciaentreasclassesqueacompem.
Asassociaesrepresentamoequivalentemaisprximodos
relacionamentosrealizadosnoMERModeloEntidadeRelacionamento
(verNotaDevMan1),ouseja,seuobjetivodefiniramaneiracomo
asclassesestounidasentreeinteragementresi,compartilhando
informaes.
NotaDevMan1.SemelhanadoDiagramadeClassesaoMER
http://www.devmedia.com.br/articles/viewcomp_forprint.asp?comp=12251
8/29
18/02/2016
ArtigoSQLMagazine63UtilizandoUML:DiagramadeClasses
Odiagramadeclassesfoiintencionalmenteprojetadoparaseruma
evoluodoModelodeEntidadeRelacionamento(MER)epodeser
utilizadoparamodelaraestruturalgicadastabelasqueirocompor
obancodedados.NasentidadesquecompunhamoMER,noentanto,
eramdefinidosapenasosdadosaserempreservados,queso
representadosnasclassespelosseusatributos.Porm,odiagramade
classesofereceaindaapossibilidadededefinirasoperaesque
podemseraplicadasstarefas,representadaspelosmtodos.
Damesmamaneiraquenodiagramadecasosdeuso,asassociaes
sorepresentadasporlinhasconectandoasclassesenvolvidas,podendo
tambmpossuirsetasemsuasextremidadesparaindicara
navegabilidadedaassociao.Anavegabilidaderepresentaosentidoem
queasinformaessotransmitidasentreasclassesenvolvidas,
emboraissonosejaobrigatrio,mesmoporquesenohouversetas
significaqueasinformaespodemtrafegarentretodasasclassesda
associao.
Asassociaespodemtambmpossuirttulosparadeterminarotipode
vnculoestabelecidoentreasclasses.Damesmaformacomona
navegabilidade,noobrigatriodefinirumadescrioparaa
associao,pormtildeterminarumnomeparaquandoelano
estiverimplcitaenecessriaalgumaformadeesclarecimento.Neste
caso,recomendveldeterminartambmanavegabilidadeda
associaoparafacilitarosentidodaleitura.
AssociaoUnriaouReflexiva
Estetipodeassociaoocorrequandoexisteorelacionamentodeuma
classeconsigomesmo.Umexemplodeassociaounriapodeser
observadonaFigura2.
http://www.devmedia.com.br/articles/viewcomp_forprint.asp?comp=12251
9/29
18/02/2016
ArtigoSQLMagazine63UtilizandoUML:DiagramadeClasses
Figura2.AssociaoUnriaExemplodeclasseFuncionrio.
PodemospercebernoexemplodaclasseFuncionrioqueamesma
possuiosatributoscdigo,nomeecdigodopossvelchefedo
funcionrio.Ochefedofuncionriotambm,porsuavez,um
funcionriodaempresae,portanto,tambmconstituiumainstnciada
classeFuncionrio.Dessaforma,aassociaochamadaChefiaindica
umapossvelrelaoentreumaoumaisinstnciasdaclasse
Funcionrio,ouseja,estaassociaodeterminaqueumfuncionrio
podeounochefiaroutrosfuncionrios.
necessrioexistirumaassociaodaclassefuncionriocomela
mesma,oqueforaaclasseapossuirumatributoCodigoChefepara
armazenarocdigodofuncionrioqueresponsvelpelainstnciado
funcionrioemquesto.Dessemodo,apsconsultarumainstnciada
classefuncionrio,podeseutilizaroatributoCodigoChefedainstncia
consultadaparapesquisarporoutrainstnciaquepossuaumvalorno
atributoCodigocomomesmovalorcontidonoatributoCodigoChefedo
funcionriojpesquisado.
http://www.devmedia.com.br/articles/viewcomp_forprint.asp?comp=12251
10/29
18/02/2016
ArtigoSQLMagazine63UtilizandoUML:DiagramadeClasses
Outrainformaoexistentenaassociao,almdeseuprprionome,
ainformaorepresentadapelovalor0..*.Estaconhecidacomo
multiplicidade(verNota3).Noexemploapresentadodaclasse
Funcionrio(verFigura2),amultiplicidade0..*indicaqueum
determinadofuncionriopodechefiarnenhum(0)oumuitos(*)
funcionrios,ouseja,umfuncionriopodenochefiarningumoupode
chefiarumoumaisfuncionrios.Podeseperceberquesexiste
multiplicidadeemumadasextremidadesdaassociao,porpadro,
quandonoexistemultiplicidadeexplcitaentendesequea
multiplicidade1..1,significandoqueumesomenteumobjetodesta
extremidadeserelacionacomosobjetosdaoutraextremidade.No
exemploapresentadonaFigura2issosignificaqueumfuncionrio
podeounochefiaroutrosfuncionrios,masumfuncionriopossuium
eapenasumfuncionriocomochefeimediato.Algunsdosdiversos
valoresdemultiplicidadequepodemserutilizadosemumaassociao
soapresentadosnaTabela2.
Nota3.DefiniodeMultiplicidade
Amultiplicidadeextremamentesemelhanteaoconceitode
cardinalidadeutilizadonoMER.Amultiplicidadeprocuradeterminar
qualdasclassesenvolvidasemumaassociaoforneceinformaes
paraasoutras,almdepermitirespecificaronveldedependnciade
umaclasseparacomasoutrasenvolvidasnaassociao.
Multiplicidade
Significado
0..1
http://www.devmedia.com.br/articles/viewcomp_forprint.asp?comp=12251
11/29
18/02/2016
ArtigoSQLMagazine63UtilizandoUML:DiagramadeClasses
Nomnimozero(nenhum)enomximo
um.Indicaqueosobjetosdasclasses
associadasnoprecisamobrigatoriamente
estarrelacionados,massehouver
relacionamentoindicaqueapenasuma
instnciadaclasseserelacionacomas
instnciasdaoutraclasse.
1..1
Umesomenteum.Indicaqueapenasum
objetodaclasseserelacionacomos
objetosdaoutraclasse.
0..*
Nomnimonenhumenomximomuitos.
Indicaquepodeounohaverinstnciasda
classeparticipandodorelacionamento
Muitos.Indicaquemuitosobjetosda
classeestoenvolvidosnorelacionamento.
1..*
Nomnimoumenomximomuitos.
Indicaquehpelomenosumobjeto
envolvidonorelacionamento,podendo
havermuitoenvolvidos.
3..5
Nomnimotrsenomximocinco.Indica
queexistempelomenostrsinstncias
envolvidasnorelacionamentoequepodem
serquatrooucincoasinstncias
envolvidas,masnomaisdoqueisso.
Tabela2.Exemplosdemultiplicidade.
AssociaoBinria
Associaesbinriasocorremquandosoidentificadosrelacionamentos
entreduasclasses.Estetipodeassociaoconstituisenamaiscomum
encontradanosdiagramasdeclasses.
http://www.devmedia.com.br/articles/viewcomp_forprint.asp?comp=12251
12/29
18/02/2016
ArtigoSQLMagazine63UtilizandoUML:DiagramadeClasses
Figura3.AssociaoBinria.Exemplodeassociaoentreasclasses
ScioeDependente.
NaFigura3podemosverificarqueumobjetodaclasseSciopodese
relacionarounocominstnciasdaclasseDependentes,conforme
demonstraamultiplicidade0..*,enquantoque,seexistirumobjetoda
classeDependente,eleterqueserelacionarobrigatoriamentecomum
objetodaclasseScio,poiscomonofoidefinidaamultiplicidadena
extremidadedaclasseScio,entendesequeamultiplicidade1..1.
Podemosacrescentarumadescrioparaestaassociao,bemcomo
definiradireodasinformaespormeiodautilizaoda
navegabilidade.NoexemploapresentadonaFigura4,podemosvero
mesmoexemplodasclassesScioeDependenteapresentadonaFigura
3,adicionandoumnomeparaaassociaoedefinindosua
navegabilidade.
Figura4.AssociaoBinriacomDescrioeNavegabilidade.
http://www.devmedia.com.br/articles/viewcomp_forprint.asp?comp=12251
13/29
18/02/2016
ArtigoSQLMagazine63UtilizandoUML:DiagramadeClasses
AutilizaodeumadescrioassociaoapresentadanaFigura4
permitecompreendermelhoroobjetivodaassociaoeadefinioda
navegabilidade,almdeauxiliaramultiplicidadeadefinirosentidodas
informaesefacilitaraleituradaassociao.Comoanavegabilidade
daassociaoPossuiapontadaclasseScioparaaclasse
Dependente,podemosleraassociaodaseguintemaneira:Uma
instnciadaclasseSciopossuinomnimonenhumainstnciaeno
mximomuitasinstnciasdaclasseDependente,eumainstnciada
classeDependentepossudaporumaesomenteumainstnciada
classeScio.
AssociaoTernriaouNria
AssociaesTernriasouNriassoassociaesqueconectammaisde
duasclasses.Sorepresentadasporumlosangoparaondeconvergem
todasasligaesdaassociao(verFigura5).
Figura5.ExemplodeAssociaoTernriaouNria.
NaFigura5identificamosumaassociaoquedemonstraumfato
corriqueironamaioriadasuniversidades,ondeumprofessorpode
lecionarparamuitasturmas,umaturmapodepossuirmuitos
professoreseutilizarmuitassalasdeaulaeumprofessorlecionando
paraumaturmaespecificapodeutilizarmaisdeumasaladeaula.
Assim,podemosleraassociaoapresentadanaFigura5daseguinte
forma:Umprofessorlecionaparanomnimoumaturmaenomximo
http://www.devmedia.com.br/articles/viewcomp_forprint.asp?comp=12251
14/29
18/02/2016
ArtigoSQLMagazine63UtilizandoUML:DiagramadeClasses
paramuitas,umaturmapossuinomnimoumprofessorenomximo
muitos,eumprofessorlecionaparaumadeterminadaturmaemno
mnimoumasalaounomximomuitas.Asassociaesnriasso
teisparademonstrarassociaescomplexas,noentantodeveseevitar
utilizlas,poissualeitura,porvezes,difcildeserinterpretada.
Agregao
Agregaoumtipoespecialdeassociaoondesetentademonstrar
queasinformaesdeumobjeto(chamadoobjetotodo)precisamser
complementadaspelasinformaescontidasemumoumaisobjetosde
outraclasse(chamadosobjetoparte).Estetipodeassociaotenta
demonstrarumarelaoTodo/Parteentreosobjetosassociados.
Objetospartenopodemserdestrudosporumobjetodiferentedo
objetotodoenemseremcriadosporoutroquenosejaobjetotodo.O
smbolodeagregaodiferedosmbolodeassociaoporconterum
losangonaextremidadedaclassequecontmosobjetostodo.
AFigura6demonstraumexemplodeagregao,ondeexisteuma
classePedidoquearmazenaosobjetostodoeumaclasseItemPedido,
ondesoarmazenadososobjetosparte.
http://www.devmedia.com.br/articles/viewcomp_forprint.asp?comp=12251
15/29
18/02/2016
ArtigoSQLMagazine63UtilizandoUML:DiagramadeClasses
Figura6.Agregaonoexemploexisteagregaoapenasentrea
classePedidoeclasseItemPedido.
NoexemploapresentadonaFigura6,podemosperceberpela
multiplicidade1..*naassociaoCompenaextremidadedaclasse
Produto,queumobjetodaclasseProdutopodesereferiramuitos
objetosdaclasseItemPedido.Noentanto,umobjetodaclasseItem
PedidoserefereasomenteumainstnciadaclasseProduto,a
multiplicidadenaextremidadedaclasseItemPedidonofoi
especificadaeportanto1..1.
NocasodaagregaoentreasclassesPedidoeItemPedido,
apresentadaumadiferenaemrelaoassociaobinriaentrea
classeProdutoeaclasseItemPedido.Umpedidopodetantopossuir
apenasumitemcomovrios,emuitodifcildeterminaronmero
mximodeitensqueumpedidopodeter,emesmoqueissofosse
possvel,naimensamaioriadasvezesonmeromximonoseria
atingido,oquefariacomquediversosatributosreservadosparaitens
dopedidofossemdeixadosembranco,ocupandoumespao
desnecessrio.
NoexemploapresentadonaFigura6,asinformaesdaclassePedido
estoincompletas,possuindoapenasatributosquenoserepetem,
comoporexemploonmerodopedidoeadataemqueestefoi
expedido.Osatributosquepodemserepetir,nocasoreferenteaos
dadosdasinstnciasdaclasseItemPedido,comoporexemploa
quantidadedoitemsolicitadoeseuvalorunitrio,devemser
armazenadosemumaclassedependentedaclassePedido.Dessa
forma,semprequeumainstnciadaclassePedidoforpesquisada,todas
asinstnciasdaclasseItemPedidorelacionadasinstnciadaclasse
Pedidopesquisadadeveroserapresentadas.Damesmaforma,sempre
queumobjetoPedidoforexcludo,todososobjetosdaclasseItem
Pedidoaelerelacionadosdevemtambmserexcludos.
http://www.devmedia.com.br/articles/viewcomp_forprint.asp?comp=12251
16/29
18/02/2016
ArtigoSQLMagazine63UtilizandoUML:DiagramadeClasses
Composio
UmaassociaodotipoComposioconstituiseemumavariaoda
associaodeAgregao.Elatentarepresentarumvnculomaisforte
entreosobjetostodoeosobjetoparte,procurandodemonstrarqueos
objetospartetmdepertencerexclusivamenteaumnicoobjetotodo
comqueserelacionam.Emumacomposio,ummesmoobjetoparte
nopodeseassociaramaisdeumobjetotodo.
Osmbolodecomposiodiferenciasegraficamentedosmboloda
agregaoporutilizarumlosangopreenchido.Damesmaformaquena
agregao,olosangodeveficaraoladodoobjetotodo(verFigura7).
Figura7.Composio
ObservandoaFigura7,percebesequeumobjetodaclasseRevistaSQL
serefereanomnimoumobjetodaclasseEdio,podendosereferira
muitosobjetosdestaclasse,equecadainstnciadaclasseEdiose
relacionanicaeexclusivamenteaumainstnciaespecficadaclasse
RevistaSQL,nopodendorelacionarsecomnenhumaoutra.
http://www.devmedia.com.br/articles/viewcomp_forprint.asp?comp=12251
17/29
18/02/2016
ArtigoSQLMagazine63UtilizandoUML:DiagramadeClasses
PercebemosnoexemploapresentadoqueumobjetodaclasseEdio
deveserelacionaranomnimo6objetosdaclasseArtigo,podendose
relacionarcomat10objetosdestaclasse.Essetipodeinformaose
tornavlidacomodocumentaoeservecomoumaformadevalidao,
queimpedequeumarevistasejapublicacommenosde6oumaisde
10artigos.Noentanto,umobjetodaclasseArtigoserefereunicamente
aumobjetodaclasseEdio.Issotambmumaformade
documentao,jqueumaediodeumarevistasdevepublicar
trabalhosinditos,assimlgicoquenopossvelaummesmo
objetodaclasseArtigorelacionarseamaisdeumobjetodaclasse
Edio.
IstonoocorrenoexemplodeagregaoapresentadonaFigura6,
porquepodeocorrerdemaisdeumpedidopossuiritensdepedidocom
caractersticasiguais,porexemplo,podehaverdoispedidoscomum
mesmoitemdepedidoreferindosea10unidadesdeumlivrode
linguagemdeprogramaoJava.Osimplesfatodeumprodutose
referiramaisdeumitemdepedidojimplicaqueosobjetositensde
pedidopodemserepetir.
Especializao/Generalizao
Esteumtipoespecialderelacionamentomuitosimilarassociaode
mesmonomeutilizadonodiagramadecasosdeuso(Nota4).Seu
objetivoidentificarclassesancestrais,chamadasgerais,eclasses
herdeiras,chamadasespecializadas.Estetipoderelacionamento
permitetambmdemonstraraocorrnciademtodospolimrficos
(Nota5)nasclassesespecializadasdosistema.
Nota4.DiagramadeCasosdeUso
Noltimoartigodasrieabordamosodiagramadecasosdeuso.
Sugeresefortementeasualeitura.
http://www.devmedia.com.br/articles/viewcomp_forprint.asp?comp=12251
18/29
18/02/2016
ArtigoSQLMagazine63UtilizandoUML:DiagramadeClasses
Nota5.Conceitodemtodospolimrficos
Oconceitodecriaodemtodopolimrficospermiteatravsda
assinaturadosmtodos(parmetrosquesorecebidos),queum
mesmomtodopossuaemumaclassevriasimplementaesdeuma
operaodeformasdiferentes.Amesmaoperao(comomesmo
nome)temvrias(poli)formas(morfismo)deserchamadapela
classeherdeiradaclasseancestral.Esteconceitonaorientaoa
objetosrealizadoatravsdasobrecarga(overload)demtodos.
Assimcomonodiagramadecasosdeuso,a
especializao/generalizaoocorrequandoexistemduasoumais
classescomcaractersticasmuitosemelhantes.Assim,paraevitarter
quedeclararatributose/oumtodosidnticoscomoumaformade
reaproveitarcdigo,criaseumaclassegeralondesodeclaradosos
atributosemtodoscomunsatodasasclassesenvolvidasnoprocessoe
entosedeclaramclassesespecializadasligadasclassegeral,que
herdamtodasassuascaractersticaspodendopossuiratributose
mtodosprprios.
Almdisso,mtodospodemserredeclaradosemumaclasse
especializada,possuindoomesmonome,mascomportandosedeforma
diferente,nosendo,portantonecessriomodificarocdigofontedo
sistemaemrelaoschamadasdemtodosdasclasses
especializadas,porqueonomedomtodonomudou,apenasfoi
redeclaradoemumaclasseespecializadaessecomportademaneira
diferentequandoforchamadoporobjetosdestaclasse.Esteconceitona
orientaoaobjetosrecebeonomedesobrecargademtodos.O
smbolodeespecializao/generalizaoomesmododiagramade
casosdeuso(verFigura8).
http://www.devmedia.com.br/articles/viewcomp_forprint.asp?comp=12251
19/29
18/02/2016
ArtigoSQLMagazine63UtilizandoUML:DiagramadeClasses
Figura8.ExemplodeEspecializao/GeneralizaonoDiagramade
Classes.
AnalisandoaFigura8,verificamosaexistnciadeumaclassegeral
chamadaContaComumquepossuiosatributosnmerodaconta,osaldo
daconta,adataqueestafoiaberta,otipodaconta(secomum,
especialoupoupana,umatributoserherdado),apossveldatade
encerramentodacontaeasituaodaconta(seestativaouno).A
classeContaComumpossuiaindaosseguintesmtodos:
Aberturaparaabrirumaconta,quenestecasoatuacomoum
mtodoconstrutor
Encerramentoparaencerrarumacontajexistente,queno
ummtododestrutor,porqueestemtodosalteraasituao
dacontaepossivelmentedoclienteparainativa
Saquepararetirarvaloresdaconta
Depsitoparainvestirvaloresnaconta
VerSaldoparaverificarquantoestdepositadonaconta
Consultaparaverificarseumadeterminadacontaexiste
http://www.devmedia.com.br/articles/viewcomp_forprint.asp?comp=12251
20/29
18/02/2016
ArtigoSQLMagazine63UtilizandoUML:DiagramadeClasses
Existemaindaduasclassesespecializadasqueherdamascaractersticas
daclassegeral(ContaComum),quesoasclassesContaEspeciale
ContaPoupana.Almdosatributosemtodosherdadosdaclasse
ContaComum,aclasseContaEspecialpossuiaindaoatributolimiteque
determinaquantooclientepodesacaralmdeseusaldoeosmtodos
Abertura,SaqueeJurChequeEspecial.Osdoisprimeirosmtodosso
umaredeclaraodosmtodosAberturaeSaquedaclasse
ContaComum(verNota6),porqueestesprecisamincluirolimiteda
conta.Oltimomtodocalculaovalordejurosasercobradopelouso
dolimite.
Nota6.SobrescritadeMtodos
Aorientaoaobjetosnospermitesobrescrevermtodos.
Diferentementedasobrecarga(overload),quandopodemoscriar
vriasversesdiferentesdomesmomtodo,asobrescrita(override)
permitecriarmosumanovaimplementaoparaummtodoexistente
emumaclasseancestral,substituindoo.Asclassesderivadas
(herdeiras)iroherdaressanovaimplementaoaoinvsdaantiga.
Nopodemosmodificaraassinaturadomtodo,tendoquemantera
quantidadeeostiposdosparmetroscomotambmotipoderetorno
domtodo.
AclasseContaPoupanapossui,almdosatributosemtodosherdados
daclasseContaComum,omtodorendimento,cujafunocalcularos
rendimentosaseremacrescidosaosaldodacontasemprequeesta
fizeraniversrio.
Dependncia
http://www.devmedia.com.br/articles/viewcomp_forprint.asp?comp=12251
21/29
18/02/2016
ArtigoSQLMagazine63UtilizandoUML:DiagramadeClasses
Orelacionamentodedependncianocostumaserencontradocom
muitafreqncianosdiagramasdeclasses.Esterelacionamento,como
oprprionomejdiz,identificaumcertograudedependnciadeuma
classeemrelaooutra,isto,semprequeocorrerumamodificao
naclassedaqualumaoutraclassedepende,estadevertambmsofrer
estamodificao.Orelacionamentodedependnciarepresentadopor
umaretatracejadaentreduasclassescontendoumasetaapontandoa
classedaqualaclasseposicionadanaoutraextremidadedo
relacionamentodependedealgumaforma(verFigura9).
Figura9.ExemploderelacionamentodeDependncia
NoexemploapresentadonaFigura9,notamosorelacionamentode
dependnciaentreasclassesItemCarrinhoeCarinhoDeCompras,que
representamclassesutilizadasemumsistemadevendasatravsda
internet.AclasseItemCarrinhopossuidependnciacomaclasse
CarrinhoDeCompras,porqueamaioriadoseventosocorridosna
instnciadestaclasse,senotodos,afetamdealgumaformaas
instnciasdaclasseItemCarrinho.
Realizao
http://www.devmedia.com.br/articles/viewcomp_forprint.asp?comp=12251
22/29
18/02/2016
ArtigoSQLMagazine63UtilizandoUML:DiagramadeClasses
Umarealizaoumtipoderelacionamentoespecialquemistura
caractersticasdosrelacionamentosdegeneralizaoedependncia,
sendousadanodiagramadeclassesparaidentificarclasses
responsveisporexecutarfunesparaclassesquerepresentam
interfaces.Estetipoderelacionamentoherdaocomportamentodeuma
classe,masnosuaestrutura.Orelacionamentoderealizao
representadoporumasetatracejadacontendoumasetavaziaque
apontaparaaclassedeinterface,enquantoquenaoutraextremidade
definidaaclassequerealizaumcomportamentopretendidopelaclasse
deinterface(verFigura10).
Figura10.ExemploderelacionamentodeRealizao
NoexemploapresentadopelaFigura10,observamosumaclassecom
oesteretipode<>,representandoumapginaparasubmissode
artigoscientficos.Entretanto,ocomportamentodesejadoparaa
interfacequeodeaceitarsubmissesdeartigosnorealmente
realizadoporestainterface,elaapenasrepassaasinformaes
fornecidasparaoutraclasse,aclasseArtigosSubmetidos,queareal
responsvelpelaexecuodomtodoRegistrarArtigos(verNota
DevMan2).
NotaDevMan2.Esteretipos
http://www.devmedia.com.br/articles/viewcomp_forprint.asp?comp=12251
23/29
18/02/2016
ArtigoSQLMagazine63UtilizandoUML:DiagramadeClasses
Noltimoartigodasriepudemosverqueosesteretipos
possibilitamumcertograudeextensibilidadeaoscomponentesda
UML,almdepermitiraidentificaodecomponentesque,embora
semelhantesaosoutros,possuamalgumacaractersticaqueos
diferencie,dandolhesmaisdestaquenodiagrama.
ClasseAssociativa
Classesassociativassoclassesproduzidasquandodaocorrnciade
associaesquepossuemmultiplicidademuitos(*)emtodasassuas
extremidades.Asclassesassociativassonecessriasnessescasos
porquenoexisteumrepositrioquepossaarmazenarasinformaes
produzidaspelasassociaesjquetodasasclassesenvolvidas
apresentammultiplicidademuitos.Istoobrigaqueseuatributochave
sejatransmitidosoutrasclassesenvolvidas,ecomotodaspossueme
mesmamultiplicidade,nenhumadelaspodereceberosatributosdas
outras.Assim,precisocriarumaclasseassociativaparaarmazenaros
atributostransmitidospelaassociao,oquenoimpedequeaclasse
associativapossuaatributosprprios,almdosrecebidos.Umaclasse
associativarepresentadaporumasetatracejadapartindodomeioda
associaoeatingindoumaclasse(verFigura11).
Figura11.ClasseAssociativa
http://www.devmedia.com.br/articles/viewcomp_forprint.asp?comp=12251
24/29
18/02/2016
ArtigoSQLMagazine63UtilizandoUML:DiagramadeClasses
NoexemploapresentadonaFigura11,podemosnotarqueaclasse
AutorserelacionacommuitasinstnciasdaclasseArtigo,euma
instnciadaclasseArtigoserelacionacommuitasinstnciasdaclasse
Autor,ouseja,umautorpodeescrevermuitosartigoseumartigopode
serescritopormuitosautores.Comisso,surgeumquestionamento:
ondeessainformaoarmazenada?Comoexisteamultiplicidade
muitosnasextremidadesdeambasasclassesdaassociao,noh
comoreservaratributosparaarmazenarasinformaesdecorrentesda
associao.Poderiaserreservadoumcertonmerodeatributosem
umadasclassesparaarmazenarestainformao,maspoderiahaver
umdesperdciodeespao,jquenohcomodeterminarumlimite
paraaquantidadedeautoresquepodemescreverumartigoenemh
comodeterminarquantosartigosumautoraindavaiescrever.
Conclumosqueprecisocriarumaclasseparaguardaressa
informao.NotequeaclasseassociativarepresentadanaFigura11
nopossuideclaraodeatributos.Elasimplesmenterecebeos
atributoschavedaclasseAutoredaclasseArtigotransmitidosdeforma
transparentepelaassociao,nosendonecessrio,portanto,criaruma
representao.
UmavariaododiagramadeclassesapresentadonaFigura11
poderiasubstituiraclasseassociativaporumaclasseintermediria,que
representariadamesmaformaaassociao(verFigura12).Na
verdade,segundoGuedesemseulivroUMLumaabordagemprtica,
soduasformasderepresentaramesmainformao.
http://www.devmedia.com.br/articles/viewcomp_forprint.asp?comp=12251
25/29
18/02/2016
ArtigoSQLMagazine63UtilizandoUML:DiagramadeClasses
Figura12.ClasseIntermediriasubstituindoaclasseassociativa
apresentadanoexemplodaFigura11.
Restries
Restriessoinformaesextrasquedefinemcondiesaserem
validadasduranteaimplementaodosrelacionamentosentreas
classes.Asrestriespodemserutilizadasparaamaioriadodiagramas
daUML,noentanto,somaisutilizadosnodiagramadeclasses.As
restriesemgeralsodescritasportextoslimitadosatravsde
chaves.
Emumsistemadelocaes,porexemplo,podemosrestringirqueum
sciosomentepoderrealizarumalocaosenopossuirnenhuma
locaoanteriorpendente(verFigura13).Restriespodemtambm
seraplicadasparavalidarumatributooumtododeumaclasse
especifica,pormeiodousodeNotas(verFigura14).
Figura13.ExemplodeRestriesemumaAssociao.
Figura14.ExemplodeRestriesemumaClassenotequeutilizada
umaNotaparadescreverarestrio.
http://www.devmedia.com.br/articles/viewcomp_forprint.asp?comp=12251
26/29
18/02/2016
ArtigoSQLMagazine63UtilizandoUML:DiagramadeClasses
Notassoadornosexplicativoscolocadosemalgumpontocontguoao
elementoexplicado,representandosimplescomentrios,noalterando,
portanto,osignificadododiagramanoqualelasseencontram.Asnotas
sorepresentadasporretnguloscomumadobranocantosuperior
direito,ligamseaoscomponentesdodiagramaatravsdeumalinha
tracejada,chamadancora.
Restriespodemserutilizadastambmpararepresentaroou
exclusivo(xor),quandoinstnciasdeduasoumaisclassespodemse
relacionarcominstnciasdeumaoutraclasseespecfica,massomente
umainstnciadeumadasclassespodeserelacionarcomumainstncia
daclasseespecfica,emdetrimentodasoutras(verFigura15).
Figura15.ExemplodeRestriocomOuExclusivoumacontapode
serpossudatantoporumIndividuocomoporumaOrganizao,mas
umacontanopodepertenceraambos.
Concluso
Aanliseorientadaaobjetossepreocupacomacriaodeuma
descriododomnioapartirdaperspectivadeumaclassificaopor
objetos.Umadecomposiododomnioenvolveaidentificaodos
conceitos,dosatributosedasassociaesquesoconsideradosde
interesse.
http://www.devmedia.com.br/articles/viewcomp_forprint.asp?comp=12251
27/29
18/02/2016
ArtigoSQLMagazine63UtilizandoUML:DiagramadeClasses
Foiapresentadonesteartigoumdosmais,senoomais,utilizadodos
diagramapropostospelaUML,odiagramadeclasses.Estediagrama,
comovimos,suprecomfolgaanecessidadedoanalistaemvisualizara
relaoexistenteentreasclassesdemodelagemconceitualdosistema.
Emseuprximoprojeto,considerefortementeapossibilidadedeinseri
lonaetapadeanlisedesistema.
Noprximoartigodasrie,abordaremosodiagramadeseqncia,o
diagramadaUMLutilizadopararepresentaraordemtemporalcomque
asmensagenssotrocadasentreosobjetosenvolvidosemdeterminado
processo.
Links
JUDE/CommunityFreeUMLModelingTool
jude.changevision.com
ObjectManagementGroupUML
www.uml.org
UmbrelloUMLModeller
uml.sourceforge.net/
RefernciasBibliogrficas
Livro:BOOCH,GradyRUMBAUGH,JamesJACOBSON,Ivar.UML:
guiadousurio.Trad.FbioFreitas.RiodeJaneiro:Campus,2000.
Livro:GUEDES,GilleanesT.A..UML:umaabordagemprtica.2.ed.
SoPaulo:Novatec,2006.
Livro:LIMA,AdilsondaSilva:UML2.0DoRequisitoSoluo.2.ed.
SoPaulo:rica,2007.
PauloCsarBarretoDaSilva
http://www.devmedia.com.br/articles/viewcomp_forprint.asp?comp=12251
28/29
18/02/2016
ArtigoSQLMagazine63UtilizandoUML:DiagramadeClasses
PauloCsarBarretoDaSilva
GraduadoemAnlisedeSistemaspeloCentroUniversitrioSalesianodeSo
PauloePsgraduadopelaUniversidadeEstadualdeCampinasnareade
OrientaoaObjetos.
http://www.devmedia.com.br/articles/viewcomp_forprint.asp?comp=12251
29/29