Anda di halaman 1dari 29

18/02/2016

ArtigoSQLMagazine63UtilizandoUML:DiagramadeClasses

www.devmedia.com.br
[versoparaimpresso]
Linkoriginal:
http://www.devmedia.com.br/articles/viewcomp.asp?
comp=12251

Artigo SQL Magazine 63 Utilizando UML: Diagrama


de Classes
Neste terceiro artigo da srie, abordaremos
o Diagrama de Classes, um dos mais
importantes diagramas da UML.
EsseartigofazpartedarevistaSQLMagazineedio
63.Cliqueaquiparalertodososartigosdestaedio

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

Anda mungkin juga menyukai